API(Java版)程序员手册.doc_第1页
API(Java版)程序员手册.doc_第2页
API(Java版)程序员手册.doc_第3页
API(Java版)程序员手册.doc_第4页
API(Java版)程序员手册.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

67 JIT 应用应用 Toolkits API Java 版 程序员手册版 程序员手册 JIT 版权所有版权所有 2001 吉吉 大大 正正 元元 信信 息息 技技 术术 股股 份份 有有 限限 公公 司司 JilinJilin UniversityUniversity InformationInformation JIT 应用 Toolkits API Java 版 程序员手册 1 TechnologiesTechnologies Co Co Ltd Ltd 目 录 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信封类型定义 8 4 1 5证书扩展类型定义 9 4 1 6证书用户类型定义 9 4 1 7证书状态定义 9 4 1 8CRL验证证书方式 9 4 1 9证书SN类型 9 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 14 5 2 1构造方法 14 5 2 2查询证书状态 15 5 2 3获取错误信息 16 JIT 应用 Toolkits API Java 版 程序员手册 2 5 2 4释放OCSP资源 16 5 3类 JIT CRL 16 5 3 1构造方法 17 5 3 2获取CRL验证证书的方式getMode 17 5 3 3CRL验证证书 18 5 3 4验证CRL签名 18 5 3 5获取错误信息 19 5 3 6释放CRL资源 19 5 4类 JIT CERTIFICATE 19 5 4 1构造方法 19 5 4 2获取证书中eMail 21 5 4 3获取证书颁发者 22 5 4 4获取证书序列号 22 5 4 5获取证书主题 22 5 4 6获取证书版本号 23 5 4 7获取证书有效期 23 5 4 8获取证书的应用类型 23 5 4 9获取证书编码 二进制 24 5 4 10获取证书的个人身份标识码 24 5 4 11提取所需对象标识符对应的内容 25 5 4 12验证证书的有效性 26 5 4 13验证证书的有效性 手工输入时间 26 5 4 14获取错误信息 27 5 4 15释放Certificate资源 27 5 4 16扩展接口 28 5 5类 JIT KEY 29 5 5 1构造方法 29 5 5 2产生对称密钥 29 5 5 3基于口令产生对称密钥 30 5 5 4包装密钥 30 5 5 5解包装密钥 31 5 5 6获取错误信息 31 5 5 7释放Key资源 32 5 6类 JIT BIN 32 5 6 1构造方法 32 5 6 2数据数字签名 32 5 6 3验证数字签名 33 5 6 4数据非对称加密 34 5 6 5数据非对称解密 35 5 6 6产生数据的MAC 35 5 6 7验证数据的MAC 36 5 6 8数据文摘 37 5 6 9数据对称加密 38 5 6 10数据对称解密 38 5 6 11产生PKCS7数字信封 39 JIT 应用 Toolkits API Java 版 程序员手册 3 5 6 12验证PKCS7数字信封 42 5 6 13二进制数据转换成PEM编码 44 5 6 14获取错误信息 44 5 6 15释放bin资源 45 5 7类 JIT BASE64 45 5 7 1构造方法 45 5 7 2数据数字签名 45 5 7 3验证数字签名 46 5 7 4数据非对称加密 47 5 7 5数据非对称解密 48 5 7 6数据产生MAC 48 5 7 7验证数据的MAC 49 5 7 8数据文摘 50 5 7 9数据对称加密 51 5 7 10数据对称解密 51 5 7 11产生PKCS7数字信封 52 5 7 12验证PKCS7数字信封 54 5 7 13PEM编码转换成二进制 57 5 7 14获取错误信息 57 5 7 15释放Base64资源 57 5 8类 JIT ENVFILE 58 5 8 1构造方法 58 5 8 2产生PKCS7数字信封文件 58 5 8 3验证PKCS7数字信封文件 61 5 8 4获取错误信息 62 5 8 5释放EnvFile资源 62 5 9类 JIT LDAP 62 5 9 1构造方法 62 5 9 2获取用户证书 63 5 9 3释放获取的证书 64 5 9 4获取错误信息 64 5 9 5释放Ldap资源 64 5 10类 JIT RANDOM 65 5 10 1创造随机数 65 JIT 应用 Toolkits API Java 版 程序员手册 4 1 1引言引言 1 1 概述概述 JIT Toolkit API Java 版 是以吉大正元电子证书认证系统为基础 方便用户进 行二次开发 整合先进的 Java 技术 提供的工具包 用户利用工具包中各种接口 可以作电子证书系统客户化 电子证书应用等方面的开发工作 主要功能如下 对客户和服务器证书的操作 包括验证和获取证书内容 对用户数据的操作 包括签名 加密 数字信封和他们相对应的校验工作 对用户文件的各种操作 包括封装数字信封和验证数字信封 各种辅助操作 包括对对称密钥的操作 产生随机数 对 Ldap CRL OCSP 等各种辅助功能的操作 1 2 开开发发平台平台及及编编程程语语言言 开发平台 Windows 2000 Server 编程语言 Java C 开发工具 Java 2 SDK Standard Edition v1 3 1 09 Sun Microsystems Inc Borland Jbuilder 7 Enterprise Microsoft Visual C 6 0 Enterprise Edition 1 3 注意事项注意事项 系统中的错误码均为负数 本接口不支持加密机 除 windwos 外不支持 key 使用 除 windows 外不支持 OCSP 1 4 名词解释名词解释 无 2 2系统结构系统结构 2 1 接口说明接口说明 JIT 应用 Toolkits API Java 版 对用户提供 10 个类共 70 个接口 jit toolkits Toolkits 主要功能类 提供各对外接口 jit parameters 结构 用于存放程序中各种用到的结构体 2 2 配置文件说明配置文件说明 JIT 应用 Toolkits API JNI 版 共需要 5 个配置文件 说明如下 JIT 应用 Toolkits API Java 版 程序员手册 5 cryptodevice ini 加密设备配置文件 文件证书使用时修改 DeviceCount 对应软加密库 ID DeviceCount 1 Key 证书使用时修改 DeviceCount 对应 Key 的 ID DeviceCount 2 两种证书同时使用时修改 DeviceCount 对应 Key 的 ID DeviceCount 2 MultiDeviceFile ini 管理员证书介质使用 JPF 文件时使用此配置文件 无论那种情况该文件必须存在 MultiDeviceCard ini 管理员证书介质使用 USB Key 时使用此文件 无论那种情况该文件必须存在 card ini USB Key 的配置文件 通常不需要用户改动 jitocsp ini 与 OCSP 服务器连接时需要的一些连接参数 用户可根据实际情况进行改动 jcaapi ini 与 Ldap 服务器连接时需要的一些连接参数 用户可根据实际情况进行改动 3 3数据结构数据结构 3 1 基于口令产生密钥的基本信息基于口令产生密钥的基本信息 类名称 类名称 JIT PBE PARAMS 功能 功能 存储 PKCS5 基于口令产生密钥的参数 声明 声明 public class JIT PBE PARAMS public byte sPassword public byte bSalt public int lIteration public JIT PBE PARAMS 数据成员 数据成员 pPassword 口令的内容 pSalt 盐值的内容 PKCS5 基于口令产生密钥的协商好的附加信息 nIteration PKCS5 基于口令密钥产生的循环叠代次数 JIT 应用 Toolkits API Java 版 程序员手册 6 3 2 初始化初始化 CRL 参数参数 类名称 类名称 JIT CRLPARAM 功能 功能 存储初始化 CRL 的参数 声明 声明 public class JIT CRLPARAM public byte szCRLFile public int nMode public JIT CRLPARAM 数据成员 数据成员 szCRLFile 用户指定的 CRL 文件路径 这个路径必须是绝对路径 这个路径不能 为 NULL 在线方式验证 这个路径是下载的 CRL 存储在本地的 CRL 文件路径 离线方式验证 这个路径是验证证书时使用的 CRL 文件路径 nMode 通过 CRL 验证证书的方式 包括在线方式验证和离线方式验证 在线方式验证设置为 VERIFY MODE ONLINE 离线方式验证设置为 VERIFY MODE OFFLINE 3 3 时间基本信息时间基本信息 类名称 类名称 JIT Time 功能 功能 存储证书中时间的值 声明 声明 public class JIT Time public long lType public long diffGMT public long year public long month public long day public long hour public long min public long second public JIT Time 数据成员 数据成员 lType 证书中时间的编码类型 JIT 应用 Toolkits API Java 版 程序员手册 7 1 格林威治时间 2 本地时间 diffGMT 本地时间和格林威治时间的差值 本地时间比格林威治时间早 用负数表示 本地时间比格林威治时间晚用正数表示 0 表示格林威治时间 year 本地时间年 month本地时间月 day 本地时间日 hour本地时间时 min 本地时间分 second本地时间秒 3 4 证书有效期类证书有效期类 类名称 类名称 JIT Valid 功能功能 存储证书的有效期 声明 声明 public class JIT Valid public JIT Time notBefor public JIT Time notAfter public JIT Valid 数据成员 数据成员 notBefor 证书有效期开始的时间 notAfter 证书有效期结束的时间 3 5 初始化证书信息初始化证书信息 类名称 类名称 JIT CERTDEVPARAM 保留未用 功能功能 存储了从非数据流形式初始化证书时所需要的信息 声明 声明 public class JIT CERTDEVPARAM public byte szDevInfo public byte szPWD public JIT CERTDEVPARAM JIT 应用 Toolkits API Java 版 程序员手册 8 数据成员 数据成员 szDevInfo 描述证书存储的描述串 描述串由两部分组成 第一部分是存储介 质描述符 第二部分是证书存储路径 存储介质描述符 file 表示证书的存储介质是磁盘 usb 表示证书的存储介质是 USB 接口设备 com1 表示证书的存储介质是 COM 接口设备 证书存储路径 表示证书存储的位置和名字 例如 file d mycert jpf 表示 D 盘根目录下的 mycert jpf 文件 file d mycert pfx 表示 D 盘根目录下的 mycert pfx 文件 file d mycert cer 表示 D 盘根目录下的 mycert cer 文件 usb jpf 表示 USB 接口中的 jpf 文件 usb jpf 表示 USB 接口中的 jpf 文件 szPWD 证书密码 4 4全局常量定义全局常量定义 该类定义 API 中的常量 在本文档中引用常量时直接引用常量名 4 1 标识常量标识常量 4 1 14 1 1 所用到的配置文件所用到的配置文件 public static String CRYPT INI FILE NAME cryptodevice ini public static String OCSP INI FILE NAME jitocsp ini public static String CARD INI FILE NAME card ini public static String MULITYCARD FILE NAME MultiDeviceCard ini public static String MULITYFILE FILE NAME MultiDeviceFile ini public static String JCAAPI INI FILE NAME jcaapi ini 4 1 24 1 2 文件长度及密码长度文件长度及密码长度 文件长度 public static intFILE NAME LEN 256 密码长度 public static intPWD LEN 128 4 1 34 1 3 数据类型定义数据类型定义 Base64 类型 public static intDATA TYPE BASE64 0 Bin 类型 public static intDATA TYPE BIN 1 JIT 应用 Toolkits API Java 版 程序员手册 9 4 1 44 1 4 信封类型定义信封类型定义 签名信封 public static intENVELOP SIGN 0 加密信封 public static intENVELOP ENC 1 既签名又加密信封 public static intENVELOP SIGN ENC 2 文摘信封 public static intENVELOP DIGEST 3 MAC 信封 public static intENVELOP MAC 4 4 1 54 1 5 证书扩展类型定义证书扩展类型定义 jpf 管理员证书文件 public static intCERT EXP TYPE JPF 0 pfx 包含私钥证书文件 public static intCERT EXP TYPE PFX 1 cer 公钥证书文件 public static intCERT EXP TYPE CER 2 4 1 64 1 6 证书用户类型定义证书用户类型定义 个人单证书 public static intCERT USE TYPE SINGLE 0 jpf 双证书 public static intCERT USE TYPE DOUBLE 1 电子邮件保护证书 public static intCERT USE TYPE MAIL 2 服务器证书 public static intCERT USE TYPE SERVER 3 CA 证书 public static intCERT USE TYPE CA 4 4 1 74 1 7 证书状态定义证书状态定义 正常状态 public static intCERT STATUS NOMAL 0 证书已注销 public static intCERT STATUS REVOKE 1 未知状态 public static intCERT STATUS UNKNOWN 2 4 1 84 1 8 CRLCRL 验证证书方式验证证书方式 在线验证证书 public static intVERIFY MODE ONLINE 0 离线验证证书 JIT 应用 Toolkits API Java 版 程序员手册 10 public static intVERIFY MODE OFFLINE 1 4 1 94 1 9 证书证书 SNSN 类型类型 签名证书 public static intCERT SN TYPE SIGN 1 加密证书 public static intCERT SN TYPE ENC 2 签名加密证书 public static intCERT SN TYPE SIGNENC 3 4 1 104 1 10证书存储方式证书存储方式 文件方式存储 public static int CERT DEV TYPE FILE 0 USB Key 中存储 public static int CERT DEV TYPE USB 1 COM 接口设备存储 public static int CERT DEV TYPE COM 2 4 1 114 1 11加密 解密 签名加密 解密 签名 等算法等算法 RSA 加密解密 public static int CT ALGO RSA PKCS 0 x00000001 MD2WithRSA 签名验证 public static int CT ALGO MD2 RSA PKCS 0 x00000004 MD5WithRSA 签名验证 public static int CT ALGO MD5 RSA PKCS 0 x00000005 SHA1WithRSA 签名验证 public static int CT ALGO SHA1 RSA PKCS 0 x00000006 MD2 文摘 public static int CT ALGO MD2 0 x00000200 MD5 文摘 public static int CT ALGO MD5 0 x00000210 SHA1 文摘 public static int CT ALGO SHA 1 0 x00000220 RC2 ECB 方式加密解密 public static int CT ALGO RC2 ECB 0 x00000101 RC4 加密解密 public static int CT ALGO RC4 0 x00000111 DES ECB 方式加密解密 public static int CT ALGO DES ECB 0 x00000121 3DES ECB 方式加密解密 public static int CT ALGO DES3 ECB 0 x00000132 4 1 124 1 12标准扩展域标准扩展域 public static int CERT EXT OID IDENTIFYCARD 12861171 个人身份标识码 OID 1 2 86 11 7 1 public static int CERT EXT OID INSURANCENUM 12861172 JIT 应用 Toolkits API Java 版 程序员手册 11 个人社会保险号 OID 1 2 86 11 7 2 public static int CERT EXT OID ORGANIZATIONCODE 12861173 企业组织机构代码 OID 1 2 86 11 7 3 public static int CERT EXT OID ICREGNUM 12861174 企业工商注册号 OID 1 2 86 11 7 4 public static int CERT EXT OID TAXNUM 12861175 企业税号 OID 1 2 86 11 7 5 4 2 错误代码错误代码 成功 public static intCT SUCCESS 0 参数错误 public static intCT ERR PARAM 9000 内存错误 public static intCT ERR MEMORY 9001 内存分配少 public static intCT ERR BUFFER TOO SMALL 9090 加密库初始化错误 public static intCT ERR CRYPTODEV INIT 9999 不能打开加密库 public static intCT ERR CRYPTO SESSION 9002 不能访问加密设备 public static intCT ERR CRYPTODEV NO ACCESS 9003 OCS 引擎未初始化 public static intCT ERR OCSP ENGINE NOT INIT 9004 证书不完整 public static intCT ERR CERT NOT INTEGRITY 9005 取证书状态失败 public static intCT ERR GET CERT STATUS 9006 OCSP 初始化错误 public static intCT ERR OCSP INIT 9007 LDAP 错误 public static intCT ERR ACCESS LDAP 9008 CRL 不完整 public static intCT ERR CRL NOT INTEGRITY 9009 证书颁发者或主题错误 public static intCT ERR ISSUER OR SUBJECT 9010 CRL 引擎未初始化 public static intCT ERR CRL ENGINE NOT INIT 9011 证书链不完整 public static intCT ERR CERT CHAIN NOT INTEGRITY 9012 证书过期 public static intCT ERR CERT OVER 9013 根证书无效 public static intCT ERR ROOT CERT INVALID 9014 JIT 应用 Toolkits API Java 版 程序员手册 12 CRL 初始化错误 public static intCT ERR CRL INIT 9015 口令错误 public static intCT ERR PWD 9016 打开文件错误 public static intCT ERR FILE OPEN 9017 文件不存在 public static intCT ERR FILE NO EXIST 9018 证书不存在 public static intCT ERR CERT NOT EXIST 9019 证书不匹配 public static intCT ERR CERT NO MATCH 9020 私钥不存在 public static intCT ERR PRIVATEKEY NO EXIST 9021 算法和密钥不匹配 public static intCT ERR KEY AND ALGO NO MATCH 9022 密钥不存在 public static intCT ERR KEY NO EXIST 9023 不支持的算法 public static intCT ERR ALGO NOT SUPPORT 9024 数据长度不匹配 public static intCT ERR DATA LENGTH NO MATCH 9025 证书和算法不匹配 public static intCT ERR CERT AND ALGO NO MATCH 9026 签名失败 public static intCT ERR SIGNATURE 9027 验证签名失败 public static intCT ERR VERIFY SIGNATURE 9028 加密失败 public static intCT ERR ENCRYPT 9029 解密失败 public static intCT ERR DECRYPT 9030 产生 MAC 失败 public static intCT ERR MAC 9031 验证 MAC 失败 public static intCT ERR VERIFY MAC 9032 产生密钥失败 public static intCT ERR GENERATEKEY 9033 产生摘要失败 public static intCT ERR DIGEST 9034 数据格式错误 public static intCT ERR DATA FORMAT 9040 验证模式错误 public static intCT ERR VERIFY MODE 9041 Email 地址不存在 JIT 应用 Toolkits API Java 版 程序员手册 13 public static intCT ERR NO EMAIL ADDRESS 9042 cryptodevice ini 文件不存在 public static intCT ERR NO CRYPT INI 9043 jitocsp ini 文件不存在 public static intCT ERR NO OCSP INI 9044 jcaapi ini 文件不存在 public static intCT ERR NO JCAAPI INI 9045 card ini 文件不存在 public static intCT ERR NO CARD INI 9046 MultiDeviceCard ini 文件不存在 public static intCT ERR NO MULCARD INI 9047 MultiDeviceFile ini 文件不存在 public static intCT ERR NO MULFILE INI 9048 初始化 LDAP 错误 public static intCT ERR LDAP INIT 9049 LDAP 引擎未初始化 public static intCT ERR LDAP ENGINE NOT INIT 9050 产生随机数失败 public static intCT ERR GEN RANDOM 9051 没有匹配的 OID public static intCT ERR OID NO MATCH 9053 证书初始化错误 public static intCT ERR CERT INIT 9081 引擎初始化错误 public static intCT ERR ENGINE INIT 9080 5 5函数说明函数说明 5 1 类类 JIT Engine 这个类提供初始化 JIT CA30 应用 API 引擎的功能 用户在使用 JIT CA30 应用 API 的其它功能前 必须初始化引擎 该引擎在一个程序中只能初始化一次 它提供 以下功能初始化方法 5 1 15 1 1 构造函数构造函数 JIT Engine 声明 声明 public JIT Engine byte bWorkpath 参数 参数 in sWorkPath JIT CA30 应用 API 的工作路径 该路径下存放需要的配置文件和 CRL 根证书等 这个路径必须是绝对路径 这个路径不能为 NULL 返回值 返回值 由于构造方法无返回值 所以用户在初始化引擎后 调用 getErrcode 方法返 回引擎是否初始化成功 示例 示例 JIT 应用 Toolkits API Java 版 程序员手册 14 byte bWorkPath null bWorkPath 配置文件路径 JIT Engine Engine null Engine new JIT Engine bWorkPath iRet Engine getErrcode if iRet 0 引擎初始化成功 else 引擎初始化失败 返回相应的错误码 Engine delete 相关主题相关主题 GetLastErr Delete 5 1 25 1 2 获取错误信息获取错误信息 getErrcode 声明 声明 public int getErrcode 参数 参数 无 返回值 返回值 函数成功时返回 0 失败时返回错误码 示例 示例 见 5 1 1 示例 5 1 35 1 3 释放引擎资源释放引擎资源 delete 声明 声明 public void delete 参数 参数 无 返回值 返回值 无 示例 示例 见 5 1 1 示例 5 2 类类 JIT OCSP 这个类提供通过 OCSP 在线查询证书状态的功能 5 2 15 2 1 构造方法构造方法 JIT OCSP 声明 声明 JIT 应用 Toolkits API Java 版 程序员手册 15 public int JIT OCSP JIT Engine pEng JIT Certificate pRootCert JIT Certificate pServerCert 参数 参数 in pEng JIT CA30 应用 API 引擎 用户先构造一个 JIT Engine 的实例 然后将 对象传递给方法 in pRootCert CA 的证书对象 必须先初始化 CA 证书 此参数必须非空 pServerCert OCSP 服务器证书 此参数保留 置为 null 返回值 返回值 由于构造方法无返回值 调用 getErrcode 方法返回错误码 注释 注释 在参数 pRootCert 中指明 CA 的证书 是用来验证用户要在线查询的证书是 否是由 pRootCert 参数指定的 CA 签发的 示例 示例 初始化引擎 JIT OCSP OCSP null JIT Certificate cerRootCert null 初始化 CA 根证书 OCSP new JIT OCSP Engine cerRootCert null iRet OCSP getErrCode if 0 iRet 初始化引擎失败 else 初始化引擎成功 OCSP delete 相关主题 相关主题 GetLastErr JIT Certificate Delete 5 2 25 2 2 查询证书状态查询证书状态 getCertStatus 声明 声明 public int JIT Certificate pCert int iCertType 参数 参数 in pCert 输入用户要在线查询的证书对象 必须先初始化该证书 此参数必须非 空 in iCertType 输入用户要在线查询的证书的类型 如果参数 pCert 中指定的证书是双证书 则在参数 nCertType 中指明要查 询的证书 JIT 应用 Toolkits API Java 版 程序员手册 16 nCertType证书类型证书类型数值数值 CERT SN TYPE SIGN签名证书1 CERT SN TYPE ENC加密证书2 返回值 返回值 证书状态或者错误代码 常量定义常量定义证书状态证书状态数值数值 CERT STATUS NOMAL表示证书有效0 CERT STATUS REVOKE表示证书被注销1 CERT STATUS UNKNOWN表示证书状态未知2 其他错误代码 示例 示例 JIT Certificate cerEncCert null 初始化证书 iRet OCSP getCertStatus cerEncCert cerEncCert getCertType if 0 iRet 查询证书状态失败 else 返回证书状态 相关主题 相关主题 JIT Certificate 5 2 35 2 3 获取错误信息获取错误信息 getErrcode 声明 声明 public int getErrcode 参数 参数 无 返回值 返回值 函数成功时返回 0 失败时返回错误码 示例 示例 见 5 2 1 示例 5 2 45 2 4 释放释放 OCSPOCSP 资源资源 delete 声明 声明 public void delete 参数 参数 无 返回值 返回值 无 JIT 应用 Toolkits API Java 版 程序员手册 17 示例 示例 见 5 2 1 示例 5 3 类类 JIT CRL 这个类提供通过 CRL 验证证书状态的功能 可以通过在线或离线方式验证 5 3 15 3 1 构造方法构造方法 JIT CRL 声明 声明 public JIT CRL JIT Engine pEng JIT CRLPARAM stCRLInfo 参数 参数 in pEng JIT CA30 应用 API 引擎 用户先构造一个 JIT Engine 的实例 然后将 对象传递给方法 in stCRLInfo JIT CRLPARAM 类的引用 详见 JIT CRLPARAM 类的定义 返回值 返回值 由于构造方法无返回值 调用 getErrcode 方法返回错误码 注释 注释 此方法初始化通过 CRL 验证证书的功能和方式 在线或离线 示例 示例 JIT CRLPARAM ParamCRL new JIT CRLPARAM ParamCRL szCRLFile CRL 路径 ParamCRL nMode 验证方式 JIT CRL CRL null CRL new JIT CRL Engine ParamCRL iRet CRL getErrCode if 0 iRet CRL 初始化失败 else 初始化成功 CRL delete 相关主题 相关主题 delete getErrCode 5 3 25 3 2 获取获取 CRLCRL 验证证书的方式验证证书的方式 getModegetMode getMode 声明 声明 public int getMode 参数 参数 无 返回值返回值 CRL 验证证书的方式 JIT 应用 Toolkits API Java 版 程序员手册 18 pnMode状态状态数值数值 VERIFY MODE ONLINE在线0 VERIFY MODE OFFLINE离线1 其他错误代码 示例 示例 iRet CRLZX getMode if 0 iRet 获取状态失败 else 获取状态成功 5 3 35 3 3 CRLCRL 验证证书验证证书 verifyCert 声明 声明 public int verifyCert JIT Certificate cCert 参数 参数 in cCert 输入 CRL 验证的证书 必须先初始化证书 返回值 返回值 示例 示例 JIT Certificate cerCert null 初始化证书 iRet CRL verifyCert cerCert if 0 iRet 验证失败 else 输出验证状态 相关主题 JIT Certificate 5 3 45 3 4 验证验证 CRLCRL 签名签名 verifyCRL 声明 声明 public int verifyCRL byte bCertChain pnMode状态状态数值数值 CERT STATUS NOMAL表示证书有效0 CERT STATUS REVOKE表示证书被注销1 其他大于 0 的数未知状态 小于 0 的数错误代码 JIT 应用 Toolkits API Java 版 程序员手册 19 参数 参数 in bCertChain 输入签发 CRL 的根证书文件名 全路径 返回值 返回值 成功返回 0 失败返回错误代码 注释 注释 验证 CRL 签名采用离线方式验证 根证书文件必须是 p7b 文件 并且根证书 文件中的证书组必须完整 只有离线验证证书时需要验证 CRL 在线验证证书不需要验证 CRL 示例 示例 byte P7BPath 根证书文件路径 iRet CRL verifyCRL P7BPath if 0 iRet 验证 CRL 失败 else 验证 CRL 成功 5 3 55 3 5 获取错误信息获取错误信息 getErrcode 声明 声明 public int getErrcode 参数 参数 无 返回值 返回值 函数成功时返回 0 失败时返回错误码 示例 示例 见 5 3 1 示例 5 3 65 3 6 释放释放 CRLCRL 资源资源 delete 声明 声明 public void delete 参数 参数 无 返回值 返回值 无 示例 示例 见 5 3 1 示例 5 4 类类 JIT Certificate 5 4 15 4 1 构造方法构造方法 JIT Certificate JIT 应用 Toolkits API Java 版 程序员手册 20 声明 声明 通过证书路径初始化 cer 证书 public JIT Certificate byte bDevinfo byte bWorkPath 通过证书路径初始化 pfx 证书 public JIT Certificate byte bDevinfo byte bPassword byte bWorkPath 通过内存初始化证书 public JIT Certificate byte certBuf byte certPassword byte workPath int certType 参数 参数 in bDevInfo 描述证书存储的描述串 描述串由两部分组成 第一部分是存储介质描述符 第二部分是证书存储路径 存储介质描述符 file 表示证书的存储介质是磁盘 usb 表示证书的存储介质是 USB 接口设备且证书是 jpf 管理员证书 com1 表示证书的存储介质是 COM 接口设备 usbcsp 表示证书的存储介质是 USB 接口设备且证书是用户证书 证书存储路径 表示证书存储的位置和名字 例如 file d mycert jpf 表示 D 盘根目录下的 mycert jpf 文件 file d mycert pfx 表示 D 盘根目录下的 mycert pfx 文件 file d mycert cer 表示 D 盘根目录下的 mycert cer 文件 usb jpf 表示 USB 接口中的 jpf 文件 usbcsp 2cer 表示 USB 接口中用户证书文件文件 注意 Key 中用户证书文件只支持双证 签名证书 加密证书在同一 key 中 初始化时默认两个一起初始化成一个证书实例 使用时自动进行证 书用法的判断 不需要用户处理 in bPWD 访问存储介质的口令 in bWorkPath IT CA30 应用 API 的工作路径 这个路径必须是绝对路径 这个路径不能为 NULL in certBuf 证书内容缓冲区 in certType 证书扩展名类型 取值如下 证书类型标识证书类型标识后缀后缀数值数值 CERT EXP TYPE JPFJPF 证书0 CERT EXP TYPE PFXPFX 证书1 CERT EXP TYPE CERCER 证书2 返回值 返回值 由于构造方法无返回值 调用 getErrcode 方法返回错误码 JIT 应用 Toolkits API Java 版 程序员手册 21 注释 注释 通过内存空间初始化证书需要将证书读入内存或通过网络获得证书内容 初 始化 pfx 证书时 密码项可以设为 null 示例 示例 JIT Certificate cerRootCert null byte cerCertPath 证书路径 byte bWorkPath 工作路径 byte bpassword 证书密码 cerRootCert new JIT Certificate cerCertPath bWorkPath iRet cerRootCert getErrCode if 0 iRet 初始化证书失败 else 初始化证书成功 cerRootCert new JIT Certificate cerCertPath bpassword bWorkPath iRet cerRootCert getErrCode if 0 iRet 初始化证书失败 else 初始化证书成功 byte Certbuffer 证书内容 int CertType 证书类型 cerRootCert new JIT Certificate Certbuffer bpassword bWorkPath CertType iRet cerRootCert getErrCode if 0 iRet 初始化证书失败 else 初始化证书成功 cerRootCert delete 初始化 Key 证书 byte USBCertPath USBCSP 2CER getBytes 固定此写法 byte USBPassword 卡密码 JIT Certificate USBCert null USBCert new JIT Certificate USBCertPath USBPassword bWorkPath iRet USBCert getErrCode if 0 iRet 初始化 USBKey 证书失败 else 初始化 USBKey 证书成功 USBCert delete 相关主题 相关主题 getErrCode delete JIT 应用 Toolkits API Java 版 程序员手册 22 5 4 25 4 2 获取证书中获取证书中 eMaileMail getMail 声明 声明 public byte getMail 参数 参数 无 返回值 返回值 证书主题中的 e mail 地址 如果证书中没有 e mail 地址 返回值为 null 示例 示例 JIT Certificate pfxCert null 初始化证书 pfxCert getMail 5 4 35 4 3 获取证书颁发者获取证书颁发者 getIssuer 声明 声明 public byte getIssuer 参数 参数 无 返回值 返回值 证书主题中的颁发者信息 示例 示例 JIT Certificate pfxCert null 初始化证书 pfxCert getIssuer 5 4 45 4 4 获取证书序列号获取证书序列号 getCertSN 声明 声明 public byte getCertSN int nCertType 参数 参数 in nCertType 输入证书的密钥用法类型 注意 如果证书是文件证书 注意 如果证书是文件证书 cer pfx 此处取值为 此处取值为1 如果证书是如果证书是key中证书或中证书或jpf证书用以下参数获取 证书用以下参数获取 证书类型标识证书类型标识类型类型数值数值 CERT SN TYPE SIGN

温馨提示

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

评论

0/150

提交评论