]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/emv/emvcore.h
Adding support for standard USB Smartcard Readers (#769)
[proxmark3-svn] / client / emv / emvcore.h
index 7d53e83bb15a8411b7f6c5e21eb75068ea6c1471..5d6f398419a39de67fc83640b5413f7b7eb8c78d 100644 (file)
 #include "emv_pk.h"
 #include "emv_pki.h"
 
-#define APDU_RES_LEN 260
-#define APDU_AID_LEN 50
+// maximum APDU lengths. Long APDUs not yet supported/needed
+#define APDU_DATA_LEN      255
+#define APDU_COMMAND_LEN   (4 + 1 + APDU_DATA_LEN + 1)
+#define APDU_RESPONSE_LEN  (256 + 2)
 
 typedef enum {
        ECC_CONTACTLESS,
@@ -45,15 +47,6 @@ enum TransactionType {
 };
 extern char *TransactionTypeStr[];
 
-typedef struct {
-       uint8_t CLA;
-       uint8_t INS;
-       uint8_t P1;
-       uint8_t P2;
-       uint8_t Lc;
-       uint8_t *data;
-} sAPDU;
-
 enum CardPSVendor {
        CV_NA,
        CV_VISA,
@@ -76,7 +69,7 @@ extern struct tlvdb *GetdCVVRawFromTrack2(const struct tlv *track2);
 extern void SetAPDULogging(bool logging);
 
 // exchange
-extern int EMVExchange(EMVCommandChannel channel, bool LeaveFieldON, sAPDU apdu, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
+extern int EMVExchange(EMVCommandChannel channel, bool LeaveFieldON, uint8_t *APDU, int APDU_len, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
 
 // search application
 extern int EMVSearchPSE(EMVCommandChannel channel, bool ActivateField, bool LeaveFieldON, uint8_t PSENum, bool decodeTLV, struct tlvdb *tlv);
Impressum, Datenschutz