diff --git a/client/src/mifare/desfirecore.c b/client/src/mifare/desfirecore.c index 63a2bbb34..c0bf04219 100644 --- a/client/src/mifare/desfirecore.c +++ b/client/src/mifare/desfirecore.c @@ -1841,13 +1841,19 @@ int DesfireCommitReaderID(DesfireContext *dctx, uint8_t *readerid, size_t reader return DesfireCommand(dctx, MFDES_COMMIT_READER_ID, rid, 16, resp, resplen, -1); } -int DesfireCommitTransaction(DesfireContext *dctx, bool enable_options, uint8_t options) { +int DesfireCommitTransactionEx(DesfireContext *dctx, bool enable_options, uint8_t options, uint8_t *resp, size_t *resplen) { if (enable_options) - return DesfireCommandTxData(dctx, MFDES_COMMIT_TRANSACTION, &options, 1); + return DesfireCommand(dctx, MFDES_COMMIT_TRANSACTION, &options, 1, resp, resplen, -1); else return DesfireCommandNoData(dctx, MFDES_COMMIT_TRANSACTION); } +int DesfireCommitTransaction(DesfireContext *dctx, bool enable_options, uint8_t options) { + uint8_t resp[250] = {0}; + size_t resplen = 0; + return DesfireCommitTransactionEx(dctx, enable_options, options, resp, &resplen); +} + int DesfireAbortTransaction(DesfireContext *dctx) { return DesfireCommandNoData(dctx, MFDES_ABORT_TRANSACTION); } diff --git a/client/src/mifare/desfirecore.h b/client/src/mifare/desfirecore.h index 940a00ecf..2838fe023 100644 --- a/client/src/mifare/desfirecore.h +++ b/client/src/mifare/desfirecore.h @@ -230,6 +230,7 @@ const char *GetDesfireFileType(uint8_t type); int DesfireCreateFile(DesfireContext *dctx, uint8_t ftype, uint8_t *fdata, size_t fdatalen, bool checklen); int DesfireDeleteFile(DesfireContext *dctx, uint8_t fnum); int DesfireCommitReaderID(DesfireContext *dctx, uint8_t *readerid, size_t readeridlen, uint8_t *resp, size_t *resplen); +int DesfireCommitTransactionEx(DesfireContext *dctx, bool enable_options, uint8_t options, uint8_t *resp, size_t *resplen); int DesfireCommitTransaction(DesfireContext *dctx, bool enable_options, uint8_t options); int DesfireAbortTransaction(DesfireContext *dctx);