transactions MSD and M/Chip, qVSDC works

This commit is contained in:
merlokk 2017-12-02 21:47:30 +02:00
commit 10d4f82338
4 changed files with 226 additions and 19 deletions

View file

@ -29,6 +29,20 @@
#define APDU_RES_LEN 260
#define APDU_AID_LEN 50
// AC
# define EMVAC_AC_MASK 0xC0
# define EMVAC_AAC 0x00
# define EMVAC_TC 0x40
# define EMVAC_ARQC 0x80
# define EMVAC_CDAREQ 0x10
enum TransactionType {
TT_MSD,
TT_VSDC, // not standart for contactless!!!!
TT_QVSDCMCHIP,
TT_CDA,
};
typedef struct {
uint8_t CLA;
uint8_t INS;
@ -69,8 +83,13 @@ extern int EMVSelectApplication(struct tlvdb *tlv, uint8_t *AID, size_t *AIDlen)
// Get Processing Options
extern int EMVGPO(bool LeaveFieldON, uint8_t *PDOL, size_t PDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
extern int EMVReadRecord(bool LeaveFieldON, uint8_t SFI, uint8_t SFIrec, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// AC
extern int EMVGenerateChallenge(bool LeaveFieldON, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
extern int EMVAC(bool LeaveFieldON, uint8_t RefControl, uint8_t *CDOL, size_t CDOLLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// Mastercard
int MSCComputeCryptoChecksum(bool LeaveFieldON, uint8_t *UDOL, uint8_t UDOLlen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
// Auth
extern int trSDA(uint8_t *AID, size_t AIDlen, struct tlvdb *tlv);
#endif