Switch 1123 views
Read smart card chip data with APDU commands ISO 7816
Posted on 28th Nov 2019 67070 views
This explanation builds on top of existing information at wiki about
https://en.wikipedia.org/wiki/Smart_card_application_protocol_data_unit
A selected list of used commands is available at the end of this page.
Any smart card reader will come with a set of drivers an libraries to interface with it. We will assume that you do not need to build communication with the reader, just to use it.
The reader comes with an interface to send apdu commands.
Depending on your Card Brand, different commands need to be used.
First thing you do is to select the application.
Command looks like this for Visa an then Mastercard:
00A4040007A000000003101000
00A4040007A0000000043060
Then get the processing option:
80A800000483025541
And then just get all the information from your chip card
80AE8000210000000000000000000000000586000000000005861802020000E44E4B11040001
Smartcard Selected InformationAPDU list
#------------+------------------------+------------------------+----------------------+--------------------------------+ |ClaIns P1 P2|Lc Send Data |Le Recv Data | Specification | Description | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 04 | ISO 7816-96.3 | DEACTIVATE FILE | | A0 04 00 00 00 | 3GPP TS 11.11 | INVALIDATE | | A0 04 00 00 00 | SAGEM SCT U34 6.15 | INVALIDATE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 0D xx xx 08 xxxx xxxx xxxx xxxx | SAGEM SCT U34 | VERIFY TRANSPORT CODE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 0C | ISO 7816-47.3.6 | ERASE RECORD (S) | | 80 0C 00 xx xx | SAGEM SCT U34 8.1.2 | CHECK (flash) | | 80 0C 01 xx xx | SAGEM SCT U34 8.1.2 | CHECK (EEPROM) | | 80 0C 02 xx xx | SAGEM SCT U34 8.1.2 | CHECK (checksum of file) | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 0E | ISO 7816-48.2.4 | ERASE BINARY | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 10 | ISO 7816-4 | PERFORM SCQL OPERATION | | 00 10 00 80 xx table name, ... | ISO 7816-47.1 | CREATE TABLE | | 00 10 00 81 xx view name, table name | ISO 7816-47.2 | CREATE VIEW | | 00 10 00 82 xx dictionary name | ISO 7816-47.3 | CREATE DICTIONARY | | 00 10 00 83 xx table name | ISO 7816-47.4 | DROP TABLE | | 00 10 00 84 xx view or dictionary | ISO 7816-47.5 | DROP VIEW | | 00 10 00 85 xx privileges | ISO 7816-47.6 | GRANT | | 00 10 00 86 xx privileges | ISO 7816-47.7 | REVOKE | | 00 10 00 87 xx data | ISO 7816-47.8 | DECLARE CURSOR | | 00 10 00 88 | ISO 7816-47.9 | OPEN | | 00 10 00 89 | ISO 7816-47.10 | NEXT | | 00 10 00 8A xx D, fixing N (columns)| ISO 7816-47.11 | FETCH | | 00 10 00 8B xx D, fixing N (columns)| ISO 7816-47.12 | FETCH NEXT | | 00 10 00 8C xx data | ISO 7816-47.13 | INSERT | | 00 10 00 8D xx data | ISO 7816-47.14 | UPDATE | | 00 10 00 8E | ISO 7816-47.15 | DELETE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 12 | ISO 7816-4 | PERFORM TRANSACTION OPERATION | | 00 12 00 80 | ISO 7816-48.2.1 | BEGIN | | 00 12 00 81 | ISO 7816-48.2.2 | COMMIT | | 00 12 00 82 | ISO 7816-48.2.3 | ROLLBACK | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 14 | ISO 7816-4 | PERFORM USER OPERATION | | 00 14 00 80 xx User ID, ... | ISO 7816-49.2.1 | PRESENT USER | | 00 14 00 81 xx User ID, profile, ... | ISO 7816-49.2.2 | CREATE USER | | 00 14 00 82 xx User ID | ISO 7816-49.2.3 | DELETE USER | | 80 14 xx xx 00 | GEMPLUS MPCOS-EMV | Switch Protocol | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 84 16 00 00 xx MAC | VSDC | CARD BLOCK | | 80 16 0X 00 05 xxxx xxxx xx | GEMPLUS MPCOS-EMV | Freeze Access Conditions | | 84 16 0X 00 08 xxxx xxxx xxxx xxxx | GEMPLUS MPCOS-EMV | Freeze Access Conditions | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 84 18 00 00 xx MAC | VSDC | APPLICATION UNBLOCK | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 84 1E 00 00 xx MAC | VSDC | APPLICATION BLOCK | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 20 | ISO 7816-48.5.5 | VERIFY | | 00 20 00 80 08 xxxx xxxx xxxx xxxx | VSDC | VERIFY (Transaction PIN data) | | A0 20 00 xx 08 CHV Value | 3GPP TS 11.11 | VERIFY | | A0 20 00 xx 08 CHV Value | SAGEM SCT U34 6.10 | VERIFY | | 80 20 00 xx 08 ADM Value | SAGEM SCT U34 8.1.4 | VERIFY ADM | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 21 00 xx 08 ADM Value | SAGEM SCT U34 8.1.4 | VERIFY ADM | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 22 | ISO 7816-48.5.10 | MANAGE SECURITY ENVIRONMENT | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 24 | ISO 7816-48.5.6 | CHANGE CHV | | 84 24 00 00 xx PIN data + MAC | VSDC | PIN CHANGE/UNBLOCK | | A0 24 00 xx 10 Old CHV, New CHV | 3GPP TS 11.11 | CHANGE CHV | | A0 24 00 xx 10 Old CHV, New CHV | SAGEM SCT U34 6.11 | CHANGE CHV | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 26 | ISO 7816-48.5.8 | DISABLE CHV1 | | A0 26 00 01 08 CHV1 value | 3GPP TS 11.11 | DISABLE CHV1 | | A0 26 00 01 08 CHV1 value | SAGEM SCT U32 6.12 | DISABLE CHV1 | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 28 | ISO 7816-48.5.7 | ENABLE CHV1 | | A0 28 00 01 08 CHV1 value | 3GPP TS 11.11 | ENABLE CHV1 | | A0 28 00 01 08 CHV1 value | SAGEM SCT U34 6.13 | ENABLE CHV1 | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 2A | ISO 7816-85.2 | PERFORM SECURITY OPERATION | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 2C | ISO 7816-48.5.9 | UNBLOCK CHV | | A0 2C 00 xx 10 Unblock CHV(PUK), New CHV | 3GPP TS 11.11 | UNBLOCK CHV | | A0 2C 00 xx 10 Unblock CHV(PUK), New CHV | SAGEM SCT U34 6.14 | UNBLOCK CHV | +------------+------------------------+------------------------+----------------------+--------------------------------+ | A0 2E 00 0# 01 Data | 3GPP TS 11.11 | WRITE CODE STATUS | +------------+------------------------+------------------------+----------------------+--------------------------------+ | A0 32 00 00 03 Value to be added. | 3GPP TS 11.11 | INCREASE | | A0 32 00 00 03 Value to be added. | SAGEM SCT U34 6.9 | INCREASE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 39 | | java Authentificate User Comman| +------------+------------------------+------------------------+----------------------+--------------------------------+ | 44 | ISO 7816-96.4 | ACTIVATE FILE | | A0 44 00 00 00 | 3GPP TS 11.11 | REHABILIDATE | | A0 44 00 00 00 | SAGEM SCT U34 6.16 | REHABILIDATE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 46 | ISO 7816-85.1 | GENERATE ASYMMETRIC KEY PAIR | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 50 xx xx 08 Host challenge 00 | GlobalPlatform | INITIALIZE UPDATE then [C0] | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 70 | ISO 7816-48.1.2 | MANAGE CHANNEL | | 00 70 xx xx xx | GlobalPlatform | MANAGE CHANNEL | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 78 00 03 xx | GlobalPlatform | END R-MAC SESSION | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 7A xx 01 xx Data and C-MAC, if needed | GlobalPlatform | BEGIN R-MAC SESSION | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 82 | ISO 7816-48.5.3 | EXTERNAL AUTHENTICATE | | 84 82 00 00 10 Host cryptogram and MAC | GlobalPlatform | EXTERNAL AUTHENTICATE | | 84 82 00 00 0A Authentication-related data | VSDC | EXTERNAL AUTHENTICATE | | 00 82 00 xx 06 Manual | GEMPLUS MPCOS-EMV | EXTERNAL AUTHENTICATE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 84 | ISO 7816-48.5.2 | GET CHALLENGE | | 00 84 00 00 08 Rnd Num | VSDC | GET CHALLENGE | | 00 84 xx xx 08 Rnd Num | GEMPLUS MPCOS-EMV | GET CHALLENGE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 86 | ISO 7816-48.5.4 | GENERAL AUTHENTICATE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 88 | ISO 7816-48.5.1 | INTERNAL AUTHENTICATE | | 00 88 XX xx 0A Manual | GEMPLUS MPCOS-EMV | INTERNAL AUTHENTICATE | | A0 88 00 00 10 RAND : Rnd num xx SRES( 4B) , Kc (8B) | 3GPP TS 11.11 | RUN GSM ALGORITHM | | A0 88 00 00 10 RAND : Rnd num xx SRES( 4B) , Kc (8B) | SAGEM SCT U34 6.17 | RUN GSM ALGORITHM | +------------+------------------------+------------------------+----------------------+--------------------------------+ | A0 | ISO 7816-48.2.5 | SEARCH BINARY | +------------+------------------------+------------------------+----------------------+--------------------------------+ | A2 | ISO 7816-48.3.5 | SEEK | | A0 A2 00 xx xx Pattern xx | 3GPP TS 11.11 | SEEK | | A0 A2 00 xx xx Pattern xx | SAGEM SCT U34 6.8 | SEEK | +------------+------------------------+------------------------+----------------------+--------------------------------+ | A4 | ISO 7816-48.1.1 | SELECT | | 00 A4 04 00 xx AID 00 | GlobalPlatform | SELECT | | 00 A4 00 xx xx File ID || Name 00 Manual | VSDC | SELECT | | A0 A4 00 00 02 File ID | 3GPP TS 11.11 | SELECT | | A0 A4 00 00 02 File ID | SAGEM SCT U34 6.1 | SELECT | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 A8 00 00 00 00 | VSDC | GET PROCESSING OPTIONS | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 AE 00 xx Transaction-related data | VSDC | | +------------+------------------------+------------------------+----------------------+--------------------------------+ | B0 | ISO 7816-48.2.1 | READ BINARY | | 00 B0 xx xx xx | GEMPLUS MPCOS-EMV | READ BINARY | | A0 B0 xx xx xx | 3GPP TS 11.11 | READ BINARY | | A0 B0 xx xx xx | SAGEM SCT U34 6.4 | READ BINARY | +------------+------------------------+------------------------+----------------------+--------------------------------+ | B2 | ISO 7816-48.3.1 | READ RECORD | | 00 B2 xx 00 | VSDC | READ RECORD | | A0 B2 xx xx xx | 3GPP TS 11.11 | READ RECORD | | A0 B2 xx xx xx | SAGEM SCT U34 6.6 | READ RECORD | +------------+------------------------+------------------------+----------------------+--------------------------------+ | B4 | | java Component Data | +------------+------------------------+------------------------+----------------------+--------------------------------+ | B8 | | java Create Applet | +------------+------------------------+------------------------+----------------------+--------------------------------+ | BA | | java CAP end | +------------+------------------------+------------------------+----------------------+--------------------------------+ | BC | | java Component end | +------------+------------------------+------------------------+----------------------+--------------------------------+ | BE 04 Data | GEMPLUS GemClub-MEMO | READ | +------------+------------------------+------------------------+----------------------+--------------------------------+ | C0 | ISO 7816-48.6.1 | GET RESPONSE | | 00 C0 1C Key Info | GlobalPlatform | GET RESPONSE | | 00 C0 00 00 00 | VSDC | GET RESPONSE | | 80 C0 00 00 xx | GEMPLUS MPCOS-EMV | Get Info on Get Response | | 80 C0 02 A0 08 Chip SN | GEMPLUS MPCOS-EMV | Get Info | | 80 C0 02 A1 08 Card SN | GEMPLUS MPCOS-EMV | Get Info | | 80 C0 02 A2 08 Issuer SN | GEMPLUS MPCOS-EMV | Get Info | | 80 C0 02 A3 04 Iss.Ref.N | GEMPLUS MPCOS-EMV | Get Info | | 80 C0 02 A4 0D Chip Inf | GEMPLUS MPCOS-EMV | Get Info | | 80 C0 02 A5 xx Keys | GEMPLUS MPCOS-EMV | Get Info | | 80 C0 02 A6 02 Last DF/EF | GEMPLUS MPCOS-EMV | Get Info | | A0 C0 00 00 xx | 3GPP TS 11.11 | GET RESPONSE | | A0 C0 00 00 xx | SAGEM SCT U34 6.3 | GET RESPONSE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | C2 | ISO 7816-48.6.2 | ENVELOPE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | C4 | | java Delete Applets | +------------+------------------------+------------------------+----------------------+--------------------------------+ | CA | ISO 7816-48.4.1 | GET DATA | | 00 CA 00 xx xx MAC, if present | GlobalPlatform | GET DATA | | 80 CA xx xx xx | VSDC | GET DATA | +------------+------------------------+------------------------+----------------------+--------------------------------+ | D0 | ISO 7816-48.2.2 | WRITE BINARY | | 80 D0 xx xx xx Data to be written in EEPROM | VSDC | LOAD STRUCTURE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | D2 | ISO 7816-48.3.2 | WRITE RECORD | +------------+------------------------+------------------------+----------------------+--------------------------------+ | D6 | ISO 7816-48.2.3 | UPDATE BINARY | | A0 D6 xx xx xx Data to be written in EEPROM | 3GPP TS 11.11 | UPDATE BINARY | | A0 D6 xx xx xx Data to be written in EEPROM | SAGEM SCT U34 6.5 | UPDATE BINARY | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 D8 xx xx xx KEY Date (and MAC) 00 | GlobalPlatform | PUT KEY | | D8 | EMV | Set Card Status(personalization| +------------+------------------------+------------------------+----------------------+--------------------------------+ | DA | ISO 7816-48.4.2 | PUT DATA | | 00 DA xx xx xx Data | VSDC | PUT DATA | +------------+------------------------+------------------------+----------------------+--------------------------------+ | DC | ISO 7816-4 | UPDATE RECORD | | 00 DC xx xx xx Data (and MAC) | VSDC | UPDATE RECORD | | A0 DC xx xx xx Data to be written in EEPROM | 3GPP TS 11.11 | UPDATE RECORD | | A0 DC xx xx xx Data to be written in EEPROM | SAGEM SCT U34 6.7 | UPDATE RECORD | +------------+------------------------+------------------------+----------------------+--------------------------------+ | DE 04 Data | GEMPLUS GemClub-MEMO | UPDATE | | A0 DE 00 00 03 Data | 3GPP TS 11.11 | LOAD AoC(SICAP) | +------------+------------------------+------------------------+----------------------+--------------------------------+ | E0 | ISO 7816-96.1 | CREATE FILE | | 80 E0 02 00 0C Manual | GEMPLUS MPCOS-EMV | CREATE FILE | | 80 E0 xx xx xx FCI length | 3GPP TS 11.11 | CREATE FILE | | 80 E0 xx xx xx FCI length | SAGEM SCT U34 | CREATE FILE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | E2 | ISO 7816-48.3.4 | APPEND RECORD | | 80 E2 00 00 xx Record (and MAC) | GlobalPlatform | APPEND RECORD | | 00 E2 00 00 xx Record | VSDC | APPEND RECORD | | 00 E2 00 00 xx Record | GEMPLUS MPCOS-EMV | APPEND RECORD | | 00 E2 00 00 xx Record | 3GPP TS 11.11 | APPEND RECORD | +------------+------------------------+------------------------+----------------------+--------------------------------+ | E4 | ISO 7816-96.2 | DELETE FILE | | 80 E4 00 00 xx TLV coded name | GlobalPlatform | DELETE FILE | | A0 E4 00 00 02 xx xx | 3GPP TS 11.11 | DELETE FILE | +------------+------------------------+------------------------+----------------------+--------------------------------+ | E6 | ISO 7816-96.5 | TERMINATE DF | | 80 E6 xx 00 xx Manual | GlobalPlatform | INSTALL | | A0 E6 xx xx 00 | 3GPP TS 11.11 | LOCK RECORD | +------------+------------------------+------------------------+----------------------+--------------------------------+ | E8 | ISO 7816-96.6 | TERMINATE EF | | 80 E8 00 00 xx Record | GlobalPlatform | LOAD | | A0 E8 00 xx 10 Data | 3GPP TS 11.11 | READ DIRECTORY | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 EA 00 00 xx Data | 3GPP TS 11.11 | CREATE BINARY | | 80 EA 00 00 xx Data | SAGEM SCT U34 | CREATE BINARY | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 EE 00 xx 00 | VSDC | WRITE LOCK | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 F0 xx xx xx AID of Application (and MAC) | GlobalPlatform | SET STATUS | +------------+------------------------+------------------------+----------------------+--------------------------------+ | A0 F2 00 00 xx | 3GPP TS 11.11 | GET STATUS | | A0 F2 00 00 xx | SAGEM SCT U34 6.2 | GET STATUS | | 80 F2 xx xx | GlobalPlatform | GET STATUS | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 F8 xx xx xx | SAGEM SCT U34 8.1.1 | DIR | +------------+------------------------+------------------------+----------------------+--------------------------------+ | A0 FA 00 00 00 | 3GPP TS 11.11 | SLEEP | | A0 FA 00 00 00 | SAGEM SCT U34 6.18 | SLEEP | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 FB xx xx xx | SAGEM SCT U34 8.1.1 | DIR | +------------+------------------------+------------------------+----------------------+--------------------------------+ | 80 FC xx xx 10 | SAGEM SCT U34 8.1.3 | READ INFO | +------------+------------------------+------------------------+----------------------+--------------------------------+ | FE | ISO 7816-96.7 | TERMINATE CARD USAGE | | 80 FE xx xx 00 | SAGEM SCT U34 | BLOW FUSE | +------------+------------------------+------------------------+----------------------+--------------------------------+ |
This is an example output from the built in EMV card emulator:
[Step 1] SELECT FILE Master File (if available)
00 A4 00 00 00 response hex :
response SW1SW2 : 6d 00 response ascii : response parsed :
[Step 2] SELECT FILE 1PAY.SYS.DDF01 to get the PSE directory
00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 response hex : 6f 20 84 0e 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 0e 88 01 02 5f 2d 04 6e 6f 65 6e 9f 11 01 01 response SW1SW2 : 90 00 response ascii : o ..1PAY.SYS.DDF01....._-.noen.... response parsed :
6f 20 -- File Control Information (FCI) Template 84 0e -- Dedicated File (DF) Name 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31 (BINARY) a5 0e -- File Control Information (FCI) Proprietary Template 88 01 -- Short File Identifier (SFI) 02 (BINARY) 5f 2d 04 -- Language Preference 6e 6f 65 6e (=noen) 9f 11 01 -- Issuer Code Table Index 01 (NUMERIC)
[Step 3] Send READ RECORD to read all records in SFI 2
00 B2 01 14 00 response hex : 70 23 61 21 4f 07 a1 23 45 67 89 10 10 50 04 56 49 53 41 9f 12 0c 56 49 53 41 20 43 6c 61 73 73 69 63 87 01 02 response SW1SW2 : 90 00 response ascii : p#a!O..#Eg...P.VISA...VISA Classic... response parsed :
70 23 -- Record Template (EMV Proprietary) 61 21 -- Application Template 4f 07 -- Application Identifier (AID) - card a1 23 45 67 89 10 10 (BINARY) 50 04 -- Application Label 56 49 53 41 (=VISA) 9f 12 0c -- Application Preferred Name 56 49 53 41 20 43 6c 61 73 73 69 63 (=VISA Classic) 87 01 -- Application Priority Indicator 02 (BINARY)
[Step 4] Send READ RECORD to read all records in SFI 2
00 B2 02 14 00 response hex : 70 25 61 23 4f 07 d5 78 00 00 02 10 10 50 09 62 61 6e 6b 61 78 65 70 74 9f 12 09 62 61 6e 6b 61 78 65 70 74 87 01 01 response SW1SW2 : 90 00 response ascii : p%a#O..x.....P.bankaxept...bankaxept... response parsed :
70 25 -- Record Template (EMV Proprietary) 61 23 -- Application Template 4f 07 -- Application Identifier (AID) - card d5 78 00 00 02 10 10 (BINARY) 50 09 -- Application Label 62 61 6e 6b 61 78 65 70 74 (=bankaxept) 9f 12 09 -- Application Preferred Name 62 61 6e 6b 61 78 65 70 74 (=bankaxept) 87 01 -- Application Priority Indicator 01 (BINARY)
[Step 5] Send READ RECORD to read all records in SFI 2
00 B2 03 14 00 response hex :
response SW1SW2 : 6a 83 response ascii : response parsed :
[Step 6] Select application by AID
00 A4 04 00 07 a1 23 45 67 89 10 10 response hex : 6f 37 84 07 a1 23 45 67 89 10 10 a5 2c 50 04 56 49 53 41 87 01 02 9f 38 06 9f 1a 02 5f 2a 02 5f 2d 04 6e 6f 65 6e 9f 11 01 01 9f 12 0c 56 49 53 41 20 43 6c 61 73 73 69 63 response SW1SW2 : 90 00 response ascii : o7...#Eg....,P.VISA....8....*.-.noen.......VISA Classic response parsed :
6f 37 -- File Control Information (FCI) Template 84 07 -- Dedicated File (DF) Name a1 23 45 67 89 10 10 (BINARY) a5 2c -- File Control Information (FCI) Proprietary Template 50 04 -- Application Label 56 49 53 41 (=VISA) 87 01 -- Application Priority Indicator 02 (BINARY) 9f 38 06 -- Processing Options Data Object List (PDOL) 9f 1a 02 -- Terminal Country Code 5f 2a 02 -- Transaction Currency Code 5f 2d 04 -- Language Preference 6e 6f 65 6e (=noen) 9f 11 01 -- Issuer Code Table Index 01 (NUMERIC) 9f 12 0c -- Application Preferred Name 56 49 53 41 20 43 6c 61 73 73 69 63 (=VISA Classic)
[Step 7] Send GET PROCESSING OPTIONS command
80 A8 00 00 06 83 04 08 26 08 26 response hex : 80 0a 5c 00 08 01 01 00 08 02 05 01 response SW1SW2 : 90 00 response ascii : ........... response parsed :
80 0a -- Response Message Template Format 1 5c 00 08 01 01 00 08 02 05 01 (BINARY)
[Step 8] Send READ RECORD to read SFI 1 record 1
00 B2 01 0c 00 response hex : 70 4d 9f 1f 18 32 34 39 35 30 30 30 30 30 30 30 30 30 30 30 31 30 31 30 30 30 30 30 30 57 13 54 11 11 88 88 88 88 82 d1 20 32 01 12 34 56 78 90 00 0f 5f 20 1a 53 4d 49 54 48 2f 4a 4f 48 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 response SW1SW2 : 90 00 response ascii : pM...249500000000000101000000W.T........ 2..4Vx..._ .SMITH/JOHN
response parsed :
70 4d -- Record Template (EMV Proprietary) 9f 1f 18 -- [Magnetic Stripe] Track 1 Discretionary Data 32 34 39 35 30 30 30 30 30 30 30 30 30 30 30 31 30 31 30 30 30 30 30 30 (=249500000000000101000000) 57 13 -- Track 2 Equivalent Data 54 11 11 88 88 88 88 82 d1 20 32 01 12 34 56 78 90 00 0f (BINARY) 5f 20 1a -- Cardholder Name 53 4d 49 54 48 2f 4a 4f 48 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (=SMITH/JOHN )
[Step 9] Send READ RECORD to read SFI 1 record 2
00 B2 02 0c 00 response hex : 70 50 5f 24 03 12 03 31 5f 25 03 09 02 05 5a 08 54 11 11 88 88 88 88 82 5f 34 01 01 9f 07 02 ff 00 8e 12 00 00 00 00 00 00 00 00 42 01 41 03 5e 03 42 03 1f 00 9f 0d 05 f0 20 24 28 00 9f 0e 05 00 50 80 00 00 9f 0f 05 f0 28 3c f8 00 5f 28 02 05 78 response SW1SW2 : 90 00 response ascii : pP_$...1_%....Z.T.......4.................B.A.^.B....... $(.....P.......(<..(..x response parsed :
70 50 -- Record Template (EMV Proprietary) 5f 24 03 -- Application Expiration Date 12 03 31 (NUMERIC) 5f 25 03 -- Application Effective Date 09 02 05 (NUMERIC) 5a 08 -- Application Primary Account Number (PAN) 54 11 11 88 88 88 88 82 (NUMERIC) 5f 34 01 -- Application Primary Account Number (PAN) Sequence Number 01 (NUMERIC) 9f 07 02 -- Application Usage Control ff 00 (BINARY) 8e 12 -- Cardholder Verification Method (CVM) List 00 00 00 00 00 00 00 00 42 01 41 03 5e 03 42 03 1f 00 (BINARY) 9f 0d 05 -- Issuer Action Code - Default f0 20 24 28 00 (BINARY) 9f 0e 05 -- Issuer Action Code - Denial 00 50 80 00 00 (BINARY) 9f 0f 05 -- Issuer Action Code - Online f0 28 3c f8 00 (BINARY) 5f 28 02 -- Issuer Country Code 05 78 (NUMERIC)
[Step 10] Send READ RECORD to read SFI 1 record 3
00 B2 03 0c 00 response hex : 70 47 9f 42 02 05 78 9f 44 01 02 9f 08 02 00 8c 8c 15 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 8d 17 8a 02 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 5f 30 02 02 01 9f 4a 01 82 response SW1SW2 : 90 00 response ascii : pG.B..x.D....................*......7................*......7._0....J.. response parsed :
70 47 -- Record Template (EMV Proprietary) 9f 42 02 -- Application Currency Code 05 78 (NUMERIC) 9f 44 01 -- Application Currency Exponent 02 (NUMERIC) 9f 08 02 -- Application Version Number - card 00 8c (BINARY) 8c 15 -- Card Risk Management Data Object List 1 (CDOL1) 9f 02 06 -- Amount, Authorised (Numeric) 9f 03 06 -- Amount, Other (Numeric) 9f 1a 02 -- Terminal Country Code 95 05 -- Terminal Verification Results (TVR) 5f 2a 02 -- Transaction Currency Code 9a 03 -- Transaction Date 9c 01 -- Transaction Type 9f 37 04 -- Unpredictable Number 8d 17 -- Card Risk Management Data Object List 2 (CDOL2) 8a 02 -- Authorisation Response Code 9f 02 06 -- Amount, Authorised (Numeric) 9f 03 06 -- Amount, Other (Numeric) 9f 1a 02 -- Terminal Country Code 95 05 -- Terminal Verification Results (TVR) 5f 2a 02 -- Transaction Currency Code 9a 03 -- Transaction Date 9c 01 -- Transaction Type 9f 37 04 -- Unpredictable Number 5f 30 02 -- Service Code 02 01 (NUMERIC) 9f 4a 01 -- Static Data Authentication Tag List 82 (BINARY)
[Step 11] Send READ RECORD to read SFI 1 record 4
00 B2 04 0c 00 response hex : 70 81 c0 8f 01 07 90 81 90 04 71 93 ac fb 32 3a bb 95 ac e6 c5 b4 69 27 6d b5 93 16 73 cb a2 e0 ee 23 37 9d 02 79 50 b6 c1 c8 4d 59 e9 aa 7a 54 1b 51 06 0b 0b df 51 4f 44 40 10 2b ee e8 4c 38 3a ce 13 b0 72 84 4e 97 a6 5e 0e 69 b1 c8 c5 dc f3 08 b4 26 b8 b3 3d 72 07 ff 29 a7 7d d5 64 46 ae 8d ba b8 d1 b9 ea 6a 32 ab 11 64 e7 35 2c 14 6d 0a 61 e6 de b1 ec 2f 91 25 27 b9 ce df 72 a9 b0 86 3a 9c 45 b4 9a 81 8a f4 69 8c 71 c9 72 d2 eb 25 41 84 5e 4d f8 a3 49 9f 32 01 03 92 24 5b c8 f7 38 4c 06 dc dc 35 97 51 d1 d4 31 52 0d f5 ff 2d 43 47 4a 88 60 3c 9e fc a0 66 6a 1a 42 bd f0 a4 f5 response SW1SW2 : 90 00 response ascii : p.........q...2:......i'm...s....#7..yP...MY..zT.Q....QOD@.+..L8:...r.N..^.i.......&..=r..).}.dF.......j2..d.5,.m.a..../.%'...r...:.E.....i.q.r..%A.^M..I.2...$[..8L...5.Q..1R...-CGJ.] response parsed :
70 81 c0 -- Record Template (EMV Proprietary) 8f 01 -- Certification Authority Public Key Index - card 07 (BINARY) 90 81 90 -- Issuer Public Key Certificate 04 71 93 ac fb 32 3a bb 95 ac e6 c5 b4 69 27 6d b5 93 16 73 cb a2 e0 ee 23 37 9d 02 79 50 b6 c1 c8 4d 59 e9 aa 7a 54 1b 51 06 0b 0b df 51 4f 44 40 10 2b ee e8 4c 38 3a ce 13 b0 72 84 4e 97 a6 5e 0e 69 b1 c8 c5 dc f3 08 b4 26 b8 b3 3d 72 07 ff 29 a7 7d d5 64 46 ae 8d ba b8 d1 b9 ea 6a 32 ab 11 64 e7 35 2c 14 6d 0a 61 e6 de b1 ec 2f 91 25 27 b9 ce df 72 a9 b0 86 3a 9c 45 b4 9a 81 8a f4 69 8c 71 c9 72 d2 eb 25 41 84 5e 4d f8 a3 49 (BINARY) 9f 32 01 -- Issuer Public Key Exponent 03 (BINARY) 92 24 -- Issuer Public Key Remainder 5b c8 f7 38 4c 06 dc dc 35 97 51 d1 d4 31 52 0d f5 ff 2d 43 47 4a 88 60 3c 9e fc a0 66 6a 1a 42 bd f0 a4 f5 (BINARY)
[Step 12] Send READ RECORD to read SFI 1 record 5
00 B2 05 0c 00 response hex : 70 81 93 93 81 90 41 7c 43 3e 07 08 e7 14 4e ce c1 d3 6b bf 44 09 2e fe 27 3d aa 24 cb 34 c3 77 9e 4f 29 e7 7f 59 10 a9 c5 7e 0c bb e3 73 81 93 b3 51 f5 e4 66 18 75 1f 0a 5f fb 59 c7 76 1f f1 28 8d dd ac a8 86 9b 61 14 b0 5c 6b 79 e4 d3 2b 97 95 c7 b4 ea e4 62 17 1b 05 90 7d 67 09 03 4e 58 26 aa 97 a8 d8 ab 71 c5 70 a5 8d 4a 4a f0 a5 a7 06 5e 7a 22 ec 9b d3 a0 06 f2 4d 29 40 9c 22 88 87 c8 14 2a f1 37 da d9 f8 3c 64 96 32 ce ab 8b 3c 1c d1 eb 58 response SW1SW2 : 90 00 response ascii : p.....A|C>....N...k.D...'=.$.4.w.O)..Y...~...s...Q..f.u.._.Y.v..(......a..ky..+......b....}g..NX&.....q.p..JJ....^z"......M)@."....*.7...
70 81 93 -- Record Template (EMV Proprietary) 93 81 90 -- Signed Static Application Data 41 7c 43 3e 07 08 e7 14 4e ce c1 d3 6b bf 44 09 2e fe 27 3d aa 24 cb 34 c3 77 9e 4f 29 e7 7f 59 10 a9 c5 7e 0c bb e3 73 81 93 b3 51 f5 e4 66 18 75 1f 0a 5f fb 59 c7 76 1f f1 28 8d dd ac a8 86 9b 61 14 b0 5c 6b 79 e4 d3 2b 97 95 c7 b4 ea e4 62 17 1b 05 90 7d 67 09 03 4e 58 26 aa 97 a8 d8 ab 71 c5 70 a5 8d 4a 4a f0 a5 a7 06 5e 7a 22 ec 9b d3 a0 06 f2 4d 29 40 9c 22 88 87 c8 14 2a f1 37 da d9 f8 3c 64 96 32 ce ab 8b 3c 1c d1 eb 58 (BINARY)
[Step 13] Send GET DATA command to find the Application Transaction Counter (ATC)
80 CA 9F 36 00 response hex : 9f 36 02 00 79 response SW1SW2 : 90 00 response ascii : .6..y response parsed :
9f 36 02 -- Application Transaction Counter (ATC) 00 79 (BINARY)
[Step 14] Send GET DATA command to find the Last Online ATC Register
80 CA 9F 13 00 response hex : 9f 13 02 00 67 response SW1SW2 : 90 00 response ascii : ....g response parsed :
9f 13 02 -- Last Online Application Transaction Counter (ATC) Register 00 67 (BINARY)
[Step 15] Send GET DATA command to find the PIN Try Counter
80 CA 9F 17 00 response hex : 9f 17 01 03 response SW1SW2 : 90 00 response ascii : .... response parsed :
9f 17 01 -- Personal Identification Number (PIN) Try Counter 03 (BINARY)
[Step 16] Send GET DATA command to find the Log Format
80 CA 9F 4F 00 response hex :
response SW1SW2 : 6a 81 response ascii : response parsed :
[Step 17] VERIFY (PIN)
00 20 00 80 08 24 12 34 ff ff ff ff ff response hex :
response SW1SW2 : 90 00 response ascii : response parsed :
[Step 18] Select application by AID
00 A4 04 00 07 d5 78 00 00 02 10 10 response hex : 6f 2e 84 07 d5 78 00 00 02 10 10 a5 23 50 09 62 61 6e 6b 61 78 65 70 74 87 01 01 5f 2d 02 6e 6f 9f 11 01 01 9f 12 09 62 61 6e 6b 61 78 65 70 74 response SW1SW2 : 90 00 response ascii : o....x......#P.bankaxept..._-.no.......bankaxept response parsed :
6f 2e -- File Control Information (FCI) Template 84 07 -- Dedicated File (DF) Name d5 78 00 00 02 10 10 (BINARY) a5 23 -- File Control Information (FCI) Proprietary Template 50 09 -- Application Label 62 61 6e 6b 61 78 65 70 74 (=bankaxept) 87 01 -- Application Priority Indicator 01 (BINARY) 5f 2d 02 -- Language Preference 6e 6f (=no) 9f 11 01 -- Issuer Code Table Index 01 (NUMERIC) 9f 12 09 -- Application Preferred Name 62 61 6e 6b 61 78 65 70 74 (=bankaxept)
[Step 19] Send GET PROCESSING OPTIONS command
80 A8 00 00 02 83 00 response hex : 80 06 18 00 08 01 01 00 response SW1SW2 : 90 00 response ascii : ........ response parsed :
80 06 -- Response Message Template Format 1 18 00 08 01 01 00 (BINARY)
[Step 20] Send READ RECORD to read SFI 1 record 1
00 B2 01 0c 00 response hex : 70 6e 5a 09 95 78 52 64 12 34 56 78 90 5f 34 01 02 5f 24 03 12 03 29 57 13 95 78 52 64 12 34 56 78 90 d1 20 36 01 12 34 56 78 90 0f 8c 15 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 8d 17 8a 02 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 8e 0a 00 00 00 00 00 00 00 00 02 00 9f 0d 05 b0 40 04 88 00 response SW1SW2 : 90 00 response ascii : pnZ..xRd.4Vx.4..$...)W..xRd.4Vx.. 6..4Vx...............*......7................*......7.................@... response parsed :
70 6e -- Record Template (EMV Proprietary) 5a 09 -- Application Primary Account Number (PAN) 95 78 52 64 12 34 56 78 90 (NUMERIC) 5f 34 01 -- Application Primary Account Number (PAN) Sequence Number 02 (NUMERIC) 5f 24 03 -- Application Expiration Date 12 03 29 (NUMERIC) 57 13 -- Track 2 Equivalent Data 95 78 52 64 12 34 56 78 90 d1 20 36 01 12 34 56 78 90 0f (BINARY) 8c 15 -- Card Risk Management Data Object List 1 (CDOL1) 9f 02 06 -- Amount, Authorised (Numeric) 9f 03 06 -- Amount, Other (Numeric) 9f 1a 02 -- Terminal Country Code 95 05 -- Terminal Verification Results (TVR) 5f 2a 02 -- Transaction Currency Code 9a 03 -- Transaction Date 9c 01 -- Transaction Type 9f 37 04 -- Unpredictable Number 8d 17 -- Card Risk Management Data Object List 2 (CDOL2) 8a 02 -- Authorisation Response Code 9f 02 06 -- Amount, Authorised (Numeric) 9f 03 06 -- Amount, Other (Numeric) 9f 1a 02 -- Terminal Country Code 95 05 -- Terminal Verification Results (TVR) 5f 2a 02 -- Transaction Currency Code 9a 03 -- Transaction Date 9c 01 -- Transaction Type 9f 37 04 -- Unpredictable Number 8e 0a -- Cardholder Verification Method (CVM) List 00 00 00 00 00 00 00 00 02 00 (BINARY) 9f 0d 05 -- Issuer Action Code - Default b0 40 04 88 00 (BINARY)
[Step 21] Send GET DATA command to find the Application Transaction Counter (ATC)
80 CA 9F 36 00 response hex : 9f 36 02 01 73 response SW1SW2 : 90 00 response ascii : .6..s response parsed :
9f 36 02 -- Application Transaction Counter (ATC) 01 73 (BINARY)
[Step 22] Send GET DATA command to find the Last Online ATC Register
80 CA 9F 13 00 response hex : 9f 13 02 01 72 response SW1SW2 : 90 00 response ascii : ....r response parsed :
9f 13 02 -- Last Online Application Transaction Counter (ATC) Register 01 72 (BINARY)
[Step 23] Send GET DATA command to find the PIN Try Counter
80 CA 9F 17 00 response hex : 9f 17 01 03 response SW1SW2 : 90 00 response ascii : .... response parsed :
9f 17 01 -- Personal Identification Number (PIN) Try Counter 03 (BINARY)
[Step 24] Send GET DATA command to find the Log Format
80 CA 9F 4F 00 response hex :
response SW1SW2 : 6a 81 response ascii : response parsed :
======================================
[EMVCard]
Answer To Reset (ATR) 3b 67 00 00 a6 40 40 00 09 90 00 Description From Public Database - [Visa card issued by Norway bank DNBNor, VISA Classic - Landkreditt Bank (Norway), VISA Classic - Nordea Bank (Norway)] ISO Compliant Answer To Reset (ATR) Convention - DIRECT Protocol - T=0 Historical bytes - a6 40 40 00 09 90 00
Directory Definition File Name: 315041592e5359532e4444463031 (=1PAY.SYS.DDF01) Issuer Code Table Index: 1 (ISO-8859-1) Short File Identifier: 2 (Governed by the EMV specification) Language Preference (in order of preference): Language: no (Norwegian) Language: en (English)
Applications (2 found):
Application
AID: a1 23 45 67 89 10 10
Label: VISA
Preferred Name: VISA Classic
Application Effective Date: Thu Feb 05 00:00:00 CET 2009
Application Expiration Date: Sat Mar 31 00:00:00 CEST 2012
Application Version Number: 140
Application Currency Code (ISO 4217): 578 (NOK Norwegian Krone)
Application Currency Exponent: 2 (Position of the decimal point from the right)
Issuer Country Code (ISO 3166-1): 578 (Norway)
Application Transaction Counter (ATC): 121
Last Online ATC Register: 103
PIN Try Counter: 3 (Number of PIN tries remaining)
Cardholder Name: SMITH/JOHN
Primary Account Number (PAN) - 5411118888888882
Major Industry Identifier = 5 (Banking and financial)
Issuer Identifier Number: 541111
Account Number: 888888888
Check Digit: 2 (Valid)
PAN Sequence Number: 1
Application Priority Indicator
May be selected without cardholder confirmation
Selection Priority: 2
Application Interchange Profile
Static Data Authentication (SDA) supported
Dynamic Data Authentication (DDA) not supported
Cardholder verification is supported
Terminal risk management is to be performed
Issuer authentication is supported
CDA not supported
Application File Locator
Application Elementary File
Short File Identifier:
1 (Governed by the EMV specification)
Start Record: 1
End Record: 1
Number of Records Involved In Offline Data Authentication: 0
Record: 1
Length: 79
Involved In Offline Data Authentication: false
Application Elementary File
Short File Identifier:
1 (Governed by the EMV specification)
Start Record: 2
End Record: 5
Number of Records Involved In Offline Data Authentication: 1
Record: 2
Length: 82
Involved In Offline Data Authentication: true
Record: 3
Length: 73
Involved In Offline Data Authentication: false
Record: 4
Length: 195
Involved In Offline Data Authentication: false
Record: 5
Length: 150
Involved In Offline Data Authentication: false
Application Usage Control
Valid for domestic cash transactions
Valid for international cash transactions
Valid for domestic goods
Valid for international goods
Valid for domestic services
Valid for international services
Valid at ATMs
Valid at terminals other than ATMs
Domestic cashback not allowed
International cashback not allowed
Processing Options Data Object List
Terminal Country Code (2 bytes)
Transaction Currency Code (2 bytes)
Issuer Public Key Certificate
Issuer Identifier: 492564
CA Public Key Index: 7
Certificate Format: 2
Certificate Expiration Date (MMYY): 1214
Certificate Serial Number: 00e16d (57709)
Hash Algorithm Indicator: 1 (=SHA-1)
Issuer Public Key Algorithm Indicator: 1 (=RSA)
Hash: b6819d8d5af4034214973edbad1bd2866a550dbb
Issuer Public Key
Length: 1152bit
Exponent:
03
Modulus:
ba 53 3e b8 ec c9 f9 b8 b2 a3 5e ed 3b e0 3f 7d
3a cf e2 46 a3 4c 8e 75 f5 c7 4a 64 e6 5c 97 cb
4f 2f ab 97 09 cf 7e 12 89 0e af f1 8a 4f cf b4
fa 98 18 db c3 be 5f dc 65 91 54 46 cb 86 24 ac
2d 1e 07 72 f2 52 49 02 f9 8b a5 5b 4b 4b 11 00
1e 4e cf b7 0f 12 19 a3 97 12 98 e7 ed c5 b9 2b
8d 44 c9 80 e2 f6 8f 90 8f 9d ad 78 5b c8 f7 38
4c 06 dc dc 35 97 51 d1 d4 31 52 0d f5 ff 2d 43
47 4a 88 60 3c 9e fc a0 66 6a 1a 42 bd f0 a4 f5
Card Risk Management Data Object List 1
Amount, Authorised (Numeric) (6 bytes)
Amount, Other (Numeric) (6 bytes)
Terminal Country Code (2 bytes)
Terminal Verification Results (TVR) (5 bytes)
Transaction Currency Code (2 bytes)
Transaction Date (3 bytes)
Transaction Type (1 byte)
Unpredictable Number (4 bytes)
Card Risk Management Data Object List 2
Authorisation Response Code (2 bytes)
Amount, Authorised (Numeric) (6 bytes)
Amount, Other (Numeric) (6 bytes)
Terminal Country Code (2 bytes)
Terminal Verification Results (TVR) (5 bytes)
Transaction Currency Code (2 bytes)
Transaction Date (3 bytes)
Transaction Type (1 byte)
Unpredictable Number (4 bytes)
Signed Static Application Data
Hash Algorithm Indicator: 1 (=SHA-1)
Data Authentication Code: 0123
Hash: 74159900848ab829b9f0318950cdad9351e0bfdf
Cardholder Verification Method (CVM) List:
Cardholder Verification Rule
Rule: Enciphered PIN verified online
Condition Code: If unattended cash
Apply succeeding CV Rule if this CVM is unsuccessful
Cardholder Verification Rule
Rule: Plaintext PIN verification performed by ICC
Condition Code: If terminal supports the CVM
Apply succeeding CV Rule if this CVM is unsuccessful
Cardholder Verification Rule
Rule: If transaction is in the application currency and is under 0.00 value
Condition Code: If terminal supports the CVM
Apply succeeding CV Rule if this CVM is unsuccessful
Cardholder Verification Rule
Rule: Enciphered PIN verified online
Condition Code: If terminal supports the CVM
Apply succeeding CV Rule if this CVM is unsuccessful
Cardholder Verification Rule
Rule: If transaction is in the application currency and is over 0.00 value
Condition Code: Always
Fail cardholder verification if this CVM is unsuccessful
Static Data Authentication Tag List
Application Interchange Profile
Track 1 Discretionary Data:
323439353030303030303030303030313031303030303030 (ASCII: 249500000000000101000000)
Track 2 Equivalent Data:
Primary Account Number (PAN) - 5411118888888882
Major Industry Identifier = 5 (Banking and financial)
Issuer Identifier Number: 541111
Account Number: 888888888
Check Digit: 2 (Valid)
Expiration Date: Wed Feb 29 00:00:00 CET 2012
Service Code: 201
Discretionary Data: 1234567890000
Service Code: 201
Language Preference (in order of preference):
Language: no (Norwegian)
Language: en (English)
Issuer Code Table Index: 1 (ISO-8859-1)
Issuer Action Code - Default:
11110000
00100000
00100100
00101000
00000000
Issuer Action Code - Denial:
00000000
01010000
10000000
00000000
00000000
Issuer Action Code - Online:
11110000
00101000
00111100
11111000
00000000
Application
AID: d5 78 00 00 02 10 10
Label: bankaxept
Preferred Name: bankaxept
Application Expiration Date: Thu Mar 29 00:00:00 CEST 2012
Application Transaction Counter (ATC): 115
Last Online ATC Register: 114
PIN Try Counter: 3 (Number of PIN tries remaining)
Primary Account Number (PAN) - 957852641234567890
Major Industry Identifier = 9 (For assignment by national standards bodies)
Country Code (ISO 3166-1): 578 (=Norway)
Issuer Identifier Number: 957852
Account Number: 64123456789
Check Digit: 0 (Valid)
PAN Sequence Number: 2
Application Priority Indicator
May be selected without cardholder confirmation
Selection Priority: 1
Application Interchange Profile
Static Data Authentication (SDA) not supported
Dynamic Data Authentication (DDA) not supported
Cardholder verification is supported
Terminal risk management is to be performed
Issuer authentication is not supported
CDA not supported
Application File Locator
Application Elementary File
Short File Identifier:
1 (Governed by the EMV specification)
Start Record: 1
End Record: 1
Number of Records Involved In Offline Data Authentication: 0
Record: 1
Length: 112
Involved In Offline Data Authentication: false
Card Risk Management Data Object List 1
Amount, Authorised (Numeric) (6 bytes)
Amount, Other (Numeric) (6 bytes)
Terminal Country Code (2 bytes)
Terminal Verification Results (TVR) (5 bytes)
Transaction Currency Code (2 bytes)
Transaction Date (3 bytes)
Transaction Type (1 byte)
Unpredictable Number (4 bytes)
Card Risk Management Data Object List 2
Authorisation Response Code (2 bytes)
Amount, Authorised (Numeric) (6 bytes)
Amount, Other (Numeric) (6 bytes)
Terminal Country Code (2 bytes)
Terminal Verification Results (TVR) (5 bytes)
Transaction Currency Code (2 bytes)
Transaction Date (3 bytes)
Transaction Type (1 byte)
Unpredictable Number (4 bytes)
Cardholder Verification Method (CVM) List:
Cardholder Verification Rule
Rule: Enciphered PIN verified online
Condition Code: Always
Fail cardholder verification if this CVM is unsuccessful
Track 2 Equivalent Data:
Primary Account Number (PAN) - 957852641234567890
Major Industry Identifier = 9 (For assignment by national standards bodies)
Country Code (ISO 3166-1): 578 (=Norway)
Issuer Identifier Number: 957852
Account Number: 64123456789
Check Digit: 0 (Valid)
Expiration Date: Wed Feb 29 00:00:00 CET 2012
Service Code: 601
Discretionary Data: 12345678900
Language Preference (in order of preference):
Language: no (Norwegian)
Issuer Code Table Index: 1 (ISO-8859-1)
Issuer Action Code - Default:
10110000
01000000
00000100
10001000
00000000
FINISHED
Terminal - Banking Chip Card. How they are talk to each other?
Today was a hard day for me, even if it was Sunday...but anyway I want to start a new very interesting topic about one standard, which is actually playing very important role in a world of Payment application, its name is EMV.
Everyone today has his own banking card, and this is easy way to get the access to your bank account and as a consequence to your money. Whatever you do, going to buy something, to get some cash or to pay for your mobile phone, each time you take your card from your wallet and starting from this moment you oblige to follow some rules in order make a correct payment. To be precisely, it is not you personally, this is your banking card which should be complained to EMVco standard. Let's imagine you insert your card to the reader of ATM or POS terminal and from this moment magic is takes a control on your bank account. Interesting, is not it? Let's see what is going on between your card and ATM or terminal.
First of all, I will give you some useful links about related topics, which I hope will help you to understand the process of data exchange between smart card and terminal and also helps to read this topic.
- ISO 7816 general description.
- Global Platform general description and full set of documents which can be downloaded from official web site.
- Nice page with EMV tags search engine
- ASCII to HEX/HEX to ASCII convertor
Let’s start to see what is going on between card and terminal. I need to say here, first we will speak about contact interface.About contactless interface I will describe later on.
Part I. EMV transaction via Contact Interface.
When the card inserted in to terminal, it is going to be powered and reset. Card must provide Acknowledge-To-Reset (ATR) and then will wait for incoming commands.
This is a common part which is not directly related to EMV transaction. More information about ATR you will find in ISO7816 part 3. So, now let’s have a look from EMV standard point of view.
The next step is to choose and select target application. Depending on what type of card you have (Visa, MasterCard, etc...), different payment schemes will apply during EMV transaction.
There are two approaches can be used to determine which application is going to be used:
- Terminal use PSE (Payment System Environment), if the one is exists on card.
- Terminal build a list of candidates based on list of application stored in terminal.
Approach 1: Using PSE
PSE is Payment System Environment which contains, roughly speaking language preference, list of applications and their priority in which they must be executed. It is not mandatory for all cards to support PSE.
Terminal select PSE using SELECT command with filename 1PAY.SYS.DDF01. If there is no PSE, card should return “6A82”, which means “file not found”. If card returns “9000”, terminal proceeds to the next step by processing response from card. The response on the SELECT command for PSE contains FCI data object, which should looks according EMV Book 1 like:
Tag |
Value |
Presence |
|||
6F |
FCI Template |
M |
|||
|
84 |
DF Name |
M |
||
A5 |
FCI Proprietary Template |
M |
|||
|
88 |
SFI of the Directory Elementary File |
M |
||
5F2D |
Language Preference |
O |
|||
9F11 |
Issuer Code Table Index |
O |
|||
BF0C |
FCI Issuer Discretionary Data |
O |
|||
|
XXXX -Tag according EMV Book3, Annex B |
1 or more additional proprietary data elements from an application provider, issuer, or IC card supplier, or EMV-defined tags that are specifically allocated to 'BF0C' |
O |
Response on SELECT command for PSE
So now terminal knows the SFI of payment system directory to read. By sendin
Tweet this Follow @neaPay LinkedIn
Docs Home ISO8583 Simulator Simulator Tutorials ISO8583 Converter Cards Issuer BASE24 Base24-eps Reference Guide ISO8583 Switch HSM Simulator POS Simulator Products Switch
Top Read Articles
BIN List & Range for MasterCard, Visa, Amex, Diners, Discover, JCB, CUP 183104 views
ISO8583 Response Codes for Transaction processing 77854 views
Read smart card chip data with APDU commands ISO 7816 67071 views
ISO8583 Processing Codes for Transaction Processing 34948 views
ISO8583 Message Types for Transaction Processing 34168 views
MCC Codes - Merchant Category Codes to use in ISO8583 Field 18 23623 views
Deploy, run and generate with neaPay Card Data Generator 22753 views
Run the neaPay ISO8583 simulator 21899 views
ISO8583 payments message format, programmers guide 19379 views
ISO8583 message: The list of ISO 4217 currency codes for data elements 49 and 52 19143 views
ISO8583 ATM POS Crypto API integration with exchanges like Coinbase or Binance 17600 views
ISO8583 Message Converter JSON and XML interface specification mapping 15083 views
Cards and Banks Training 14840 views
Java version for neapay products Simulator Converter Switch Authorization Cards Issuer 13155 views
Support for the neaPay products: Authorization, Switch, Converter, Simulator, Issuer 10773 views
Log Files in BASE24 classic 10736 views
BASE24 classic vs BASE24-eps 9746 views
Create a new test case in the neaPay ISO8583 simulator Video guide 9513 views
BASE24 documentation to read 9482 views
BASE24 classic interview questions 9147 views
EMV explained for programmers 8940 views
Deploy the neaPay ISO8583 simulator - video guide 8904 views
ISO8583 Simulator neapay- Performance testing at 500, 1000 and 1500 Transactions per second 8578 views
ISO8583 converter to JSON XML SQL to HTTP host - message flow - video guide - Part.2 8425 views
ISO8583 converter to JSON XML SQL to HTTP Host - host unavailable - video guide- Part.3 8073 views
ISO8583 converter to JSON XML SQL to HTTP host - start& run - video guide - Part.1 7794 views
Run the neaPay ISO8583 converter to JSON, XML, SQL, in a test environment 7689 views
Changing fields definitions in the ISO8583 simulator and message converter 7666 views
Load Test enabling and performance testing at 1TPS and 100TPS 7661 views
Run One, Run Scenario, Run All, Run Load in the neaPay ISO8583 Simulator - Use guide 7633 views
BASE24 classic screens examples explained 7629 views
Adding your own card to the Payments simulator to test your system 7614 views
Connect the neaPay ISO8583 Acquirer simulator to your own host or Issuer 7581 views
Card readers supported by neaPay payments simulator, CHIP and NFC 7526 views
BASE24-eps interview questions 7493 views
Deploy the neaPay HSM simulator in a test environment 7426 views
How the fingerprint reader works in the ISO8583 payments simulator 7409 views
Enabling traces in the payments simulator 7397 views
Altering test cases in Excel for the ISO8583 simulator 7396 views
Sample Recommended design for an Acquirer test cases suite, Scenarios and Regression 7388 views
Deploy the neaPay ISO8583 Payments converter in a test environment 7376 views
Trace configuration in neaPay Simulator, Converter, Switch, Authorization and Cards Issuer 7030 views
Deploy the Payments Switch Router in a test environment 6987 views
Regression Testing in 1 click with instant Analytics and CSV report 6980 views
BASE24 classic cards configuration tutorial with Examples 6855 views
BASE24 classic ATM configuration Tutorial in ATD and XPNET with examples 6749 views
Add extra custom fields to the ISO8583 simulator 6737 views
ISO8583 Message Converter to XML SQL CSV interface specification mapping 6466 views
PCI compliant with neapay switch 6314 views
BASE24-EPS ACI DESKTOP tutorial - Getting started 6195 views
BASE24 classic prefix configuration tutorial CPF with examples 4494 views
BASE24 classic tracing of transactions. Audits, configuration, enabling and opening 4336 views
POS simulator format SPDH HPDH Verifone and custom 4308 views
BASE24 classic Institution configuration Tutorial with example 3980 views
ACI BASE24 classic automatic extract configuration 3915 views
BASE24 classic balance file configuration PBF with example 3837 views
First steps with BASE24 Classic 3664 views
Getting started with using Prognosis for BASE24 and BASE24-eps 3453 views
Swift Message Structure ISO 15022 and ISO 20022 1270 views
ISO8583 simulator scheduling tasks and test regressions 1125 views
ISO8583 Load Balancer with neapay Switch Router 1124 views
ISO8583 Card Transaction BIN Prefix Router with neapay Switch 1123 views
SWIFT Message types complete list reference 1036 views
ISO8583 simulator Visa MasterCard Amex CUP configuration demo video 842 views
SWIFT Common Message Type List with examples 804 views
POS Transaction types explained 598 views
Recent Articles on Iso8583
Switch 1124 views
ISO8583 Load Balancer with neapay Switch Router
ISO8583 Load Balancer with neapay Switch Router. Route ISO8583 Card Transactions equally between nodes, or filter based on Brand, Prefix, Amount ...ISO8583 Simulator 1125 views
ISO8583 simulator scheduling tasks and test regressions
The neaPay ISO8583 simulator improves automated testing with full capabilities for scheduling minutely message exchanges, duration tests, nightly or w ...ISO8583 Switch 6314 views
PCI compliant with neapay switch
PCI compliant with neapay switch Steps and procedure: Configuration parameters to acheive service PCI DSS compliance ...ISO8583 Converter 6466 views
ISO8583 Message Converter to XML SQL CSV interface specification mapping
ISO8583 Converter creating an XML, SQL and CSV object from an incoming TCP/IP ISO8583 binary message, and then sending it to a HTTP host as ...ISO8583 Simulator 6737 views
Add extra custom fields to the ISO8583 simulator
Adding extra, custom fields to the ISO8583 simulator in 3 simple steps is as easy as running the tests: Edit the spreadsheet and save it; Edit th ...ISO8583 Simulator 6980 views
Regression Testing in 1 click with instant Analytics and CSV report
The neaPay Payments simulator is designed from the start to follow the life of a project, and therefore, after all testing has been completed, we need ...ISO8583 Switch 6987 views
Deploy the Payments Switch Router in a test environment
Deploy then neaPay Payments switch router to easily route transactions based on BIN/prefix, amount, merchant, originating or destination insytitution, ...Products 7030 views
Trace configuration in neaPay Simulator, Converter, Switch, Authorization and Cards Issuer
Trace configuration in neaPay Simulator, Converter, Switch, Authorization and Cards Issuer ...ISO8583 Converter 7376 views
Deploy the neaPay ISO8583 Payments converter in a test environment
When you receive a delivery from neaPay for an iso8583 convertor, you will get 1 zip file. This step by step guide will guide you through ...ISO8583 Simulator 7388 views
Sample Recommended design for an Acquirer test cases suite, Scenarios and Regression
A test suit is composed of different scenarios which follow in a functional (or another) way in order to cover the full, or as much as possible, of th ...ISO8583 Simulator 7396 views
Altering test cases in Excel for the ISO8583 simulator
When you need to customize your own test case, you need to follow some simple steps all the time.In order to obtain this, you need to alter test data ...Choose the product you need
ISO8583 Converter
Convert ISO8583 to JSON XML SQL
ISO8583 Interface
ISO8583 Interface Handler
ISO20022 Converter
Convert ISO20022 to ISO8583 ...
ISO8583 Builder
Build ISO8583 from scratch
ISO8583 Switch
ISO8583 Router by criteria
ISO8583 Authorization
Authorize cards and ledger
Payments Acquirer
Acquiring host from devices
Cards Issuing
Generate and issue cards
ISO8583 Simulator
ISO8583 HISO98 HISO87 simulator
ISO20022 Simulator
ISO20022 & SWIFT simulator
POS Simulator
POS protocols simulator
Web Api Simulator
Web API tester Performance
Get a free quote, Ask for details
Get help
Try the software yourself
Download
Read Documentation and Start guides
Online Tools Overview