JIT应用ToolkitsAPI(Java版)程序员手册_第1页
JIT应用ToolkitsAPI(Java版)程序员手册_第2页
JIT应用ToolkitsAPI(Java版)程序员手册_第3页
JIT应用ToolkitsAPI(Java版)程序员手册_第4页
JIT应用ToolkitsAPI(Java版)程序员手册_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JIT应用ToolkitsAPI(Java版)程序员手册

JIT版权所有(2001)

吉大正元信息技术股份有限公司

JilinUniversityInformationTechnologiesCo.,Ltd.

84

目录

1引言..........................................................................4

1.1概述.....................................................................4

1.2开发平台及编程语言.......................................................4

1.3注意事项.................................................................4

1.4名词解释.................................................................4

2系统结构......................................................................4

2.1接口说明.................................................................4

2.2配置文件说明.............................................................4

3数据结构......................................................................5

3.1基于口令产生密钥的基本信息...............................................5

3.2初始化CRL参数..........................................................5

3.3时间基本信息.............................................................6

3.4证书有效期类.............................................................7

3.5初始化证书信息...........................................................7

4全局常量定义..................................................................8

4.1标识常量.................................................................8

4.1.1所用到的配置文件..........................................................................................................8

4.1.2文件长度及密码长度......................................................................................................8

4.1.3数据类型定义;.................................................................................................................8

4.1.4信封类型定义...................................................................................................................9

4.1.5证书扩展类型定义...........................................................................................................9

4.1.6证书用户类型定义...........................................................................................................9

4.1.7证书状态定义...................................................................................................................9

4.1.8CRL验证证书方式..........................................................................................................9

4.1.9证书SN类型..................................................................................................................10

4.1.10证书存储方式.................................................................................................................10

4.1.11加密、解密、签名等算法..........................................................................................10

4.1.12标准扩展域.....................................................................................................................10

4.2错误代码................................................................11

5函数说明.....................................................................13

5.1类JIT_ENGINE.........................................................................................................................13

5.1.1构造函数.........................................................................................................................13

5.1.2获取错误信息.................................................................................................................14

5.1.3释放引擎资源.................................................................................................................14

5.2类JIT_OCSP...........................................................................................................................15

5.2.1构造方法.........................................................................................................................15

5.2.2查询证书状态.................................................................................................................15

5.2.3获取错误信息.................................................................................................................16

5.2.4释放OCSP资源.............................................................................................................17

5.3类J1T_CRL............................................................................................................................17

5.3.1构造方法........................................................................................................................17

5.3.2获取CRL验证证书的方式getMode...........................................................................18

5.3.3CRL验证证书...............................................................................................................18

5.3.4验证CRL签名................................................................................................................19

5.3.5获取错误信息.................................................................................................................79

5.3.6释放CRL资源................................................................................................................19

5.4类JIT_CERTIFICATE................................................................................................................20

5.4.1构造方法.........................................................................................................................20

5.4.2获取证书中eMail..........................................................................................................22

5.4.3获取证书颁发者............................................................................................................22

5.4.4获取证书序列号............................................................................................................22

5.4.5获取证书主题................................................................................................................23

5.4.6获取证书版本号............................................................................................................23

5.4.7获取证书有效期............................................................................................................23

5.4.8获取证书的应用类型....................................................................................................24

5.4.9获取证书编码(二进制).................................................................................................24

5.4.10获取证书的个人身份标识码........................................................................................25

5.4.11提取所需对象标识符对应的内容................................................................................25

5.4.12验证证书的有效性........................................................................................................26

5.4.13验证证书的有效性(手工输入时间)........................................................................27

5.4.14获取错误信息................................................................................................................27

5.4.15释放Certificate资源.....................................................................................................28

5.4.16扩展接口........................................................................................................................28

5.5类JIT_KEY.............................................................................................................................29

5.5.1构造方法........................................................................................................................29

5.5.2产生对称密钥................................................................................................................30

5.5.3基于口令产生对称密钥................................................................................................30

5.5.4包装密钥.........................................................................................................................31

