首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 嵌入开发 >

APDU下令MAC计算

2012-12-18 
APDU命令MAC计算用银联的手机支付SD卡,类似于CPU卡。发送APDU命令来计算MAC。CLAINSP1P2LcDATA‘80’‘FA’见下

APDU命令MAC计算
用银联的手机支付SD卡,类似于CPU卡。发送APDU命令来计算MAC。


CLAINSP1P2LcDATA
‘80’‘FA’见下表‘00’N*8数据
P1字节定义:
B8B7B6B5B4B3B2B1含义
Xxxxx---RFU
-------x计算模式
0加密/解密
1MAC计算
------x-后续块
0无后续块
1有后续块
-----x--初始值(仅对MAC计算有效)
0无初始值
1有初始值


80 FA 01 00 08 11 22 33 44 55 66 77 88
比如这条命令,计算1122334455667788的MAC,08为指定的长度。

但是现在有一个问题,我需要的计算的数据超过255了,要如何才能计算这条数据的MAC。
是需要分次发送?该怎么写?
[解决办法]
如果P1的最高位b8为1时,b6和b7位必须为0,b5-b1位表示待读取的基本文件的SFI;这时P2表示要读取数据起始位置在文件中的偏移量。
    如果P1的最高位为0时,P1的后7位和P2相连共同组成了一个超过256的整数,表示待读取数据块的起始位置在文件中的偏移量,可以用于超过256Byte文件的读取。

APDU命令

[解决办法]
这是一条写入的命令。要写入超过255的数据,然后在芯片内计算出MAC,读取到返回的MAC。其中LC标识写入的长度。如何写入超过255的数据来计算?

热点排行