1. 程式人生 > >APDU命令與響應格式【轉】

APDU命令與響應格式【轉】

ref index bsp 數據 du命令 dex menu 轉載 也有

本文轉載自:http://map.im/apduintroduce

APDU命令由命令頭和命令體組成: CLA | INS | P1 | P2 | Lc | DATA | Le
命令頭: CLA | INS | P1 | P2
命令體: Lc | DATA | Le

命令各字段含義

CLA:命令報文的類別字節
P1: 參數 1
P2:參數 2
Lc:Data的長度(含4字節mac)
Data:在命令的數據字段中發送的字節串
Le:在向命令響應的數據字段中期望的字節最大數

Case1 | CLA INS P1 P2
Case2 | CLA INS P1 P2 Le
Case3 | CLA INS P1 P2 Lc Data

Case4 | CLA INS P1 P2 Lc Data Le

Case1

這種情況時,命令中沒有數據送到卡( Lc)中,也沒有數據從卡中返回( Le)。
不含安全報文的命令: CLA | INS | P1 | P2
含安全報文的命令: CLA | INS | P1 | P2 | Lc | MAC
註: Lc = MAC 的長度, 4 字節。

Case2

這種情況時,命令中沒有數據送到卡( Lc)中,有數據從卡中返回( Le)。
不含安全報文的命令: CLA | INS | P1 | P2 | Le
含安全報文的命令: CLA | INS | P1 | P2 | Lc | MAC | Le
註: Lc = MAC 的長度, 4 字節。

Case3

這種情況時,命令中有數據送到卡( Lc)中,沒有數據從卡中返回( Le)。
不含安全報文的命令: CLA | INS | P1 | P2 | Lc | Data
含安全報文的命令: CLA | INS | P1 | P2 | Lc | Data+MAC
註: Lc = 數據的長度 + MAC 的長度( 4 字節)。

Case4

這種情況時,命令中既有數據送到卡( Lc)中,也有數據從卡中返回( Le)。
不含安全報文的命令: CLA | INS | P1 | P2 | Lc | Data | Le
含安全報文的命令: CLA | INS | P1 | P2 | Lc | Data+MAC | Le

註: Lc = 數據的長度 + MAC 的長度( 4 字節)。

格式1

| Data | SW1 SW2 |

格式2

| SW1 SW2 |

響應各字段含義

Data:在響應的數據字段中收到的字節串
SW1:狀態字 1
SW2:狀態字 2

APDU命令與響應格式【轉】