smartcard - How do I interpret the response from GET PROCESSING OPTIONS? -


i'm communicating visa electron debit card via acr reader , following response get processing options command:

80 0a 1c 00 08 01 03 00 10 01 01 00 90 00 

how should interpret response, when there's no afl (application file locator) nor aip (application interchange profile) in it? here's full communication log:

select psev2: 00 a4 04 00 0e 32 50 41 59 2e 53 59 53 2e 44 44 46 30 31 00 select psev2 returned: 6a82 - wrong parameter(s) p1 p2; file not found  select psev1: 00 a4 04 00 0e 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31 00 select psev1 returned: 6a82 - wrong parameter(s) p1 p2; file not found  select adf: 00 a4 04 00 07 a0 00 00 01 52 30 10 00 select adf returned: 6a82 - wrong parameter(s) p1 p2; file not found  select adf: 00 a4 04 00 07 a0 00 00 00 03 10 10 00 select adf returned: 6a82 - wrong parameter(s) p1 p2; file not found  select adf: 00 a4 04 00 07 a0 00 00 00 03 20 10 00 select adf returned: 6f 2c 84 07 a0 00 00 00 03 20 10 a5 21 50 0d 56 49 53 41 20 45 4c 45 43 54 52 4f 4e 87 01 01 5f 2d 04 62 67 65 6e bf 0c 05 9f 4d 02 0b 0a 90 00  select adf: 00 a4 04 00 05 a0 00 00 00 25 00 select adf returned: 6a82 - wrong parameter(s) p1 p2; file not found  select adf: 00 a4 04 00 07 a0 00 00 00 04 10 10 00 select adf returned: 6a82 - wrong parameter(s) p1 p2; file not found  select adf: 00 a4 04 00 07 a0 00 00 00 03 20 10 00 select adf returned: 6f 2c 84 07 a0 00 00 00 03 20 10 a5 21 50 0d 56 49 53 41 20 45 4c 45 43 54 52 4f 4e 87 01 01 5f 2d 04 62 67 65 6e bf 0c 05 9f 4d 02 0b 0a 90 00  processing options: 80 a8 00 00 02 83 00 00 processing options returned: 80 0a 1c 00 08 01 03 00 10 01 01 00 90 00 

thanks lot!

emv specification can details. in response only tags 0x82 , 0x94 values without tag , length parts.

in get processing option (gpo) command response ber-tlv encoded data. in sample: under tag 0x80 "template, response message format 1" packed tag 0x82 "emv, application interchange profile (aip)" value 2 bytes , rest tag 0x94 "emv, application file locator (afl)" value.

here results emv apdu command/response parser

> 80 a8 00 00 02 83 00 00 < 80 0a 1c 00 08 01 03 00 10 01 01 00 90 00  a8: # emv, processing options - rq:#"80a8000002830000" # iso 7816-3, case 4   - cla: "80" # class byte   - ins: "a8" # instruction   - p1p2: "0000" # parameters 1 , 2   - lcdata:#"028300"     - len: "02" # .     - val:#"8300" # .       - rfu: "8300" # authorisation cryptogram rfu   - le: "00" # . - rs:#"800a1c0008010300100101009000" # response   - sw1sw2:#"9000" # status byte 1 , 2     - sw1: "90" # status byte 1 // normal processing     - sw2: "00" # status byte 2   - data:#"800a1c000801030010010100" # .     - x80:#"800a1c000801030010010100"       - tag: "80"       - len: "0a" #  // 10       - val:#"1c000801030010010100" # template, response message format 1.         - x82:#"1c00" # emv, application interchange profile (aip)           - val:#"1c00" # application interchange profile (aip).             - b01: "1c"               # ___1____ - bit 5, cardholder verification supported               # ____1___ - bit 4, terminal risk management performed               # _____1__ - bit 3, issuer authentication supported             - b02: "00" # rfu         - x94:#"0801030010010100" # emv, application file locator (afl)           - val:#"0801030010010100" # application file locator (afl).             - s1:#"08010300" # afl record               - b01: "08" # sfi [xxxxx___] // 1               - b02: "01" # record // 1               - b03: "03" # record // 3               - b04: "00" # first hashed             - s2:#"10010100" # afl record               - b01: "10" # sfi [xxxxx___] // 2               - b02: "01" # record // 1               - b03: "01" # record // 1               - b04: "00" # first hashed 

Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -