智能卡COS指令是什么3
发布网友
发布时间:2023-10-02 00:34
我来回答
共2个回答
热心网友
时间:2024-11-30 13:14
APDU指令。。。 //取随机数 EXTERNAL AUTHENTICATE,参考FMCOS2.0
//命令报文规范
//CLA: 00, INS: 84, P1: 00, P2: 00, Le: 04/08
//注意国民技术读卡器只能取4字节
ap.GET_CHALLENGE = "00840000%02X";
//外部认证 EXTERNAL AUTHENTICATE,参考FMCOS2.0
//命令报文规范
//CLA: 00, INS: 82, P1: 00, P2: 外部认证密钥标识号, Lc: 08, Data: 8字节加密后的随机数
//P2=00 表示没有信息被给出在发出命令之前引用的密钥为已知或在数据字段中提供
ap.EXTERNAL_AUTHENTICATE = "008200%02X08%.16s";
//擦除目录文件 ERASE DF,参考FMCOS2.0
//命令报文规范
//CLA: 80, INS: 0E, P1: 00, P2: 00, Lc: 00
ap.ERASE_DF = "800E000000";
//选择文件 SELECT,参考FMCOS2.0
//命令报文规范
//CLA: 00, INS: A4, P1: 00/04, P2: 00, Lc: XX, Data: 空或文件标识符或DF名称, Le:00
//P1=00:用文件标识符选择,选择当前目录下基本文件或子目录文件
//P1=04:用目录名选择,选择MF或当前目录本身,或与当前目录平级的目录,或当前目录的下级子目录
ap.SELECT_MF = "00A4000000";
///选择文件 SELECT,参考FMCOS2.0
///按目录名选择
ap.SELECT = "00A4%s00%02X%s";
//建立文件 CREATE FILE,参考FMCOS2.0
//命令报文规范
//CLA: 80, INS: E0, P1P2: 文件标识 File ID, Lc: XX, Data: 文件控制信息和DF名称
ap.CREATE_FILE = "80E0%s%02X%s";
//增加或修改密钥 WRITE KEY,参考FMCOS2.0
//命令报文规范
//CLA: 80/84, INS: D4, P1: 01/XX, P2: 密钥标识, Lc: XX, Data: 不同类型密钥该字段格式不一样
//P1=00:表示此条WRITE KEY命令用来增加密钥
//P1=XX:表示此条WRITE KEY命令用来更新P1指定类型的密钥
ap.WRITE_KEY = "80D4%s%s%s%s";
//写二进制文件 UPDATE BINARY,参考FMCOS2.0
//命令报文规范
//CLA: 00/04, INS: D6/D0, P1: XX, P2: XX, Lc: XX, Data: 写入的数据
ap.UPDATE_BINARY_MAC = "04D6%02X%02X%02X%s";
//验证口令 VERIFY PIN,参考FMCOS2.0
//命令报文规范
//CLA: 00, INS: 20, P1: 00, P2: 口令密钥标识符, Lc: 02-06, Data: 外部输入的口令密钥
ap.VERIFY_PIN = "002000%s%02X%s";
//圈存初始化 INITIALIZE FOR LOAD,参考FMCOS2.0
//命令报文规范
//CLA: 80, INS: 50, P1: 00, P2: 01/02, Lc: 0B, Data: 密钥标识符(1字节)+交易金额(4字节)+终端机编号(6字节), Le:10
//P1=01:表示此条命令用于电子存折
//P1=02:表示此条命令用于电子钱包
//报文执行成功之后的响应数据格式
//电子存折或电子钱包旧余额(4字节)+电子存折或电子钱包联机交易序号(2字节)
//+密钥版本号(1字节)+算法标识(1字节)+伪随机数(4字节)+MAC1(4字节)
ap.INITIALIZE_FOR_LOAD = "805000%s0B%s10";
//圈存命令 DEBIT FOR CAPP PURCHASE,参考FMCOS2.0
//命令报文规范
//CLA: 80, INS: 52, P1: 00, P2: 00, Lc: 0B, Data: 交易日期(4字节)+交易时间(3字节)+MAC2(4字节), Le: 04
ap.CREDIT_FOR_LOAD = "805200000B%s04";
//消费初始化 INITIALIZE FOR PURCHASE,参考FMCOS2.0
//命令报文规范
//CLA: 80, INS: 50, P1: 01, P2: 01/02, Lc: 0B, Data: 密钥标识符(1字节)+交易金额(4字节)+终端机编号(6字节), Le:0F
//P1=01:表示此条命令用于电子存折
//P1=02:表示此条命令用于电子钱包
//报文执行成功之后的响应数据格式
//电子存折或电子钱包旧余额(4字节)+电子存折或电子钱包联机交易序号(2字节)
//+透支限额(3字节)+密钥版本号(1字节)+算法标识(1字节)+伪随机数(4字节)
ap.INITIALIZE_FOR_PURCHASE = "805001%s0B%s0F";
//消费命令 DEBIT FOR CAPP PURCHASE,参考FMCOS2.0
//命令报文规范
//CLA: 80, INS: 54, P1: 01, P2: 00, Lc: 0F, Data: 终端交易序号(4字节)+交易日期(4字节)+交易时间(3字节)+MAC1(4字节), Le: 08
ap.DEBIT_FOR_CAPP_PURCHASE = "805401000F%s08";
//读余额 GET BALANCE,参考FMCOS2.0
//命令报文规范
//CLA: 80, INS: 5C, P1: 00, P2: 01/02, Le: 04
ap.GET_BALANCE = "805C00%s04";
//读记录文件 READ RECORD,参考FMCOS2.0
//命令报文规范
//CLA: 00/04, INS: B2, P1: 记录号, P2:记录标识 , Le: 00/XX
//Le=00表示读取整条记录
//Le=XX表示读取XX字节长度的记录
//P2的4-8位为短文件标识符
ap.READ_RECORD = "00B2%02X%02X%02X";
//读二进制文件 READ BINARY,参考FMCOS2.0
//命令报文规范
//CLA: 00, INS: B0, P1: XX, P2:XX, Le: XX
//若P1的高三位为100,则低五位为短文件标识,P2为读的偏移量
//若P1的最高位不为1,则P1P2为欲读文件的偏移量,P1为偏移量的高字节,P2为偏移量的低字节,所读文件为当前文件
ap.READ_BINARY = "00B0%02X%02X%02X";
//带MAC读取二进制文件 READ BINARY,参考FMCOS2.0
//命令报文规范
//CLA: 04, INS: B0, P1: XX, P2:XX, Lc XX, Data mac校验码,Le: XX
//若P1的高三位为100,则低五位为短文件标识,P2为读的偏移量
//若P1的最高位不为1,则P1P2为欲读文件的偏移量,P1为偏移量的高字节,P2为偏移量的低字节,所读文件为当前文件
ap.READ_BINARY_MAC = "04B0%02X%02X04";
热心网友
时间:2024-11-30 13:15
COS的全称是Chip Operating System(片内操作系统)