首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"acr38卡工具“和"opensc”有什么区别?

"acr38卡工具“和"opensc”有什么区别?
EN

Stack Overflow用户
提问于 2014-05-26 10:37:46
回答 2查看 486关注 0票数 3

我在Javacard中上传了一个HelloWorld.cap文件,并通过"acr38卡工具“软件向卡发送了一些APDU命令,并收到了Helloworld!的ASCII代码作为输出。但是当我用opensc工具发送相同的APDU命令时,我收到了输出中的无效参数,而不是HelloWorld!,有什么问题吗?

ACR38卡工具输出:

代码语言:javascript
复制
< 00 A4 04 00 0B 00
< 01 02 03 04 05 06 07 08 09 00 66
> 610B

< 00 C0 00 00 00 0B
> 62 79 62 79 65 20 57 6F 72 6C 64
> 9000

Opensc-工具输出:

代码语言:javascript
复制
C:\Program Files\OpenSC Project\OpenSC\tools>opensc-tool.exe -s 00:a4:04:00:0b:0
1:02:03:04:05:06:07:08:09:00:66
Using reader with a card: ACS CCID USB Reader 0
Sending: 00 A4 04 00 0B 01 02 03 04 05 06 07 08 09 00 66
Received (SW1=0x90, SW2=0x00)

C:\Program Files\OpenSC Project\OpenSC\tools>opensc-tool.exe -s 00:c0:00:00:00:0
b
Using reader with a card: ACS CCID USB Reader 0
Sending: 00 C0 00 00 00 0B
APDU transmit failed: Invalid arguments
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-27 08:06:54

我想,开放工具会在一开始就隐式地重置卡片。因此,当发送第二个命令时,第一个命令(即应用程序的选择)的效果就失去了。接下来,我将尝试在同一个opensc工具调用中指定这两个命令。

票数 2
EN

Stack Overflow用户

发布于 2014-05-26 21:14:12

代码语言:javascript
复制
00 C0 00 00 00 0B

不是有效的APDU。ISO 7816-4 APDU (有1字节长字段)如下所示:

代码语言:javascript
复制
+----------+----------+----------+----------+----------+------------+----------+
| CLA      | INS      | P1       | P2       | Lc       | DATA       | Le       |
| (1 byte) | (1 byte) | (1 byte) | (1 byte) | (1 byte) | (Nc bytes) | (1 byte) |
+----------+----------+----------+----------+----------+------------+----------+

只有当Lc ( Nc字段的长度)大于0字节时,才会出现DATA。只有在响应APDU中预期有数据时,Le才会出现。

由于APDU不包含DATA字段,所以它必须没有Lc字段。因此,无论是

代码语言:javascript
复制
00 C0 00 00 0B

(INS = 0xC0和预期响应长度为11字节)或

代码语言:javascript
复制
00 C0 00 00 00

(INS = 0xC0和预期响应长度为256个字节)将是接近" APDU“的有效APDU命令。

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

https://stackoverflow.com/questions/23868233

复制
相关文章

相似问题

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