]> git.zerfleddert.de Git - proxmark3-svn/blob - client/emv/emvcore.h
fdd3ab868762ae9148d524a4053921376cf6a6c2
[proxmark3-svn] / client / emv / emvcore.h
1 //-----------------------------------------------------------------------------
2 // Copyright (C) 2017 Merlok
3 //
4 // This code is licensed to you under the terms of the GNU GPL, version 2 or,
5 // at your option, any later version. See the LICENSE.txt file for the text of
6 // the license.
7 //-----------------------------------------------------------------------------
8 // EMV core functionality
9 //-----------------------------------------------------------------------------
10
11 #ifndef EMVCORE_H__
12 #define EMVCORE_H__
13
14 #include <stdio.h>
15 #include <stdint.h>
16 #include <stdlib.h>
17 #include <inttypes.h>
18 #include <string.h>
19 #include "util.h"
20 #include "common.h"
21 #include "ui.h"
22 #include "cmdhf14a.h"
23 #include "emv/apduinfo.h"
24 #include "emv/tlv.h"
25 #include "emv/dol.h"
26 #include "emv/dump.h"
27 #include "emv/emv_tags.h"
28
29 #define APDU_RES_LEN 260
30 #define APDU_AID_LEN 50
31
32 extern void TLVPrintFromBuffer(uint8_t *data, int datalen);
33 extern void TLVPrintFromTLV(struct tlvdb *tlv);
34 extern void TLVPrintAIDlistFromSelectTLV(struct tlvdb *tlv);
35
36 extern void SetAPDULogging(bool logging);
37
38 // search application
39 extern int EMVSearchPSE(bool ActivateField, bool LeaveFieldON, bool decodeTLV, struct tlvdb *tlv);
40 extern int EMVSearch(bool ActivateField, bool LeaveFieldON, bool decodeTLV, struct tlvdb *tlv);
41 extern int EMVSelectPSE(bool ActivateField, bool LeaveFieldON, uint8_t PSENum, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw);
42 extern int EMVSelect(bool ActivateField, bool LeaveFieldON, uint8_t *AID, size_t AIDLen, uint8_t *Result, size_t MaxResultLen, size_t *ResultLen, uint16_t *sw, struct tlvdb *tlv);
43 // select application
44 extern int EMVSelectApplication(struct tlvdb *tlv, uint8_t *AID, size_t *AIDlen);
45 // Get Processing Options
46 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);
47 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);
48
49 #endif
50
51
52
53
Impressum, Datenschutz