首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ISO7816 APDU故障的处理

ISO7816 APDU故障的处理
EN

Stack Overflow用户
提问于 2013-10-01 13:33:57
回答 1查看 602关注 0票数 1

Java Card API、RE或VM规范中是否有任何规范,说明卡必须如何对错误的in 7816-4 APDU作出反应(前提是这些格式错误的APDU被传递给卡片)?

对于APDU处理小程序是否有不同的要求?

如果我要发送一个(错误的)3字节长的工业间第一APDU到卡片/applet-谁应该检测/报告这个错误?

谁会发现/报告第一个包含坏LC长度字段的行业间APDU?

EN

回答 1

Stack Overflow用户

发布于 2013-10-01 21:10:00

不,没有通用规范来定义如何处理格式错误的APDU。

通常,您应该始终返回一个状态字,该状态词在有效的ISO 7816-3/4范围内。哪一个完全取决于背景。通常,您应该尝试在错误条件下始终抛出带有逻辑状态字的ISOException。您应该尽量不返回6F00状态字,如果Applet.process()方法退出时,除了ISOException之外,还会返回该状态字。在ISO7816接口中定义了最常见(并非所有)的ISO状态词。

不幸的是,ISO 7816-4只提供了一些提示,说明可能会出现哪些状态词.另一方面,除非错误非常具体(例如,不正确的PIN),否则如果终端在语法上不正确的APDU上接收状态字(不太可能修复不正确的APDU命令数据字段),它就不能做太多的事情。任何特定的状态词都应该由更高级的协议来定义。ISO 7816-4本身只能作为其他协议的(烂)基础.没有明确的规则来处理语法(错误的长度)或语义(错误的PIN)错误。

对于格式错误的APDU:3字节的APDU不会被Applet接收。可能会收到不正确的Lc字节的字节。但是,如果这将影响传输层,使传输层要么超时,因为它需要更多的数据,要么错误的字节被丢弃,这将是更合乎逻辑的。检查并返回一个错误的长度错误不会有什么害处,但是如果您决定继续,请使用APDU.getIncomingLength()APDU.setIncomingAndReceive()值作为Ne的最终值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19117625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档