Blog Home

Read smart card chip data with APDU commands ISO 7816

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

Top Read Articles


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

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

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

Run the neaPay ISO8583 simulator 9247 views

ISO8583 payments message format, programmers guide 8741 views

ISO8583 Message Converter JSON and XML interface specification mapping 6371 views

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

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

Deploy the neaPay ISO8583 simulator - video guide 4914 views

ISO8583 Response Codes for Transaction processing 4873 views

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

ISO8583 Message Types for Transaction Processing 3701 views

Log Files in BASE24 classic 3662 views

Performance testing at 500, 1000 and 1500 TPS 3316 views

BASE24 classic interview questions 3266 views

BASE24 documentation to read 3226 views

BASE24 classic vs BASE24-eps 3214 views

ISO8583 Processing Codes for Transaction Processing 3198 views

Asking for defects support for the neaPay products: converter, switch, issuer, simulator 3107 views

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

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

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

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

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

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

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

BASE24 classic screens examples explained 2521 views

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

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

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

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

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

Enabling traces in the payments simulator 2185 views

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

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

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

EMV explained for programmers 2181 views

Altering test cases in Excel for the ISO8583 simulator 2180 views

BASE24-eps interview questions 2118 views

Deploy the neaPay HSM simulator in a test environment 2101 views

Cards and Banks Training 1996 views

BASE24 classic cards configuration tutorial with Examples 1920 views

Deploy the Payments Switch Router in a test environment 1742 views

BASE24-EPS ACI DESKTOP tutorial - Getting started 1666 views

Getting started with BASE24. Compiling your first TAL program 1630 views

BASE24 classic prefix configuration tutorial CPF with examples 1628 views

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

BASE24 classic Institution configuration Tutorial with example 1416 views

BASE24 classic interchange configuration with examples 1384 views

BASE24 classic balance file configuration PBF with example 1357 views

ACI BASE24 classic automatic extract configuration 1323 views

Working with Base24-eps vs BASE24 Classic 1226 views

Base24-eps how to create journals with esbldjnl 1180 views

Add extra custom fields to the ISO8583 simulator 1101 views

BASE24 classic routing in IDF 1096 views

Getting started with Base24 development. TAL tutorial 1080 views

BASE24 classic External Message File configuration EMF with examples 1026 views

First steps with BASE24 Classic 923 views

What to expect when installing Base24-eps 905 views

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

BASE24 classic host configuration tutorial HCF with examples 883 views

Managing BASE24-eps implementation projects 841 views

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

Ask a question, get advice and help

   

Read related articles - Iso8583


Are you ready to start or need help?


Ready to start your next project with us? Give us a call or send us an email and we will get back to you as soon as possible!

Get a free quote, Ask for details, Get guidance


Contact us

Download and Use the software yourself


Download software

Follow a getting started guide to deploy and use the software


Get started