3.PSAM卡操作
0082
0084
00C0
0088
00B0
00B2
00A4
00/04D6
00/04DC
0020
00B0 读二进制文件 00B0960006 00B0 标识 96文件标识 00 起始位置 06 读取长度
00A4 选择文件目录 00A4000002DF01 选DF01目录 00A4 标识 00 固定 00 固定 02 固定 DF01 目录名称
801A 秘钥分散 801A 59 03 10 FFFFFFFFFFFFFFFFC2B7CDF8C2B7CDF8 801A 标识 59 秘钥用途 03 秘钥标识 SM4算法为43 10 2级分散 //说明00:0级分散; 08:1级分散; 10:2级分散; 18:3级分散
80FA 安全计算 80FA 80 00 607E94D0B5382432FC777FD4005DF295BB059A4040363169850EA4A6A4ECFAF31115CFA12AE681422150E87680CD822CEB7AE09B31366E08F747F86F3F91CB0C54888E71747CEEB0BD7C271F732490A9AF7C271F732490A9AF0000000000000000 80FA 标识 80 无后续块解密 //说明08:MAC计算; 00:加密; 80:无后续加密 00 P2
0084 取随机数
8072 校验MAC2
8070 计算MAC1
8070 00 00 24 AC2EC4 9F00 2200000000 09 20140909 1201010100FFFFFFFFFFFFFFFFC2B7CDF8C2B7CDF8 8070 标识 00 P1 00 P2
交通部PSAM卡参考手册
密钥种类:
卡片控制密钥(CCK):卡片控制密钥首先由卡片商写入,然后由发卡方替换为发卡方的卡片主控密钥。
卡片维护密钥(CMK):卡片维护密钥用于卡片MF区域的应用维护,在卡片主控密钥的控制下装载和更新。
应用主控密钥(ACK):应用主控密钥(ACK)在ADF(应用数据文件)区域,是应用的控制密钥在卡片主控密钥(CCK)控制下写入。
命令功能:
扩展命令: 扩展命令将根据它的用途,可在细分:装载新的密钥和更新现存密钥、密钥计算、用于消费交易。 Write Key 0xD4 写入密钥命令 Init For Descrypt 0x1A 通用DES计算初始化命令 Descrypt 0xFA 通用DES计算命令 Init SAM For Purchase 0x70 MAC1计算初始化命令 Credit SAM For Purchase 0xFC 校验MAC2命令 管理命令: 命令Application Unblock将一个已锁应用解锁,而且这类管理命令都使用安全报文(SM)。 Application Block 0x1E 应用锁定命令 Application Unblock 0x18 应用解锁命令 Card Block 0x16 卡锁定命令 Delete DDF 0xE8 删除文件命令 认证命令: 鉴别命令与交易以及管理命令联合执行,用于保证传输途径的安全和检验权限。认证的复杂程度根据所要求的安全等级而定,同时也根据人或设备是否需要认证而定 External Authentication 0x82 外部认证命令 Get Challenge 0x84 取随机数命令 数据传输命令: 对于T=0的协议,Get Response命令用于上述情况2和情况4下的数据传输。 Get Response 0xC0 去响应数据命令 文件管理命令: 文件管理命令用于读取和更新数据,例如确定用户的身份、检查交易记录。 Read Binary 0xB0 读二进制文件命令 Read Record 0xB2 度记录文件命令 Selection 0xA4 选择文件命令 Update Binary 0xD6 写二进制文件命令 Update record 0xDC 写记录文件命令
响应:
正常操作: 0x90 0x00 正常处理 0x61 xx 正常处理 “xx”表示可以通过后续Get Response命令得到额外的数据长度。 警告: 0x63 0xCx “x”为计数器值,准确意义根据命令而定。 执行错误: 0x64 0x00 标志状态位未变。 0x65 0x81 内存失败 校验错误: 0x67 0x00 长度错误 0x68 0x82 不支持安全报文 0x69 0x00 无法处理 0x69 0x01 无效状态 0x69 0x81 命令与文件结构不兼容 0x69 0x82 不满足安全状态 0x69 0x83 认证方法锁定或个人密码锁定 0x69 0x84 引用数据无效 0x69 0x85 不满足使用条件 0x69 0x86 不满足命令执行的条件(不是当前EF) 0x69 0x87 安全报文数据项丢失 0x69 0x88 安全报文数据项不正确 0x6A 0x80 数据域参数不正确 0x6A 0x81 功能不支持:应用被锁定 0x6A 0x82 未找到文件 0x6A 0x83 未找到记录 0x6A 0x84 文件内存空间不足 0x6A 0x86 参数P1/P2不正确 0x6A 0x88 未找到引用数据 0x6B 0x00 参数不正确:偏移地址超出EF 0x6C xx Le长度错误:SW2标明准确长度 0x6F 0x00 判断不准确:数据无效 0x93 0x02 MAC不正确 0x93 0x03 应用永久锁定 0x94 0x01 金额不足 0x94 0x03 密钥索引不支持 0x94 0x06 MAC和/或TAC无效
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2022-09-25 BCB中开发动态链接库的方法