IC卡APDU命令介绍
APDU(Application Protocol Data Unit,应用协议数据单元)是智能卡和读卡器之间通信的协议单元。在IC卡应用中,APDU命令是必不可少的,开发IC卡应用时都需要了解APDU命令的使用。
APDU命令集可以分为两类:ISO智能卡通用APDU命令集和厂商自定义APDU命令集。ISO智能卡通用APDU命令集是根据ISO7816标准定义的,涵盖了大多数IC卡应用场景。
下面是ISO智能卡通用APDU命令集的一些常用命令:
1. READBINARY命令:读出带有透明结构的EF内容的一部分。CLA为00或04,INS为B0。
2. WRITEBINARY命令:将二进制值写入EF。CLA为空,INS为D0。
3. UPDATEBINARY命令:启动使用在命令APDU中给出的位来更新早已呈现在EF中的位。CLA为00或04,INS为D6。
4. ERASEBINARY命令:顺序地从给出的偏移开始将EF的内容的一部分置为其逻辑擦除的状态。CLA为空,INS为0E。
5. READRECORD命令:给出了EF的规定记录的内容或EF的一个记录开始部分的内容。CLA为00或04,INS为B2。
6. WRITERECORD命令:写一次记录;对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“或”运算;对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“和”运算。CLA为空,INS为D2。
7. APPENDRECORD命令:启动在线性结构EF的结束端添加记录或者在循环结构的EF内写记录号1。CLA为00或04,INS为E2。
8. UPDATERECORD命令:启动使用命令APDU给出的位来更新特定记录。CLA为00或04,INS为DC。
9. GETDATA命令:可在当前上下文(例如应用特定环境或当前DF)范围内用于检索一个原始数据对象或者包含在结构化数据对象中的一个或多个数据对象。CLA为空,INS为CA。
10. PUTDATA命令:可在当前上下文(例如应用特定环境或当前DF)范围内用于存储一个原始数据对象或者包含在结构化数据对象中的一个或多个数据对象。CLA为空,INS为DA。
在IC卡应用中,APDU命令的使用非常重要,正确地使用APDU命令可以确保IC卡应用的正确性和安全性。开发IC卡应用时,需要详细了解APDU命令的使用和实现。