EMV-SELECT未获得PDOL

时间:2019-07-03 19:38:46

标签: java smartcard apdu emv

好的,所以我选择了“ 1PAY.SYS.DDF01” PSE并得到了以下响应: (“ 00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31”) “ 61 1E”,所以我执行了GET Response命令并得到以下输出: (“ 00 C0 00 00 1E”) [“ 6F 1C 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 0A 88 01 01 5F 2D 04 68 65 65 6E”]

TLV decode 1PAY.SYS.DDF01

然后我转到READ RECORDS命令(sfi = 1)并得到以下信息: (“ 00 B2 01 0C 00”) 并得到以下回应: “ 6C 1E” 所以我再次这样做: (“ 00 B2 01 0C 1E”) 并得到以下回应: [“ 70 1C 61 1A 4F 07 A0 00 00 00 03 10 10 50 0C 56 69 73 61 20 50 72 65 70 61 69 64 87 01 01”]

TLV decode sfi

之后,当我尝试执行第二条记录的读取记录时: (“ 00 B2 02 0C 00”) 我收到了以下回复:“ 6A 83”(找不到记录)

现在我试图选择我们所获得的帮助的文件: “ 61 25”(对此文件进行响应) 然后我做了GET RESPONSE: (“ 00 C0 00 00 25”) 并得到了: [“ 6F 23 84 07 A0 00 00 00 03 10 10 A5 18 50 0C 56 69 73 61 20 50 72 65 70 61 69 64 87 01 01 5F 2D 04 68 65 65 6E”] [TLV解码AID] 3

您可以看到我没有PDOL,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

PDOL在ADF选择响应数据中是可选的(请参阅EMV 4.3规格书1,表45)。

在这种情况下,在def add_elems(row_list: list, tolerance: Decimal): counter_sublist = 0 while counter_sublist < len(row_list) - 1: for idx, sublist in enumerate(row_list[counter_sublist:]): actual_idx = idx + counter_sublist value = get_elem_for_sublist(sublist)['top'] # decimal if actual_idx == counter_sublist: # get value to compare value_to_compare = value elif abs(value - value_to_compare) >= tolerance: # add dict into sublist dict_to_add = { 'text': '', 'top': value_to_compare } sublist.insert(counter_sublist, dict_to_add) counter_sublist += 1 return row_list 中发送了一个空标记'83',引用了EMV 4.3规格书3,第6.5.8.3节:

  

命令消息的数据字段是根据   由ICC提供的PDOL(如5.4节所定义),由标签引入   '83'。 当ICC未提供数据对象列表时,终端将设置   模板的length字段为零。否则,模板的length字段为   传输到ICC的数据对象的值字段的总长度。

[ {'text': 'Page 1, col 1.', 'top': Decimal('83.640')} ], [ {'text': '', 'top': Decimal('83.640')}, {'text': 'Page 1, col 2.', 'top': Decimal('112.920')} ], [ {'text': '', 'top': Decimal('83.640')}, {'text': '', 'top': Decimal('112.920')}, {'text': 'Page 1, col 3', 'top': Decimal('127.560')} ] 是:GET PROCESSING OPTIONS

答案 1 :(得分:0)

就像@vlp一样,您还不能读取文件。您必须发送GET PROCESSING OPTIONS”(GPO)命令来检索应用程序交换配置文件(AIP)和应用程序文件定位器(AFL)。

您可以通过AFL从卡上读取数据。

此资源说明您的确切情况; https://blog.saush.com/2006/09/08/getting-information-from-an-emv-chip-card/