无法使用扩展长度 APDU 从卡中读取大数据

     2023-02-22     139

关键词:

【中文标题】无法使用扩展长度 APDU 从卡中读取大数据【英文标题】:Unable to read large data from the Card using Extended Length APDU 【发布时间】:2016-07-22 07:36:44 【问题描述】:

我正在尝试使用扩展长度 APDU 将长度为 0x2CF0 字节的数据写入卡上,它工作正常。但是我无法使用扩展长度的 apdu 从卡中读取相同数量的数据。

我收到以下错误, “sun.security.smartcardio.PCSCException:未知错误 0x4d3”。

当我尝试加载大小为 0x1af0 字节的相对较小的数据时,我能够使用扩展长度的 apdu 从卡中成功写入和读取。

在扩展长度 apdu 中从卡中读取数据是否有任何限制?有没有不使用命令链的解决方法?

PS:我使用的是 JCOP 2.4.2 R2 卡。

【问题讨论】:

【参考方案1】:

典型的智能卡将要发送到读卡器的数据存储在 RAM 中。 (除其他外,这更容易确保不会发送来自非易失性存储器的秘密数据)。智能卡芯片的 RAM 有限,您会感到幸运,您的较小尝试(超过 6 k)仍然有效。

不幸的是,在 ATR 中,卡只能表明它完全支持扩展长度的 APDU,但不能达到哪个边界(如果输出经过安全消息处理,这也可能会有所不同)。

典型的方法是,为命令提供某种内部分区,例如。 G。在基于文件系统的文件中,使用了二进制文件的概念,该命令可以指定起始偏移量,参见this question。

链接通常无济于事;因为对于 MAC 计算,整个数据都需要存在,架构通常也会在所有其他情况下强制执行此操作。

【讨论】:

最新的 ISO 7816 应该能够指示缓冲区大小,即使对于特定的 AID 等也是如此。当然,如果没有客户端/读卡器和智能卡支持,这可能并不重要。 嗨 Guidot,是否可以使用 .apdu.setOutgoing() 从卡中读取如此大的数据; apdu.setOutgoingLength(); apdu.sendBytesLong() 命令组合?我可以将输出长度设置为 0x2CF0 并调用多个 apdu.sendBytesLong() 吗?? @Narasimha:不,你必须检查你的卡,它支持的最大输出大小,并使用相应的起始偏移增量进行循环。 @guidot,如果我使用扩展长度 APDU,我的卡支持 8090 字节。如果我尝试使用 4096 字节调用 apdu.SendBytesLong 3 次,我仍然会得到 PCSC 异常。如果我在增量循环中一次发送 255 个字节,我仍然会得到 PCSC 异常。您是否有使用多个 SendBytesLong 调用返回大数据的示例代码? 仅供参考,如果我尝试使用 pyapdutool 或使用 JCShell 中的 SCComm 终端读取数据,它工作正常。它仅在 java SmartCardIO 库和 PCSC 终端中失败。

使用 ISO 7816-4 APDU 的 DESFire 卡中的外部身份验证

】使用ISO7816-4APDU的DESFire卡中的外部身份验证【英文标题】:ExternalauthenticationinDESFirecardwithISO7816-4APDUs【发布时间】:2015-12-2222:27:30【问题描述】:我尝试使用ISO7816-4APDU对DESFire卡(居民卡)进行身份验证。但它总是失败。我有什... 查看详情

无法使用 APDU 命令验证智能卡 PIN

】无法使用APDU命令验证智能卡PIN【英文标题】:CantverifysmartcardPINusingAPDUcommand【发布时间】:2016-05-2707:56:17【问题描述】:我正在使用Javajavax.smartcard库从智能卡(SIM卡)中读取数据。但我无法让我的代码验证我的PIN。这是我的... 查看详情

从万事达卡/VISA借记卡/信用卡读取EMV数据[关闭]

...信息,到目前为止,我可以弄清楚我需要发送APDU命令来从卡中读取数据,但是那里似乎没有关于哪些命令用于什么目的 查看详情

智能卡读卡器插件(插入卡)事件

...且它工作正常,但在所有情况下,用户都应该触发该过程从卡中读取数据。问题:如何处理UWP中的“卡插入事件”,以便每次插入卡后都可以从卡中读取数据?【问题讨论 查看详情

Braintree 可以在没有账单信息的情况下从卡中收取费用吗?

】Braintree可以在没有账单信息的情况下从卡中收取费用吗?【英文标题】:CanBraintreechargeacardwithoutbillinginformation?【发布时间】:2016-05-0308:09:36【问题描述】:我已将Braintree集成到我的API中,并且它目前在沙盒模式下接受付款。... 查看详情

