首页 文章

无法构造VERIFY_PIN_DIRECT控制命令

提问于
浏览
1

我正在编写一个JAVA-app来访问我的OpenPGP-Card V2.0 . 我使用的卡终端是“REINER SCT cyberJack RFID标准”,它只支持OSX下的PC / SC,现在我想实现PC / SC 2.0命令“VERIFY_PIN_DIRECT” .

我尝试了以下控制序列,|之后的字节是APDU字节(我的测试引脚是“140396”):

Index: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | 19 20 21 22 23 24 25 26 27 28 29
Seq 0: 0F 0F 88 86 14 08 04 02 01 09 04 00 00 00 00 0B 00 00 00 | 00 20 00 81 06 FF FF FF FF FF FF

一些重要的字节含义(有用的文档:http://www.acs.com.hk/download-manual/1207/API-ACR83-1.06.pdf):

Index 02: PIN format options
Index 03: PIN-block format
Index 04: Position of PIN-length information in the APDU-command
Index 15 - 18: APDU-length
Index 19 - end: APDU-command

但是,如果我发送此命令,我总是得到 69 82 ,这意味着OpenPGP-Card datasheet (PDF)

安全状态不满足:未检查PW错误的PW(不允许命令)安全消息不正确(校验和和/或密码)

APDU命令似乎是正确的,因为如果我将以下命令 00 20 00 81 06 31 34 30 33 39 36 发送到卡,则接受PIN . 所以看来我的控制命令是错误的 . 我的错误在哪里?

Update:

一个工作命令是:

Index: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | 19 20 21 22
Seq 0: 0F_0F 02_0F_00 0F_06 02 01 09_04 00 00_00_00 04_00_00_00 | 00 20 00 81

一个更好的值然后 0F_06 (在索引 05 )将是 20_06 因为OpenPGP卡支持最多32个字符的PIN,但我的卡终端抱怨 Invalid Value ...

P.S.: 下划线表示相关字节,当然在解析过程中被删除 .

1 回答

相关问题