首页 > 解决方案 > 如何编写 TLV[TAG_MAX_ATTEMPTS]?

问题描述

我正在使用带有 JCOP 4.7 Java 小程序的智能卡。我想创建一个身份验证对象,例如 UserID。writeUserID 命令具有以下参数:CLA、INS、P1、P2、Lc、TLV[TAG_POLICY]、TLV[TAG_MAX_ATTEMPTS]、TLV[TAG_1]、TLV[TAG_2]。

我知道 TLV 接受 TAG、LENGTH 和 VALUE 参数。我的问题是,如果我想将我正在创建的 USERID 的最大尝试次数设置为 3,如何获取 TLV[TAG_MAX_ATTEMPTS] 的字节?

[TAG_MAX_ATTEMPTS] 的值为 0x12,applet 描述文档说它需要 2 字节的最大尝试次数。在这种情况下,TLV[TAG_MAX_ATTEMPTS] 的 APDU 字节是多少?

例如:我知道 TLV[TAG_1] 是一个 4 字节的对象标识符,那么它对应的字节将是“41047FFF0001”,其中“41”是 [TAG_1] 的值,“04”是长度,“7FFF0001”是 4-字节对象标识符。

根据我的理解,我给出“12020003”,其中“12”是 [TAG_MAX_ATTEMPTS] 的值,“02”长度和“0003”2 字节值。

当我在我的 APDU 中传递这个值时,我收到一个错误“6985”,这意味着条件不满足。

有人可以告诉我我哪里出错了吗?

标签: apdutlv

解决方案


推荐阅读