“无法读取未定义的属性‘长度’。”使用 ColdFusion 和 jQuery 数据表

】“无法读取未定义的属性‘长度’。”使用ColdFusion和jQuery数据表【英文标题】:"Cannotreadproperty\'length\'ofundefined."withColdFusionandjQueryDataTable【发布时间】:2018-02-1216:44:38【问题描述】:我正在创建一个应该获取JSON数据的j... 查看详情

如何在角度选项卡中使用数据表

...述】:分别单击第一个和第二个选项卡后出现以下错误“无法设置未定义的属性\'_DT_CellIndex\'”和"无法读取null的属性\'parentNode\'"这是TS代码【问题讨论】:【参考方案1】:将每个表格拆分成不同的角度组件并使用@ViewChild调用dtOp... 查看详情

使用 READ BINARY 命令 APDU 从智能卡读取大型二进制文件 (>32k)

】使用READBINARY命令APDU从智能卡读取大型二进制文件(>32k)【英文标题】:Readlargebinaryfile(>32k)fromsmartcardusingREADBINARYCommandAPDU【发布时间】:2017-02-0310:28:34【问题描述】:我想从大于32k的智能卡中读取文件。我知道READBINARY命令AP... 查看详情

数据表:未捕获的类型错误:无法读取未定义的属性“长度”

】数据表:未捕获的类型错误:无法读取未定义的属性“长度”【英文标题】:Datatables:UncaughtTypeError:Cannotreadproperty\'length\'ofundefined【发布时间】:2012-12-1300:10:49【问题描述】:我正在尝试将ajax源与Datatables一起使用,但在执行... 查看详情

Android nfc 从三星 nexus 读取卡

...取卡片,但androidnfcapi没有提供足够的选项。我也尝试过使用第三方api名称“opennfc”,但它给出了不支持api的错误。谁能提供我从卡中读取数据的代码。我有读取标签但没有读取卡片的代码。这是下载openn 查看详情

未捕获的类型错误:尝试使用 PHP 填充响应式数据表时无法读取未定义的属性“长度”?

】未捕获的类型错误:尝试使用PHP填充响应式数据表时无法读取未定义的属性“长度”?【英文标题】:UncaughtTypeError:Cannotreadproperty\'length\'ofundefinedwhentryingtopopulateresponsivedatatableusingPHP?【发布时间】:2015-09-1420:14:23【问题描述】... 查看详情

如何使用 APDU 命令从 PoS 终端读取 MCC 代码

】如何使用APDU命令从PoS终端读取MCC代码【英文标题】:HowtoreadtheMCCcodefromthePoS-terminalusingAPDUcommands【发布时间】:2019-10-0408:56:00【问题描述】:我正在尝试在Android手机上实现HostApduService,我需要从PoS终端读取MCC代码我正在终端的... 查看详情

从 emv 卡中获取 IBAN 号码

...命令Apdu,才能获得IBAN号码...应用程序在Java7上运行,我使用java.smartcard 查看详情

求指点:varchar的长度设置对读取效率影响大吗?

...写.但是就是担心长度设置的太大,会不会非常影响日后的使用效率?我再重点说明一下,我这里说长度的并不是储存进去的实际数据长度,而是指字段类型设置的长度.我想问这个长度的设置,对读取的影响效率大不大?求前辈们指点一... 查看详情

APDU读取文件java卡程序

...acardprogram【发布时间】:2012-11-1411:46:33【问题描述】:我使用netbeans制作了javacard经典小程序当我对读取操作进行编程时,我检查APDU中的第一个字节为0x80,然后第二个字节为0xB0,然后从字节2和3中获取我将从文件中读取的偏移量... 查看详情

APDU FF 88 00 给出的长度不正确

...IFARE卡进行了编码。我现在有一个HIDOMNIKEY5127CK阅读器,但无法对其进行身份验证。对于标准1KMIFARE卡,我在传输密钥中加载:FF82200006FFFFFFFFFFFF成功,然后针对第一个块进行身份验证:FF 查看详情

APDU 命令读取 SLE4432/42 卡

...】:我需要迁移一个读取SLE4432/42卡的应用程序。现在我使用ACRreader,这个APDU命令FFA400000106<-4.1.1SELECT_CARD_TYPEFFB00020BE<-4.6.2READ_MEMORY_CARD但是,现在我需要使 查看详情

发送 APDU 命令以读取被动标签?

...间】:2018-10-1509:40:04【问题描述】:我在我的Beaglebone上使用libnfc和apdu_examle.c和PN532。我有一个android示例,用于在我的手机上模拟Miffare经典1k卡HCE(主机卡仿真),并且一切正常。如果我点击手机,我可以阅读手机发送的信息。... 查看详情