版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏教版五年级下册语文期末学业考查真题
- 北师大版九年级上数学学习资料分享
- 小学语文北师大版名言警句解析
- 八年级英语上册苏教版单元测试
- 新苏教版三上数学周长的认识与教学视频
- 苏教版小学语文知识点精讲解析
- 生活中的比较北师大版视角
- 温度对体育赛事的规划
- 小学音乐课程教学设计
- 感谢生活中的美好瞬间
- 探伤报告格式模板
- 名著阅读《水浒传》练习(含答案)
- 更名深瑞版prs700后台使用说明书
- 资产股权划转的案例分析
- 企业园区分散式风电项目开发
- 二程的哲学思想课件
- 屋面工程精装修深化设计及施工总结课件
- 高考作文写作指导:是你拨动了我的心弦(附文题详解及范文展示)
- 异丁烯聚合振荡流反应器说明
- 钳工基本操作-锉削课件
- 《0~3岁婴幼儿语言发展与教育》课件03不同阶段婴幼儿的语言发展特点
评论
0/150
提交评论