我已经开始使用JavaCards并尝试掌握CLA字节的感觉。
5.4.1类字节
根据与表9一起使用的表8,类字节 命令的CLA用于指示命令和响应在多大程度上符合ISO / IEC 7816的这一部分,并在适用时(见表9),安全消息的格式和逻辑信道号。
所以... CLA标志用于指示,但究竟是什么?因为,初学者的表和描述相当困难,我理解通常使用下一个CLA字节:0x00, 0x80, 0x84.
例如如果要从表中读取内容:
0X'根据ISO / IEC 7816的这一部分进行命令和响应的结构和编码(用于编码' X'见表9)
10至7F RFU
我理解,对于精细开发 - 我应该阅读GlobalPlatform
规范,关于确切卡的规范(我的是NXP one)和其他相关材料,但我想承认,它&# 39;难以理解的内容。
我预计会有以下(伪表):
答案 0 :(得分:3)
CLASS字节在ISO 7816-4中定义。第一位表示行业间类别。 Java Card小程序应在此行业间标准中运行。 Global Platform是管理和维护卡的另一个规范,所有命令都有类字节0x80 - 0x8F。在某些情况下,类字节0xFF用于与读卡器通信,否则对卡无效。
CLA的行业间意义有三个主要功能:
功能1:链接
bit5 = 1表示当前命令不是链的最后一个命令,这意味着多个APDU都属于一起,因此卡可能会执行其他操作
功能2:安全信息
bit4 + 3用于表示当前命令的安全消息传递状态。这意味着APDU被认证(例如,MACed)并且数据被加密(例如,块密码)。命令头从不加密。
功能3:逻辑频道
bit2 + 1用于标识逻辑信道号。逻辑信道是通过卡的并行通信接口,因此可以在通道0上选择小应用程序A,并且可以在通道1上选择小应用程序B,同时两个小应用程序保持其内部状态(没有RAM被重置)。大多数卡不支持逻辑通道,或者您必须明确启用它们。
CLA字节是Java Card初学者的典型陷阱,通常最好从0x00开始。