这几条为设备开发做了一个CPU卡发卡工具,发卡步骤挺繁琐的,记录一下。。。
发卡之前最好先让卡片重新上电复位一下,以防出现一些奇怪问题,比如16K的卡我建立8K的目录会提示空间不足或创建目录后进入提示权限不足。。。
结果浪费了不少时间,还去查如何查询CPU卡存储量的命令。。。
步入正题:
1、复位后默认会进入标识为3F00的MF目录,先进行外部认证,
这块看http://blog.csdn.net/xinxinsky/article/details/52288859。
2、删除MF目录下所有文件,MF目录本身没找到删除命令,所以MF的目录名不知如何更改。。。
命令:800E000000
3、创建密钥文件,我设置文件大小为128个字节,短文件标识01,增加密钥权限为0x0E,
命令:80E00000073F0080010EFFFF
4、写入外部认证密钥记录, 使用权:F0, 密钥:494E53542D57676A, 更改权:FE, 后续状态:FF, 错误计数器:77
命令:80D401000D39F0FEFF77494E53542D57676A
5、建立基本信息文件,文件标识符 0xEF01, 二进制文件: 大小:42, 读权限:F0, 写权限:0E, 文件密钥标识:[0x80]文件不支持带线路保护读
命令:80E0EF010728002AF00EFF80
6、选择刚才创建的文件0xEF01,数据手册中说创建目录与文件后是不会自动选择的,但是实际测试时貌似可以,但数据手册说不可以,
那么就根据手册来。
命令:00A4000002EF0100
7、写二进制文件,具体数据过敏,不列出,直接写即可,没难点
8、建立基本目录文件,这个不是目录,不是目录,不是目录,是一个变长记录文件,
变长记录文件: 大小:36, 读权限:F0, 写权限:0E, 文件密钥标识:[0x80]文件不支持带线路保护读
变长记录文件是TLV格式存入的,要注意,否则会提示格式错误
命令:80E0EF02072C0024F00EFF80
9、选择该目录文件,并写入TLV记录数据,不赘述了。
10、创建应用目录,这个是目录了,文件标识:ADF1,名DDF01,大小9000,创建删除权限为0x0E
命令:80E0ADF10D3823280E0E95FFFF4444463031
11、进入该目录 00A4000002ADF100
12、创建该目录下的密钥 大小:128, 文件短标识:01, 增加权限:0E
命令:80E00000073F0080010EFFFF
13、写入外部认证密钥记录: 使用权:F0, 密钥:12345678FFFFFFFF, 更改权:FE, 后续状态:FF, 错误计数器:77
命令:80D401010D39F0FEFF7712345678FFFFFFFF
14、写入PIN密钥记录 口令密钥: 使用权:F0, 密钥:123456, 后续状态:11, 错误计数器: 55
命令:80D40102083AF0EF1155123456
剩下就是创建文件及写入文件了,没啥好说的,注意设设置好权限即可。
在读的时候注意选择密钥标识,本记录中ADF1目录下外部认证密钥标识为0x01,PIN密钥标识为0x02.