当前位置: 首页 > 知识库问答 >
问题:

智能卡的响应状态字0x61xx是什么意思?

姬实
2023-03-14

我写了一个Java卡小程序,它将一些数据保存到偏移量ISO7816.OFFSET_CDATA的APDU缓冲区中,并将这些字节作为响应发送。

Util.arrayCopy(Input_Data, (short)0, buffer, (short) ISO7816.OFFSET_CDATA, (short)Datalength);
apdu.setOutgoing();
apdu.setOutgoingLength((short)(DataLength) );

apdu.sendBytesLong(buffer, ISO7816.OFFSET_CDATA, (short)(DataLength));

我在模拟器上测试了这个,没有任何问题。但当我在真正的智能卡(由Gemalto制造的Java卡v2.2.1)上测试时,我得到了状态词0x6180作为响应。

我的命令APDU是00400080data,其中数据的长度为128字节,因此缓冲区中有4128字节,(260-(4128))字节为空。

共有1个答案

闻枫
2023-03-14

你的模拟器可能使用T=1传输协议,但你的真卡没有。它使用T=0协议,这意味着它可以在单个APDU中接收数据或发送数据。

状态字0x6180表示有0x80字节要从卡中接收。通常,61XX表示XX字节要接收。

如何接收它们?有一个特殊的APDU命令叫做GET RESPONSE。你应该在每次收到61XX状态词时调用它。使用XX作为GET RESPONSEAPDU的Le字节

APDU -> 61 XX
00 C0 00 00 XX -> your data 90 00

代码上的其他一些注释:

  • DatalengthvsDatalength
 类似资料:
  • 有人能用一个真实的例子来帮助我理解React中的状态吗?

  • 问题内容: 我正在研究Java for Web,它提到http是无状态的。这是什么意思,以及它如何影响编程 我也在研究spring框架,它提到了一些Bean,因为它们的状态发生了变化,它们必须声明为内部Bean。那是什么意思 问题答案: HTTP(服务器与客户端之间的实际传输协议)是“无状态的”,因为它在调用之间不记忆任何内容。 通过HTTP访问的 每个 资源都是单个请求,它们之间没有线程连接。如

  • 问题内容: 除了“正在运行”,“已暂停”和“已停止”以外,是否还有其他状态? 问题答案: 不,还有其他可能的状态。该docker窗远程API定义以下状态: 已创建(例如,使用)但尚未启动的容器 正在重新启动的容器 当前正在运行的容器 进程已暂停的容器 运行并完成的容器(在其他情况下为“停止”,尽管从技术上讲,容器也是“停止”的) 守护程序尝试且无法停止的容器(通常是由于容器使用了繁忙的设备或资源)

  • 智能状态机是一个前端复杂对象优雅编程模型。 npm包中包含库和浏览器扩展 目的:更加自动和简洁的实现状态的迁移。 原理:通过装饰器,对异步函数进行包装,使得调用异步函数可以自动修改状态,并且自动实现异步调用过程中的中间状态 功能: 自动生成状态机 自动实现状态迁移 自动派发事件 可视化状态变化历史 可视化状态机图 使用例子: import { FSM, ChangeState } from 'af

  • 我刚刚完成了对log4j2.xml配置文件的调整,发现了一些我不太理解的东西。那么是什么? 几乎在以下所有示例中:http://logging.Apache.org/log4j/2.x/manual/configuration.html中,来自Apache的人员将状态添加到配置中。

  • 问题内容: 该文档提到 您可以使用过滤器来找到状态为137的退出容器,这意味着SIGKILL(9)杀死了它们 我想知道退出状态255意味着有什么特别的吗? 问题答案: 如果您在docker ps上看到此状态,显示状态为“ ” 的容器,则表示其主要入口点/命令进程已停止并显示该状态。 255只是意味着“有一个错误”,但除此之外并没有告诉您太多信息。