5.5.5解包装密钥....................................................................................................................31

5.5.6获取错误信息.................................................................................................................32

5.5.7释放Key资源................................................................................................................32

5.6类J1T_BIN..............................................................................................................................32

5.6.1构造方法........................................................................................................................33

5.6.2数据数字签名................................................................................................................33

5.6.3验证数字签名................................................................................................................34

5.6.4数据非对称加密............................................................................................................35

5.6.5数据非对称解密............................................................................................................35

5.6.6产生数据的MAC...........................................................................................................36

5.6.7验证数据的MAC...........................................................................................................37

5.6.8数据文摘........................................................................................................................38

5.6.9数据对称加密................................................................................................................38

5.6.10数据对称解密................................................................................................................39

5.6.11产生PKCS7数字信封..................................................................................................40

5.6.12验证PKCS7数字信封..................................................................................................42

5.6.13二进制数据转换成PEM编码......................................................................................45

5.6.14获取错误信息................................................................................................................45

5.6.15释放bin资源.................................................................................................................45

5.7类JIT_BASE64.......................................................................................................................46

5.7.7构造方法........................................................................................................................46

5.7.2数据数字签名................................................................................................................46

5.7.3验证数字签名................................................................................................................47

5.7.4数据非对称加密............................................................................................................48

5.7.5数据非对称解密............................................................................................................48

5.7.6数据产生MAC...............................................................................................................49

5.7.7验证数据的MAC...........................................................................................................50

5.7.8数据文摘........................................................................................................................51

5.7.9数据对称加密................................................................................................................57

5.7.10数据对称解密................................................................................................................52

5.7.77产生PKCS7数字信封..................................................................................................53

5.7.12验证PKCS7数字信封..................................................................................................55

5.7.13PEM编码转换成二进制...............................................................................................58

5.7.14获取错误信息................................................................................................................58

5.7.15释放Base64资源..........................................................................................................58

5.8类JIT_ENVFlLE......................................................................................................................59

5.8.1构造方法........................................................................................................................59

5.8.2产生PKCS7数字信封文件..........................................................................................59

5.8.3验证PKCS7数字信封文件..........................................................................................62

5.8.4获取错误信息.................................................................................................................63

5.8.5释放EnvFile资源.........................................................................................................63

5.9类JIT_LDAP..........................................................................................................................63

5.9.7构造方法.........................................................................................................................63

5.9.2获取用户证书.................................................................................................................64

5.9.3释放获取的证书............................................................................................................65

5.9.4获取错误信息.................................................................................................................65

5.9.5释放Ldap资源..............................................................................................................65

5.10类JIT_RANDOM.....................................................................................................................66

5.10.1创造随机数.....................................................................................................................66

1引言

1.1概述

>JITToolkit_API(Java版)是以吉大正元电子证书认证系统为基础,方便用户进行

二次开发,整合先进的Java技术,提供的工具包。用户利用工具包中各种接口可

以作电子证书系统客户化,电子证书应用等方面的开发工作。

主要功能如下:

♦对客户和服务器证书的操作(包括验证和获取证书内容)

♦对用户数据的操作(包括签名、加密、数字信封和他们相对应的校验工作)

♦对用户文件的各种操作(包括封装数字信封和验证数字信封)

♦各种辅助操作(包括对对称密钥的操作、产生随机数、)

♦对Ldap、CRL、OCSP等各种辅助功能的操作

1.2开发平台及编程语言

■开发平台

Windows2000Server

■编程语言

Java

C++

■开发工具

Java2SDKStandardEditionvl.3.1_09(SunMicrosystems,Inc.)

BorlandJbuilder7Enteiprise

MicrosoftVisualC++6.0EnterpriseEdition

1.3注意事项

■系统中的错误码均为负数。

■本接口不支持加密机,除windwos外不支持key使用

■除windows外不支持OCSP

1.4名词解释

2系统结构

2.1接口说明

JIT应用ToolkitsAPI(Java版)对用户提供10个类共70个接口:

■jit.toolkits

Toolkits主要功能类。提供各对外接口。

