Read smart card chip data with APDU commands ISO 7816

Posted on 28th Nov 2019 63834 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 Information

APDU 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.

 

 

 

  • EMV on wiki and EMVco website where you can find all specifications.

 

 

 

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:

  1. Terminal use PSE (Payment System Environment), if the one is exists on card.
  2. 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


LinkedIn

Docs Home ISO8583 Simulator Simulator Tutorials ISO8583 Converter Cards Issuer BASE24 Base24-eps Reference Guide ISO8583 Switch HSM Simulator POS Simulator Products


Top Read Articles


BIN List & Range for MasterCard, Visa, Amex, Diners, Discover, JCB, CUP 165668 views

ISO8583 Response Codes for Transaction processing 67314 views

Read smart card chip data with APDU commands ISO 7816 63835 views

ISO8583 Processing Codes for Transaction Processing 31416 views

ISO8583 Message Types for Transaction Processing 31393 views

Deploy, run and generate with neaPay Card Data Generator 21445 views

MCC Codes - Merchant Category Codes to use in ISO8583 Field 18 21005 views

Run the neaPay ISO8583 simulator 20924 views

ISO8583 payments message format, programmers guide 18444 views

ISO8583 message: The list of ISO 4217 currency codes for data elements 49 and 52 17598 views

ISO8583 ATM POS Crypto API integration with exchanges like Coinbase or Binance 17068 views

ISO8583 Message Converter JSON and XML interface specification mapping 14017 views

Cards and Banks Training 13631 views

Java version for neapay products Simulator Converter Switch Authorization Cards Issuer 10717 views

Support for the neaPay products: Authorization, Switch, Converter, Simulator, Issuer 10123 views

Log Files in BASE24 classic 9837 views

Create a new test case in the neaPay ISO8583 simulator Video guide 9096 views

BASE24 classic vs BASE24-eps 8790 views

BASE24 documentation to read 8635 views

BASE24 classic interview questions 8563 views

Deploy the neaPay ISO8583 simulator - video guide 8504 views

EMV explained for programmers 8192 views

ISO8583 Simulator neapay- Performance testing at 500, 1000 and 1500 Transactions per second 8119 views

ISO8583 converter to JSON XML SQL to HTTP host - message flow - video guide - Part.2 7783 views

ISO8583 converter to JSON XML SQL to HTTP Host - host unavailable - video guide- Part.3 7309 views

ISO8583 converter to JSON XML SQL to HTTP host - start& run - video guide - Part.1 7153 views

Adding your own card to the Payments simulator to test your system 7148 views

Card readers supported by neaPay payments simulator, CHIP and NFC 7076 views

Changing fields definitions in the ISO8583 simulator and message converter 7060 views

Run the neaPay ISO8583 converter to JSON, XML, SQL, in a test environment 7034 views

Connect the neaPay ISO8583 Acquirer simulator to your own host or Issuer 7032 views

BASE24 classic screens examples explained 7028 views

Load Test enabling and performance testing at 1TPS and 100TPS 6977 views

Run One, Run Scenario, Run All, Run Load in the neaPay ISO8583 Simulator - Use guide 6977 views

Sample Recommended design for an Acquirer test cases suite, Scenarios and Regression 6970 views

Enabling traces in the payments simulator 6964 views

How the fingerprint reader works in the ISO8583 payments simulator 6953 views

Deploy the neaPay ISO8583 Payments converter in a test environment 6947 views

Altering test cases in Excel for the ISO8583 simulator 6944 views

BASE24-eps interview questions 6882 views

Deploy the neaPay HSM simulator in a test environment 6802 views

Regression Testing in 1 click with instant Analytics and CSV report 6658 views

Deploy the Payments Switch Router in a test environment 6540 views

BASE24 classic ATM configuration Tutorial in ATD and XPNET with examples 6249 views

Add extra custom fields to the ISO8583 simulator 6153 views

BASE24 classic cards configuration tutorial with Examples 6145 views

Trace configuration in neaPay Simulator, Converter, Switch, Authorization and Cards Issuer 6121 views

PCI compliant with neapay switch 5729 views

ISO8583 Message Converter to XML SQL CSV interface specification mapping 5695 views

BASE24-EPS ACI DESKTOP tutorial - Getting started 5529 views

BASE24 classic prefix configuration tutorial CPF with examples 4096 views

BASE24 classic tracing of transactions. Audits, configuration, enabling and opening 3952 views

ACI BASE24 classic automatic extract configuration 3647 views

BASE24 classic Institution configuration Tutorial with example 3612 views

BASE24 classic balance file configuration PBF with example 3524 views

POS simulator format SPDH HPDH Verifone and custom 3473 views

First steps with BASE24 Classic 3372 views

Getting started with using Prognosis for BASE24 and BASE24-eps 3090 views

ISO8583 simulator Visa MasterCard Amex CUP configuration demo video 316 views

ISO8583 simulator scheduling tasks and test regressions 87 views

Swift Message Structure ISO 15022 and ISO 20022 74 views

SWIFT Message types complete list reference 72 views

POS Transaction types explained 70 views

SWIFT Common Message Type List with examples 69 views

Contact    

Iso8583 - articles


ISO8583 Simulator   87 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 Converter   5695 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 Switch   5729 views

PCI compliant with neapay switch


PCI compliant with neapay switch Steps and procedure: Configuration parameters to acheive service PCI DSS compliance   ...
Products   6121 views

Trace configuration in neaPay Simulator, Converter, Switch, Authorization and Cards Issuer


Trace configuration in neaPay Simulator, Converter, Switch, Authorization and Cards Issuer ...
ISO8583 Simulator   6153 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 Switch   6540 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, ...
ISO8583 Simulator   6658 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 Simulator   6944 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 ...
ISO8583 Converter   6947 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   6953 views

How the fingerprint reader works in the ISO8583 payments simulator


Step by step guide to enable and disable fingerprint reading, enrollment and verification with the neapay Simulator is pretty straight forward and ass ...
ISO8583 Simulator   6964 views

Enabling traces in the payments simulator


Enabling traces in the ISO8583 Payments Simulator, just like the ISO8583 message converter and the ISO8583 Host, is a call to the system core to write ...
ISO8583 Simulator   6970 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 ...

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

Contact us

Try the software yourself
Download

Download software

Read Documentation and Start guides

Documentation

Online Tools Overview

Online Tools