文档1

电子钱包文件结构

根据PBOC中的电子钱包应用规范,设计了如下的文件结构

密钥文件

密钥文件为变长记录文件,其文件结构如下所示:

文件体(密钥)

标识

长度

密钥类型

使用权

更改权

密钥版本

算法

标识

密钥值

06

0x15

34TAC密钥)

F0

F0

90

00

CEB726EDC01B793BC37DC09E2F768534

标识

长度

密钥类型

使用权

更改权

密钥版本

算法

标识

密钥值

07

0x15

3e(消费密钥)

F0

F0

01

00

09F4ACB09131420B8FE1B4CC007AC52B

标识

长度

密钥类型

使用权

更改权

密钥版本

算法

标识

密钥值

08

0x15

3f(圈存密钥)

F0

F0

01

00

EB9BC6DCDF74FF4E4B43F2E34A6727B6

公共应用基本文件

公共应用基本文件为二进制文件,其文件结构如下所示:

文件体

字节

数据元

长度

1-8

发卡方标识

8

6264002233330001

9

应用类型标识

1

03

10

发卡方应用版本

1

01

11-20

应用序列号

10

00012001081700000001

21-24

应用启用日期

4

20010101

25-28

应用有效日期

4

20011231

29-30

发卡方自定义FCI数据

2

5566

持卡人基本文件

持卡人基本文件为二进制文件,其文件结构如下所示:

文件体

字节

数据元

长度

1

卡类型标识

1

00

2

本行职工标识

1

00

3-22

持卡人姓名

20

SAMPLE.CARD.ADF1(当数据的位数没有占满时,数据元左靠齐且右补十六进制”0”)

23-54

持卡人证件号码

32

11010298121800101101029812180010

55

持卡人证件类型

1

05

 

电子钱包初始化和个人化

在卡片投入市场使用之前,必然存在着一个初始化和个人化的过程。在该过程中,必须先激活IC卡,装入Applet,发送初始化指令。初始化过程的主要目的是建立相应的文件结构系统。在电子钱包应用中,初始化指令为create_file命令。当发送初始化指令后,电子钱包已建立起相应的电子钱包文件,并进入个人化过程。在个人化过程中,主要是向文件写入相应的数据,其中涉及到的指令有write_keywrite_bin命令。

 

电子钱包的命令解析

文件创建 create file

命令报文

表文件创建(CREATE FILE)命令报文

代码

CLA

80

INS

E0

P1

00

P2

文件标识

Lc

07

Data

文件控制信息

DATA域文件控制信息(AEF

 

命令报文数据域

文件类型

BYTE 1(文件类型)

也就是代码里面的papdu.pdata[0]

BYTE 2-3

BYTE 4

BYTE 5

BYTE 6

BYTE 7

持卡人基本文件

39

文件空间

FF

FF

FF

FF

应用基本文件

38

文件空间

FF

FF

FF

FF

电子钱包文件

2F

FF

FF

FF

FF

FF

密钥文件

3F

FF

FF

FF

FF

FF

响应报文数据域

响应报文数据域不存在

响应报文状态码

此命令执行成功的状态码是9000

IC可能回送的错误状态码如下所示:

SW1 SW2

意义

67 00

错误的长度

6E 00

CLA错误

69 85

文件已存在或未实现创建密钥文件

6A 81

文件类型错误

 

增加或修改密钥  write key

命令报文

代码

CLA

80

INS

D4

P1

00

P2

密钥标识

Lc

数据域长度

Data

数据

消费子密钥、圈存子密钥、TAC子密钥

CLA

INS

P1

P2

Lc

DATA

80

D4

01

密钥标识

15

3e/3f/34

使用权

更改权

密钥版号

算法标识

16字节密钥

响应报文数据域

响应报文数据域不存在

响应报文状态码

此命令执行成功的状态码是9000

IC卡可能回送的错误状态码如下所示:

SW1 SW2

意义

67 00

错误的长度

6E 00

CLA错误

6A 82

密钥文件未找到

6A 84

密钥文件空间已满

 

写二进制文件 write binary

命令报文

代码

CLA

00

INS

D6

P1

文件标识符(持卡人基本文件为0x17,应用基本文件为0x16

P2

欲写文件的偏移量

Lc

数据域长度

Data

数据

响应报文数据域

响应报文数据域不存在

响应报文状态码

此命令执行成功的状态码是9000

IC可能回送的错误如下所示:

SW1 SW2

意义

6A 82

未找到文件

67 00

长度错误(写超出文件的范围)

6E 00

CLA错误

读二进制文件 read binary

命令报文

代码

CLA

00

INS

B0

P1

文件标识符(持卡人基本文件为0x17,应用基本文件为0x16

P2

欲读文件的偏移量

Le

数据域长度

响应报文数据域

响应报文数据域为所读取的数据

响应报文状态码

此命令执行成功的状态码是9000

IC可能回送的错误如下所示:

SW1 SW2

意义

6A 82

未找到文件

6E 00

CLA错误

67 00

长度错误(读写超出文件的范围)

 

你可能感兴趣的:(文档1)