- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 T=0 协议(protocol)的情况下,情况 1 和情况 2 APDU 的 TPDU案例 3 和案例 4 APDU 相同,因此,在来自智能卡的 T=0 协议(protocol)的情况下无法区分情况 1 和 2 和案例 3 和 4 APDU。事实上,甚至无法区分case 2 & 3 APDU,除非智能卡尝试读取数据字节,如果终端实际发送的APDU是case 2 APDU,这将导致失败。
但是,由于在 T=1 协议(protocol)中,TPDU 对应于 APDU卡知道收到的 APDU 属于哪种情况。
问题是在 T=1 协议(protocol)的情况下,Java Card API 是否提供任何方法来:
最佳答案
1. know if the received APDU is data APDU and hence setIncomingAndReceive() can be called safely
这很有趣; getIncomingLength
似乎可以用于此目的:
the incoming byte length indicated by the Lc field in the APDU header. Return 0 if no incoming data (Case 1)
但它在异常描述中说:
APDUException.ILLEGAL_USE
ifsetIncomingAndReceive()
not called or ifsetOutgoing()
orsetOutgoingNoChaining()
previously invoked.
对于 setIncomingAndReceive()
你可以读到:
This method should only be called on a case 3 or case 4 command, otherwise erroneous behavior may result.
这里似乎有一个陷阱 22;我会询问我的资源之一,了解如何处理这个问题。同时,setIncomingAndReceive
或 getIncomingLength
不太可能(但并非不可能)针对情况 1 或 2 APDU 抛出异常。
2. read the Le byte from case 4 APDU
嗯,是的,通过读取 Nc 值,然后通过接收到的字节前进到 Le 字节或跟在命令后面的字节。但通常通过调用返回的 setOutgoing
更容易使用 Ne(实际长度而不是长度的编码):
Ne, the expected length of response
3. know if Le byte was actually received from the terminal (in the ambiguous case where P3 in APDU buffer is 0x00)
如果 P3 = 0x00,那么据我所知,P3 是 Le 字节。我不明白这是多么模棱两可。禁止lc有这个值。
注意事项:
process
方法处理 APDU 期间)您是否应该得到一个特定的案例 - 您可以抛出一个异常不要;关于JavaCard 和 T=1 协议(protocol) : distinguish between APDU cases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823009/
如何通过 typedef 区分模板参数? 情况:我有几种类型的列表(作为 vector 实现)。我有一个特殊的 StringList,我想以不同的方式处理它。 typedef std::vector
我有兴趣编写一个可以识别多个说话者的语音识别应用程序。例如,如果 Bill、Joe 和 Jane 正在说话,那么该应用程序不仅可以将声音识别为文本,还可以按说话者对结果进行分类(比如 0、1 和 2…
我有一个自定义 FormView 类的 mixin,如果保存成功,它只会添加一条成功消息,所以: class MessagesMixin(object): def form_valid(sel
我使用 Azure AD Graph API 差异查询来检测 Azure AD 中的更改。 对于 User 或 Group 类型的每个结果节点,如何区分该对象是新的还是仅更新的? 我使用ocp-aad
我使用 Azure AD Graph API 差异查询来检测 Azure AD 中的更改。 对于 User 或 Group 类型的每个结果节点,如何区分该对象是新的还是仅更新的? 我使用ocp-aad
使用 JavaMail,我可以从服务器读取未读的电子邮件。如果邮件包含以前回复的线索,是否可以以某种方式区分线索中的每条消息? (电子邮件采用 HTML 编码) 最佳答案 您指的是某人回复消息并且回复
我目前正在制作一款战斗游戏的领域模型,我很难确定某些元素应该是它们自己的一个类还是某个类的属性。例如,我使用类别列表来确定以下想法/对象:Fighter、Level、Weapon、Armor、Attr
我有一个名为 A 的抽象类,以及两个继承类:B 和 C。我有一个带有参数的方法: myMethod (final A a) 我想针对实例化对象的类型做出不同的事情。我该怎么做? 一个不错的选择是遵循另
我正在使用 2 个 pod。 MMDrawerController 0.5.1& WYPopoverController 0.1.7 现在我想在我的 MMView 上制作一个 WYPopover 一些
我该如何解决: /O=CHEESE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=LHALA1 电子邮件地址?我必须使用 Exchange Web 服务
我正在解析 iTunes xml 库。由于 iTunes 12 新播放列表可用(电视节目、PDF、...) 由于“Distinguished Kind”键值,我想过滤其中的一些播放列表。 不幸的是,这
我使用 BouncycaSTLe 库通过 X509v3CertificateBuilder 类从 PKCS10 请求生成证书。 它返回构建一个 X509CertificateHolder 对象,其中包
我需要为最近的项目使用多个工作区。每个工作区可能包含 10 个或更多项目。 当我在各种应用程序和不同的 Eclipse 实例(对于多个工作区)之间切换时,我希望能够轻松区分给定的工作区,而不必花 5
我正在我的 OS X 应用程序中实现对 Lion 的“恢复”功能的支持。 我有一个 NSViewController 的自定义子类,我在其中实现了该方法编码RestorableStateWithCod
我试图区分使用搜索框的人何时得到谷歌地图地点自动完成的帮助,以及何时他们只是输入文本。 我能够检测到输入按钮的按下,但我无法区分它们自己输入数据或从自动完成列表中选择一个项目之间的区别。 我注意到,当
我们商店中有几款应用使用 ARFaceTrackingConfiguration 在配备 FaceID 摄像头的 iOS 设备中检测用户的脸部。 正如您可能已经看到的,ARKit 还会跟踪您放在 iP
我正在尝试更深入地理解动态/静态绑定(bind),我可以说,经过大量阅读和搜索后,我对某些事情感到非常困惑。 嗯,java对重写方法使用动态绑定(bind),其原因是编译器不知道该方法属于哪个类,对吗
对于大学的一个项目,我试图在 WSO2 应用程序服务器 v5.01 上设置一个非常简单的 HelloWorld 服务。它包含一个接口(interface)和一个具有三个方法的类。 界面: public
我有包含“词典单词”和名称的英语和德语文本。 e.g. "... In Florence the painter Leonardo built ..." 我有一个 Java 程序,需要确定每个单词是否
我是 Libpcap 和 Wireshark 新手:对于我的学校项目,我必须区分不同类型的流量(SMTP、网络流量、VoIP、在线游戏、下载、流媒体……)。虽然一开始我依赖端口号(SMTP 为 25,
我是一名优秀的程序员,十分优秀!