■jit.parameters

结构。用于存放程序中各种用到的结构体。

2.2配置文件说明

JIT应用ToolkitsAPI(JNI版)共需要5个配置文件,说明如下:

■cryptodevice.ini

加密设备配置文件。文件证书使用时修改DeviceCount对应软加密库ID,

DeviceCount=1

Key证书使用时修改DeviceCount对应Key的ID

DeviceCount=2

两种证书同时使用时修改DeviceCount对应Key的ID

DeviceCount=2

■MultiDeviceFile.ini

管理员证书介质使用JPF文件时使用此配置文件。(无论那种情况该文件必须存在)

■MultiDeviceCard.ini

管理员证书介质使用USBKey时使用此文件。(无论那种情况该文件必须存在)

■card.ini

USBKey的配置文件,通常不需要用户改动。

■jitocsp.ini

与OCSP服务器连接时需要的一些连接参数,用户可根据实际情况进行改动

■jcaapi.ini

与Ldap服务器连接时需要的一些连接参数,用户可根据实际情况进行改动

3数据结构

3.1基于口令产生密钥的基本信息

类名称:

J1T_PBE_PARAMS

功能:

存储PKCS5基于口令产生密钥的参数。

声明:

publicclassJIT_PBE_PARAMS{

publicbyte[lsPassword;

publicbytelJbSalt;

publicintllteration;

publicJIT_PBE_PARAMS(){

I

}

数据成员:

pPassword

口令的内容。

pSalt

盐值的内容。(PKCS5基于口令产生密钥的协商好的附加信息)

niteration

PKCS5基于口令密钥产生的循环叠代次数。

3.2初始化CRL参数

类名称:

JIT_CRLPARAM

功能:

存储初始化CRL的参数。

声明:publicclassJIT_CRLPARAM{

publicbyte[]szCRLFile;

publicintnMode;

publicJIT_CRLPARAM(){

数据成员:

szCRLFile

用户指定的CRL文件路径。这个路径必须是绝对路径。这个路径不能为

NULL,

在线方式验证,这个路径是下载的CRL存储在本地的CRL文件路径。

离线方式验证,这个路径是验证证书时使用的CRL文件路径。

nMode

通过CRL验证证书的方式。包括在线方式验证和离线方式验证。

在线方式验证设置为VERIFY_MODE_ONLINE

离线方式验证设置为VERIFY_MODE_OFFLINE

3.3时间基本信息

类名称:JIT_Time

功能:

存储证书中时间的值

声明:

publicclassJIT_Time{

publiclongIType;

publiclongdiffGMT;

publiclongyear;

publiclongmonth;

publiclongday;

publiclonghour;

publiclongmin;

publiclongsecond;

publicJIT_Time(){

数据成员:

•Type

证书中时间的编码类型。

1:格林威治时间

2:本地时间

diffGMT

本地时间和格林威治时间的差值。本地时间比格林威治时间早用

负数表示。本地时间比格林威治时间晚用正数表示。0表示

格林威治时间。

year本地时间年

month本地时间月

day本地时间S

hour本地时间时

min本地时间分

second本地时间秒

3.4证书有效期类

类名称:

JIT_Valid

功能:

存储证书的有效期

声明:

publicclassJIT_Valid(

publicJIT_TimenotBefor

publicJIT_TimenotAfter

publicJIT_VaIid(){

}

)

数据成员:

notBefor

证书有效期开始的时间

notAfter

证书有效期结束的时间

3.5初始化证书信息

类名称:

JIT_CERTDEVPARAM(保留未用)

功能:

存储了从非数据流形式初始化证书时所需要的信息

声明:

publicclassJIT_CERTDEVPARAM{

publicbyte[]szDevInfo;

publicbyte[]szPWD;

publicJIT_CERTDEVPARAM(){

数据成员:

szDevInfo

描述证书存储的描述串。描述串由两部分组成。第一部分是存储介质

描述符,第二部分是证书存储路径。

存储介质描述符:

“file:〃”表示证书的存储介质是磁盘。

“usb:〃”表示证书的存储介质是USB接口设备。

“coml://”表示证书的存储介质是COM接口设备。

证书存储路径:表示证书存储的位置和名字

例如:

“file://d:\mycert.jpF'表示D盘根目录下的mycert.jpf文件

“file:〃d:\mycert.pfx”表示D盘根目录下的mycert.p仅文件

“file://d:\mycert.cer”表示D盘根目录下的mycert.cer文件

“usb://.jp『表示USB接口中的.jpf文件

“usb:〃.jpF表示USB接口中的.jpf文件

szPWD

证书密码

4全局常量定义

该类定义API中的常量。

在本文档中引用常量时直接引用常量名。

4.1标识常量

4.1.1所用到的配置文件

publicstaticStringCRYPT_INI_FILE_NAME=''cryptodevice-ini**;

publicstaticStringOCSP_INI_FILE_NAME="jitocsp.ini1,;

publicstaticStringCARD_INI_FILE_NAME=''card.ini*';

publicstaticStringMULITYCARD_FILE_NAME=HMultiDeviceCard.ini";

publicstaticStringMULITYFILE_FILE_NAME="MultiDeviceFile.ini0;

publicstaticStringJCAAPI」NI_FILE_NAME="jcaapi.ini'1;

4.1.2文件长度及密码长度

文件长度

publicstaticintFILE_NAME_LEN=256;

密码长度

publicstaticintPWD_LEN=128;

4.1.3数据类型定义;

Base64类型

publicstaticintDATA_TYPE_BASE64=0;

Bin类型

publicstaticintDATA_TYPE_BIN=1;

4.1.4信封类型定义

签名信封

publicstaticintENVELOP_SIGN=0;

加密信封

publicstaticintENVELOP_ENC=1;

既签名又加密信封

publicstaticintENVELOP_SIGN_ENC=2;

文摘信封

publicstaticintENVELOP_DIGEST=3;

MAC信封

publicstaticintENVELOP.MAC=4;

4.1.5证书扩展类型定义

jpf管理员证书文件

publicstaticintCERT_EXP_TYPE_JPF=o;

pfx包含私钥证书文件

publicstaticintCERT_EXP_TYPE_PFX=1;

cer公钥证书文件

publicstaticintCERT_EXP_TYPE_CER=2;

4.1.6证书用户类型定义

个人单证书

publicstaticintCERT_USE_TYPE_SINGLE—0;

jpf双证书

publicstaticintCERT_USE_TYPE_DOUBLE二1;

电子邮件保护证书

publicstaticintCERT_USE_TYPE_MAIL二2;

服务器证书

publicstaticintCERT_USE_TYPE_SERVER-3;

CA证书

publicstaticintCERT_USE_TYPE_CA二4;

4.1.7证书状态定义

正常状态

publicstaticintCERT_STATUS_NOMAL0;

证书已注销

publicstaticintCERT_STATUS_REVOKE=1;

未知状态

publicstaticintCERT_STATUS_UNKNOWN=2;

4.1.8CRL验证证书方式

在线验证证书

publicstaticintVERIFY_MODE_ONLINE0;

离线验证证书

publicstaticintVERIFY_MODE_OFFLINE1;

4.1.9证书SN类型

签名证书

publicstaticintCERT_SN_TYPE_SIGN1;

加密证书

publicstaticintCERT_SN_TYPE_ENC2;

签名加密证书

publicstaticintCERT_SN_TYPE_SIGNENC3;

4.1.10证书存储方式

文件方式存储

publicstaticintCERT_DEV_TYPE_FILE0;

USBKey中存储

publicstaticintCERT_DEV_TYPE_USB

COM接口设备存储

publicstaticintCERT_DEV_TYPE_COM2;

4.1.11加密、解密、签名等算法

RSA加密解密;

publicstaticintCT_ALGO_RSA_PKCS0x00000001;

MD2WithRSA签名验证

publicstaticintCT_ALGO_MD2_RSA_PKCS0x00000004;

MD5WithRSA签名验证

publicstaticintCT_ALGO_MD5_RSA_PKCS0x00000005;

SHAlWithRSA签名验证

publicstaticintCT_ALGO_SHA1_RSA_PKCS0x00000006;

MD2文摘

publicstaticintCT_ALGO_MD20x00000200;

MD5文摘

publicstaticintCT_ALGO_MD50x00000210;

SHA1文摘

publicstaticintCT_ALGO_SHA_10x00000220;

RC2ECB方式加密解密

publicstaticintCT_ALGO_RC2_ECB0x00000101;

RC4加密解密

publicstaticintCT_ALGO_RC40x00000111;

DESECB方式加密解密

publicstaticintCT_ALGO_DES_ECB0x00000121;

3DESECB方式加密解密

publicstaticintCT_ALGO_DES3_ECB0x00000132;

4.1.12标准扩展域

publicstaticintCERT_EXT_OID_IDENTIFYCARD12861171;

〃个人身份标识码:OID=1.7.1

publicstaticintCERT_EXT_OID_INSURANCENUM=12861172;

〃个人社会保险号:01D=1.7.2

publicstaticintCERT_EXT_OID_ORGANIZATIONCODE=12861173;

//企业组织机构代码:OID=1.7.3

publicstaticintCERT_EXT_OID_ICREGNUM=12861174;

//企业工商注册号:OID=1.7.4

publicstaticintCERT_EXT_OID_TAXNUM=12861175;

〃企业税号:OID=1.7.5

4.2错误代码

成功

publicstaticintCT_SUCCESS二0

参数错误

publicstaticintCT_ERR_PARAM-9000

内存错误

publicstaticintCT_ERR_MEMORY=-9001

内存分配少

publicstaticintCT_ERR_BUFFER_TOO_SMALL=-9090

加密库初始化错误

publicstaticintCT_ERR_CRYPTODEV_INIT=-9999

不能打开加密库

publicstaticintCT_ERR_CRYPTO_SESSION=-9002

不能访问加密设备

publicstaticintCT_ERR_CRYPTODEV_NO_ACCESS=-9003

OCS引擎未初始化

publicstaticintCT_ERR_OCSP_ENGINE_NOT_INIT=-9004

证书不完整

publicstaticintCT_ERR_CERT_NOTJNTEGRITY=-9005

取证书状态失败

publicstaticintCT_ERR_GET_CERT_STATUS=-9006

OCSP初始化错误

publicstaticintCT_ERR_OCSP_INIT=-9007

LDAP错误

publicstaticintCT_ERR_ACCESS_LDAP=-9008

CRL不完整

publicstaticintCT_ERR_CRL_NOT_INTEGRITY=-9009

证书颁发者或主题错误

publicstaticintCT_ERRJSSUER_OR_SUBJECT=-9010

CRL引擎未初始化

publicstaticintCT_ERR_CRL_ENGINE_NOT_INIT=-9011

证书链不完整

publicstaticintCT_ERR_CERT_CHAIN_NOT_INTEGRITY=-9012

证书过期

publicstaticintCT_ERR_CERT_OVER=-9013

根证书无效

publicstaticintCT_ERR_ROOT_CERT_INVALID=-9014

CRL初始化错误

publicstaticintCT_ERR_CRL_INIT=-9015

口令错误

publicstaticintCT_ERR_PWD=-9016

打开文件错误

publicstaticintCT_ERR_HLE_OPEN=-9017

文件不存在

publicstaticintCT_ERR_FILE_NO_EXIST=-9018

证书不存在

publicstaticintCT_ERR_CERT_NOT_EXIST=-9019

证书不匹配

publicstaticintCT_ERR_CERT_NO_MATCH=-9020

私钥不存在

publicstaticintCT_ERR_PRIVATEKEY_NO_EXIST=-9021

算法和密钥不匹配

publicstaticintCT_ERR_KEY_AND_ALGO_NO_MATCH=-9022

密钥不存在

publicstaticintCT_ERR_KEY_NO_EXIST=-9023

不支持的算法

publicstaticintCT_ERR_ALGO_NOT_SUPPORT=-90

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论