API(Java版)程序員手冊_第1頁
API(Java版)程序員手冊_第2頁
API(Java版)程序員手冊_第3頁
API(Java版)程序員手冊_第4頁
API(Java版)程序員手冊_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、JIT 應(yīng)用應(yīng)用 Toolkits API(Java 版)程序員手冊版)程序員手冊JIT 版權(quán)所有版權(quán)所有(2001)吉吉 大大 正正 元元 信信 息息 技技 術(shù)術(shù) 股股 份份 有有 限限 公公 司司JilinJilin UniversityUniversity InformationInformation TechnologiesTechnologies Co.,Co., Ltd.Ltd.目 錄1引言引言.41.1概述.41.2開發(fā)平臺及編程語言.41.3注意事項.41.4名詞解釋.42系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu).42.1接口說明.42.2配置文件說明.43數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu).53.1基于口令產(chǎn)生密鑰的

2、基本信息.53.2初始化 CRL 參數(shù).53.3時間基本信息.63.4證書有效期類.73.5初始化證書信息.74全局常量定義全局常量定義.84.1標識常量.8所用到的配置文件.8文件長度及密碼長度.8數(shù)據(jù)類型定義;.8信封類型定義.8證書擴展類型定義.9證書用戶類型定義.9證書狀態(tài)定義.9CRL驗證證書方式.9證書SN類型.9證書存儲方式.10加密、解密、簽名 等算法.10標準擴展域.104.2錯誤代碼.115函數(shù)說明函數(shù)說明.135.1類 JIT_ENGINE.13構(gòu)造函數(shù).13獲取錯誤信息.14釋放引擎資源.145.2類 JIT_OCSP .14構(gòu)造方法.14查詢證書狀態(tài).15獲取錯誤信息

3、.16釋放OCSP資源.165.3類 JIT_CRL.16構(gòu)造方法.17獲取CRL驗證證書的方式getMode.17CRL驗證證書.18驗證CRL簽名.18獲取錯誤信息.19釋放CRL資源.195.4類 JIT_CERTIFICATE.19構(gòu)造方法.19獲取證書中eMail.21獲取證書頒發(fā)者.22獲取證書序列號.22獲取證書主題.22獲取證書版本號.23獲取證書有效期.23獲取證書的應(yīng)用類型.23獲取證書編碼(二進制).24獲取證書的個人身份標識碼.24提取所需對象標識符對應(yīng)的內(nèi)容.25驗證證書的有效性.26驗證證書的有效性(手工輸入時間).26獲取錯誤信息.27釋放Certificate資

4、源.27擴展接口.285.5類 JIT_KEY.29構(gòu)造方法.29產(chǎn)生對稱密鑰.29基于口令產(chǎn)生對稱密鑰.30包裝密鑰.30解包裝密鑰.31獲取錯誤信息.31釋放Key資源.325.6類 JIT_BIN.32構(gòu)造方法.32數(shù)據(jù)數(shù)字簽名.32驗證數(shù)字簽名.33數(shù)據(jù)非對稱加密.34數(shù)據(jù)非對稱解密.35產(chǎn)生數(shù)據(jù)的MAC.35驗證數(shù)據(jù)的MAC.36數(shù)據(jù)文摘.37數(shù)據(jù)對稱加密.38數(shù)據(jù)對稱解密.38產(chǎn)生PKCS7數(shù)字信封.39驗證PKCS7數(shù)字信封.42二進制數(shù)據(jù)轉(zhuǎn)換成PEM編碼.44獲取錯誤信息.44釋放bin資源.455.7類 JIT_BASE64.45構(gòu)造方法.45數(shù)據(jù)數(shù)字簽名.45驗證數(shù)字簽名.

5、46數(shù)據(jù)非對稱加密.47數(shù)據(jù)非對稱解密.48數(shù)據(jù)產(chǎn)生MAC.48驗證數(shù)據(jù)的MAC.49數(shù)據(jù)文摘.50數(shù)據(jù)對稱加密.51數(shù)據(jù)對稱解密.51產(chǎn)生PKCS7數(shù)字信封.52驗證PKCS7數(shù)字信封.54PEM編碼轉(zhuǎn)換成二進制.57獲取錯誤信息.57釋放Base64資源.575.8類 JIT_ENVFILE.58構(gòu)造方法.58產(chǎn)生PKCS7數(shù)字信封文件.58驗證PKCS7數(shù)字信封文件.61獲取錯誤信息.62釋放EnvFile資源.625.9類 JIT_LDAP.62構(gòu)造方法.62獲取用戶證書.63釋放獲取的證書.64獲取錯誤信息.64釋放Ldap資源.645.10類 JIT_RANDOM.65創(chuàng)造隨機數(shù).

6、651 1引言引言1.1 概述概述JIT Toolkit_API(Java 版)是以吉大正元電子證書認證系統(tǒng)為基礎(chǔ),方便用戶進行二次開發(fā),整合先進的 Java 技術(shù),提供的工具包。用戶利用工具包中各種接口可以作電子證書系統(tǒng)客戶化,電子證書應(yīng)用等方面的開發(fā)工作。主要功能如下:對客戶和服務(wù)器證書的操作(包括驗證和獲取證書內(nèi)容)對用戶數(shù)據(jù)的操作(包括簽名、加密、數(shù)字信封和他們相對應(yīng)的校驗工作)對用戶文件的各種操作(包括封裝數(shù)字信封和驗證數(shù)字信封)各種輔助操作(包括對對稱密鑰的操作、產(chǎn)生隨機數(shù)、 )對 Ldap、CRL、OCSP 等各種輔助功能的操作1.2 開開發(fā)發(fā)平臺平臺及及編編程程語語言言開發(fā)平臺

7、Windows 2000 Server編程語言JavaC+開發(fā)工具(Sun Microsystems, Inc.)Borland Jbuilder 7 EnterpriseMicrosoft Visual C+ 6.0 Enterprise Edition1.3 注意事項注意事項系統(tǒng)中的錯誤碼均為負數(shù)。本接口不支持加密機,除 windwos 外不支持 key 使用除 windows 外不支持 OCSP1.4 名詞解釋名詞解釋無2 2系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)2.1 接口說明接口說明JIT 應(yīng)用 Toolkits API(Java 版)對用戶提供 10 個類共 70 個接口:jit.toolkitsToo

8、lkits 主要功能類。提供各對外接口。jit.parameters結(jié)構(gòu)。用于存放程序中各種用到的結(jié)構(gòu)體。2.2 配置文件說明配置文件說明JIT 應(yīng)用 Toolkits API(JNI 版)共需要 5 個配置文件,說明如下:cryptodevice.ini加密設(shè)備配置文件。文件證書使用時修改 DeviceCount 對應(yīng)軟加密庫 ID,DeviceCount =1Key 證書使用時修改 DeviceCount 對應(yīng) Key 的 IDDeviceCount =2兩種證書同時使用時修改 DeviceCount 對應(yīng) Key 的 IDDeviceCount =2MultiDeviceFile.ini

9、管理員證書介質(zhì)使用 JPF 文件時使用此配置文件。 (無論那種情況該文件必須存在)MultiDeviceCard.ini管理員證書介質(zhì)使用 USB Key 時使用此文件。 (無論那種情況該文件必須存在)card.iniUSB Key 的配置文件,通常不需要用戶改動。jitocsp.ini與 OCSP 服務(wù)器連接時需要的一些連接參數(shù),用戶可根據(jù)實際情況進行改動jcaapi.ini與 Ldap 服務(wù)器連接時需要的一些連接參數(shù),用戶可根據(jù)實際情況進行改動3 3數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)3.1 基于口令產(chǎn)生密鑰的基本信息基于口令產(chǎn)生密鑰的基本信息類名稱:類名稱:JIT_PBE_PARAMS功能:功能:存儲 PK

10、CS5 基于口令產(chǎn)生密鑰的參數(shù)。聲明:聲明:public class JIT_PBE_PARAMS public byte sPassword; public byte bSalt; public int lIteration;public JIT_PBE_PARAMS() 數(shù)據(jù)成員:數(shù)據(jù)成員:pPassword 口令的內(nèi)容。pSalt鹽值的內(nèi)容。 (PKCS5 基于口令產(chǎn)生密鑰的協(xié)商好的附加信息)nIterationPKCS5 基于口令密鑰產(chǎn)生的循環(huán)疊代次數(shù)。3.2 初始化初始化 CRL 參數(shù)參數(shù)類名稱:類名稱:JIT_CRLPARAM功能:功能:存儲初始化 CRL 的參數(shù)。聲明:聲明:pu

11、blic class JIT_CRLPARAM public byte szCRLFile; public int nMode; public JIT_CRLPARAM() 數(shù)據(jù)成員:數(shù)據(jù)成員:szCRLFile 用戶指定的 CRL 文件路徑。這個路徑必須是絕對路徑。這個路徑不能為 NULL。在線方式驗證,這個路徑是下載的 CRL 存儲在本地的 CRL 文件路徑。離線方式驗證,這個路徑是驗證證書時使用的 CRL 文件路徑。nMode通過 CRL 驗證證書的方式。包括在線方式驗證和離線方式驗證。在線方式驗證設(shè)置為 VERIFY_MODE_ONLINE離線方式驗證設(shè)置為 VERIFY_MODE_O

12、FFLINE3.3 時間基本信息時間基本信息類名稱:類名稱:JIT_Time功能:功能:存儲證書中時間的值聲明:聲明: public class JIT_Timepublic 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() 數(shù)據(jù)成員:數(shù)據(jù)成員:lType 證書中時間的編碼類型。1:格林威治時間 2:本地時間diffGMT 本地時

13、間和格林威治時間的差值。本地時間比格林威治時間早用負數(shù)表示。本地時間比格林威治時間晚用正數(shù)表示。0表示格林威治時間。year 本地時間年month本地時間月day 本地時間日hour本地時間時min 本地時間分second本地時間秒3.4 證書有效期類證書有效期類類名稱:類名稱:JIT_Valid功能功能:存儲證書的有效期聲明:聲明:public class JIT_Validpublic JIT_Time notBeforpublic JIT_Time notAfterpublic JIT_Valid() 數(shù)據(jù)成員:數(shù)據(jù)成員:notBefor證書有效期開始的時間notAfter證書有效期結(jié)束

14、的時間3.5 初始化證書信息初始化證書信息類名稱:類名稱:JIT_CERTDEVPARAM(保留未用)功能功能:存儲了從非數(shù)據(jù)流形式初始化證書時所需要的信息聲明:聲明: public class JIT_CERTDEVPARAM public byte szDevInfo; public byte szPWD; public JIT_CERTDEVPARAM() 數(shù)據(jù)成員:數(shù)據(jù)成員:szDevInfo 描述證書存儲的描述串。描述串由兩部分組成。第一部分是存儲介質(zhì)描述符,第二部分是證書存儲路徑。存儲介質(zhì)描述符:“file:/”表示證書的存儲介質(zhì)是磁盤。“usb:/”表示證書的存儲介質(zhì)是 USB

15、接口設(shè)備?!癱om1:/”表示證書的存儲介質(zhì)是 COM 接口設(shè)備。證書存儲路徑:表示證書存儲的位置和名字例如:“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 中的常量。在本文檔中引用常量時直接引

16、用常量名。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 MULITYFIL

17、E_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 數(shù)據(jù)類型定義數(shù)據(jù)類型定義; ;Base64 類型 public static intDATA_TYPE_BASE64=0;Bin 類型 public static intDATA_TYPE_BIN=

18、1;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

19、 包含私鑰證書文件 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;服務(wù)器證書 public static intCERT_USE_TYP

20、E_SERVER=3;CA 證書 public static intCERT_USE_TYPE_CA =4;4.1.74.1.7 證書狀態(tài)定義證書狀態(tài)定義正常狀態(tài) public static intCERT_STATUS_NOMAL =0;證書已注銷 public static intCERT_STATUS_REVOKE =1;未知狀態(tài) public static intCERT_STATUS_UNKNOWN=2;4.1.84.1.8 CRLCRL 驗證證書方式驗證證書方式在線驗證證書 public static intVERIFY_MODE_ONLINE =0;離線驗證證書 public s

21、tatic 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_

22、TYPE_USB =1;COM 接口設(shè)備存儲 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;SHA1With

23、RSA 簽名驗證 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 sta

24、tic 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; public static int CERT_EXT_OID_INSURANCENUM=12861172; public s

25、tatic int CERT_EXT_OID_ORGANIZATIONCODE=12861173; public static int CERT_EXT_OID_ICREGNUM =12861174; public static int CERT_EXT_OID_TAXNUM =12861175; 4.2 錯誤代碼錯誤代碼成功public static intCT_SUCCESS=0參數(shù)錯誤public static intCT_ERR_PARAM =-9000內(nèi)存錯誤public static intCT_ERR_MEMORY=-9001內(nèi)存分配少public static intCT_ER

26、R_BUFFER_TOO_SMALL=-9090加密庫初始化錯誤public static intCT_ERR_CRYPTODEV_INIT=-9999不能打開加密庫public static intCT_ERR_CRYPTO_SESSION = -9002不能訪問加密設(shè)備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 =

27、-9005取證書狀態(tài)失敗public static intCT_ERR_GET_CERT_STATUS = -9006OCSP 初始化錯誤public static intCT_ERR_OCSP_INIT = -9007 LDAP 錯誤public static intCT_ERR_ACCESS_LDAP = -9008 CRL 不完整public static intCT_ERR_CRL_NOT_INTEGRITY = -9009證書頒發(fā)者或主題錯誤public static intCT_ERR_ISSUER_OR_SUBJECT = -9010 CRL 引擎未初始化public stati

28、c 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 CRL 初始化錯誤public static intCT_ERR_CRL_INIT = -9015口令錯誤public static intCT_ERR_PWD = -9016打開文件錯誤public

29、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

30、密鑰不存在 public static intCT_ERR_KEY_NO_EXIST = -9023不支持的算法public static intCT_ERR_ALGO_NOT_SUPPORT = -9024數(shù)據(jù)長度不匹配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_V

31、ERIFY_SIGNATURE =-9028加密失敗public static intCT_ERR_ENCRYPT =-9029 解密失敗public static intCT_ERR_DECRYPT =-9030產(chǎn)生 MAC 失敗public static intCT_ERR_MAC =-9031 驗證 MAC 失敗public static intCT_ERR_VERIFY_MAC =-9032產(chǎn)生密鑰失敗public static intCT_ERR_GENERATEKEY =-9033 產(chǎn)生摘要失敗public static intCT_ERR_DIGEST =-9034數(shù)據(jù)格式錯誤p

32、ublic static intCT_ERR_DATA_FORMAT =-9040驗證模式錯誤public static intCT_ERR_VERIFY_MODE =-9041Email 地址不存在public static intCT_ERR_NO_EMAIL_ADDRESS =-9042/cryptodevice.ini 文件不存在public static intCT_ERR_NO_CRYPT_INI =-9043jitocsp.ini 文件不存在public static intCT_ERR_NO_OCSP_INI =-9044jcaapi.ini 文件不存在public stati

33、c intCT_ERR_NO_JCAAPI_INI =-9045card.ini 文件不存在public static intCT_ERR_NO_CARD_INI =-9046MultiDeviceCard.ini 文件不存在public static intCT_ERR_NO_MULCARD_INI =-9047MultiDeviceFile.ini 文件不存在public static intCT_ERR_NO_MULFILE_INI =-9048初始化 LDAP 錯誤public static intCT_ERR_LDAP_INIT =-9049LDAP 引擎未初始化public sta

34、tic intCT_ERR_LDAP_ENGINE_NOT_INIT =-9050產(chǎn)生隨機數(shù)失敗public static intCT_ERR_GEN_RANDOM =-9051 沒有匹配的 OIDpublic static intCT_ERR_OID_NO_MATCH =-9053 證書初始化錯誤 public static intCT_ERR_CERT_INIT =-9081引擎初始化錯誤 public static intCT_ERR_ENGINE_INIT =-90805 5函數(shù)說明函數(shù)說明5.1 類類 JIT_Engine這個類提供初始化 JIT_CA30 應(yīng)用 API 引擎的功能。

35、用戶在使用 JIT_CA30 應(yīng)用API 的其它功能前,必須初始化引擎。該引擎在一個程序中只能初始化一次。它提供以下功能初始化方法。5.1.15.1.1 構(gòu)造函數(shù)構(gòu)造函數(shù)JIT_Engine聲明:聲明:public JIT_Engine(byte bWorkpath)參數(shù):參數(shù):in sWorkPathJIT_CA30 應(yīng)用 API 的工作路徑。該路徑下存放需要的配置文件和 CRL根證書等。這個路徑必須是絕對路徑。這個路徑不能為 NULL。返回值:返回值:由于構(gòu)造方法無返回值,所以用戶在初始化引擎后,調(diào)用 getErrcode()方法返回引擎是否初始化成功。示例:示例:byte bWorkPa

36、th = null;bWorkPath =”配置文件路徑”JIT_Engine Engine = null;Engine = new JIT_Engine(bWorkPath); iRet = Engine.getErrcode();if(iRet =0)/*引擎初始化成功*/else/*引擎初始化失敗,返回相應(yīng)的錯誤碼*/Engine.delete();相關(guān)主題相關(guān)主題GetLastErrDelete5.1.25.1.2 獲取錯誤信息獲取錯誤信息 getErrcode聲明:聲明:public int getErrcode()參數(shù):參數(shù):無返回值:返回值:函數(shù)成功時返回 0,失敗時返回錯誤碼示

37、例:示例:5.1.35.1.3 釋放引擎資源釋放引擎資源 delete聲明:聲明:public void delete();參數(shù):參數(shù):無返回值:返回值:無示例:示例:5.2 類類 JIT_OCSP這個類提供通過 OCSP 在線查詢證書狀態(tài)的功能。5.2.15.2.1 構(gòu)造方法構(gòu)造方法JIT_OCSP聲明:聲明: public int JIT_OCSP( JIT_Engine pEng, JIT_Certificate pRootCert, JIT_Certificate pServerCert)參數(shù):參數(shù):in pEngJIT_CA30 應(yīng)用 API 引擎。用戶先構(gòu)造一個 JIT_Engin

38、e 的實例,然后將對象傳遞給方法。in pRootCertCA 的證書對象,必須先初始化 CA 證書。此參數(shù)必須非空。pServerCertOCSP 服務(wù)器證書,此參數(shù)保留(置為 null) 。返回值:返回值:由于構(gòu)造方法無返回值,調(diào)用 getErrcode()方法返回錯誤碼。注釋:注釋:在參數(shù) pRootCert 中指明 CA 的證書,是用來驗證用戶要在線查詢的證書是否是由 pRootCert 參數(shù)指定的 CA 簽發(fā)的。示例:示例: .初始化引擎JIT_OCSP OCSP = null;JIT_Certificate cerRootCert = null; 初始化 CA 根證書OCSP =

39、new JIT_OCSP(Engine, cerRootCert, null); iRet = OCSP.getErrCode(); if (0 != iRet) 初始化引擎失敗 else 初始化引擎成功 OCSP.delete();相關(guān)主題:相關(guān)主題:GetLastErrJIT_CertificateDelete5.2.25.2.2 查詢證書狀態(tài)查詢證書狀態(tài)getCertStatus聲明:聲明:public int (JIT_Certificate pCert, int iCertType)參數(shù):參數(shù):in pCert輸入用戶要在線查詢的證書對象,必須先初始化該證書。此參數(shù)必須非空。in i

40、CertType輸入用戶要在線查詢的證書的類型。如果參數(shù) pCert 中指定的證書是雙證書。則在參數(shù) nCertType 中指明要查詢的證書。nCertType證書類型證書類型數(shù)值數(shù)值CERT_SN_TYPE_SIGN簽名證書1CERT_SN_TYPE_ENC加密證書2返回值:返回值:證書狀態(tài)或者錯誤代碼常量定義常量定義證書狀態(tài)證書狀態(tài)數(shù)值數(shù)值CERT_STATUS_NOMAL表示證書有效0CERT_STATUS_REVOKE表示證書被注銷1CERT_STATUS_UNKNOWN表示證書狀態(tài)未知2其他錯誤代碼示例:示例:JIT_Certificate cerEncCert = null;初始化

41、證書iRet = OCSP.getCertStatus(cerEncCert, cerEncCert.getCertType(); if (0 iRet) 查詢證書狀態(tài)失敗 else 返回證書狀態(tài) 相關(guān)主題:相關(guān)主題:JIT_Certificate5.2.35.2.3 獲取錯誤信息獲取錯誤信息 getErrcode聲明:聲明:public int getErrcode()參數(shù):參數(shù):無返回值:返回值:函數(shù)成功時返回 0,失敗時返回錯誤碼示例:示例:5.2.45.2.4 釋放釋放 OCSPOCSP 資源資源 delete聲明:聲明:public void delete();參數(shù):參數(shù):無返回值:

42、返回值:無示例:示例:5.3 類類 JIT_CRL這個類提供通過 CRL 驗證證書狀態(tài)的功能。可以通過在線或離線方式驗證5.3.15.3.1 構(gòu)造方法構(gòu)造方法 JIT_CRL聲明:聲明:public JIT_CRL(JIT_Engine pEng, JIT_CRLPARAM stCRLInfo)參數(shù):參數(shù):inpEngJIT_CA30 應(yīng)用 API 引擎。用戶先構(gòu)造一個 JIT_Engine 的實例,然后將對象傳遞給方法。instCRLInfoJIT_CRLPARAM 類的引用。詳見 JIT_CRLPARAM 類的定義。返回值:返回值:由于構(gòu)造方法無返回值,調(diào)用 getErrcode()方法返

43、回錯誤碼。注釋:注釋:此方法初始化通過 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() ;相關(guān)主題:相關(guān)主題: delete getEr

44、rCode5.3.25.3.2 獲取獲取 CRLCRL 驗證證書的方式驗證證書的方式 getModegetMode getMode聲明:聲明:public int getMode()參數(shù):參數(shù):無返回值返回值: CRL 驗證證書的方式。pnMode狀態(tài)狀態(tài)數(shù)值數(shù)值VERIFY_MODE_ONLINE在線0VERIFY_MODE_OFFLINE離線1其他錯誤代碼示例:示例: iRet = CRLZX.getMode(); if(0 iRet) 獲取狀態(tài)失敗 else 獲取狀態(tài)成功5.3.35.3.3 CRLCRL 驗證證書驗證證書verifyCert聲明:聲明:public int verify

45、Cert(JIT_Certificate cCert)參數(shù):參數(shù):in cCert輸入 CRL 驗證的證書(必須先初始化證書)返回值:返回值:示例:示例: JIT_Certificate cerCert = null; 初始化證書 iRet = CRL.verifyCert(cerCert); if (0 iRet) 驗證失敗 else 輸出驗證狀態(tài)相關(guān)主題 JIT_Certificate5.3.45.3.4 驗證驗證 CRLCRL 簽名簽名 verifyCRL聲明:聲明:public int verifyCRL(byte bCertChain)參數(shù):參數(shù):in bCertChain 輸入簽發(fā)

46、 CRL 的根證書文件名(全路徑)。返回值:返回值: 成功返回 0,失敗返回錯誤代碼。注釋:注釋:驗證 CRL 簽名采用離線方式驗證。根證書文件必須是.p7b 文件。并且根證書 文件中的證書組必須完整。只有離線驗證證書時需要驗證 CRL,在線驗證證書不需要驗證 CRL示例:示例:byte P7BPath “根證書文件路徑”pnMode狀態(tài)狀態(tài)數(shù)值數(shù)值CERT_STATUS_NOMAL表示證書有效0CERT_STATUS_REVOKE表示證書被注銷1其他大于 0 的數(shù)未知狀態(tài)小于 0 的數(shù)錯誤代碼iRet = CRL.verifyCRL(P7BPath); if (0 != iRet) 驗證 C

47、RL 失敗 else 驗證 CRL 成功5.3.55.3.5 獲取錯誤信息獲取錯誤信息 getErrcode聲明:聲明:public int getErrcode()參數(shù):參數(shù):無返回值:返回值:函數(shù)成功時返回 0,失敗時返回錯誤碼示例:示例:5.3.65.3.6 釋放釋放 CRLCRL 資源資源 delete聲明:聲明:public void delete();參數(shù):參數(shù):無返回值:返回值:無示例:示例:5.4 類類 JIT_Certificate5.4.15.4.1 構(gòu)造方法構(gòu)造方法 JIT_Certificate聲明:聲明:通過證書路徑初始化 cer 證書public JIT_Certi

48、ficate(byte bDevinfo, byte bWorkPath) 通過證書路徑初始化 pfx 證書public JIT_Certificate(byte bDevinfo, byte bPassword, byte bWorkPath)通過內(nèi)存初始化證書public JIT_Certificate(byte certBuf, byte certPassword, byte workPath, int certType);參數(shù):參數(shù):in bDevInfo描述證書存儲的描述串。描述串由兩部分組成。第一部分是存儲介質(zhì)描述符,第二部分是證書存儲路徑。存儲介質(zhì)描述符:“file:/”表示證書

49、的存儲介質(zhì)是磁盤?!皍sb:/”表示證書的存儲介質(zhì)是 USB 接口設(shè)備且證書是 jpf 管理員證書?!癱om1:/”表示證書的存儲介質(zhì)是 COM 接口設(shè)備。 “usbcsp:/”表示證書的存儲介質(zhì)是 USB 接口設(shè)備且證書是用戶證書。 ”證書存儲路徑:表示證書存儲的位置和名字例如:“file:/d:mycert.jpf”表示 D 盤根目錄下的 mycert.jpf 文件“file:/d:mycert.pfx”表示 D 盤根目錄下的 mycert.pfx 文件“file:/d:mycert.cer”表示 D 盤根目錄下的 mycert.cer 文件“usb:/.jpf”表示 USB 接口中的.j

50、pf 文件“usbcsp:/.2cer”表示 USB 接口中用戶證書文件文件 注意:Key 中用戶證書文件只支持雙證(簽名證書,加密證書在同一 key 中) ,初始化時默認兩個一起初始化成一個證書實例,使用時自動進行證書用法的判斷,不需要用戶處理。in bPWD訪問存儲介質(zhì)的口令。in bWorkPathIT_CA30 應(yīng)用 API 的工作路徑。這個路徑必須是絕對路徑。這個路徑不能為NULL。incertBuf證書內(nèi)容緩沖區(qū)。incertType證書擴展名類型。取值如下:證書類型標識證書類型標識后綴后綴數(shù)值數(shù)值CERT_EXP_TYPE_JPFJPF 證書0CERT_EXP_TYPE_PFXP

51、FX 證書1CERT_EXP_TYPE_CERCER 證書2返回值:返回值:由于構(gòu)造方法無返回值,調(diào)用 getErrcode()方法返回錯誤碼。注釋:注釋:通過內(nèi)存空間初始化證書需要將證書讀入內(nèi)存或通過網(wǎng)絡(luò)獲得證書內(nèi)容。初始化 pfx 證書時,密碼項可以設(shè)為 null示例:示例:JIT_Certificate cerRootCert null bytecerCertPath “證書路徑” byte bWorkPath “工作路徑” byte bpassword “證書密碼”cerRootCert = new JIT_Certificate(cerCertPath, bWorkPath);iRe

52、t = cerRootCert.getErrCode();if (0 iRet) 初始化證書失敗else 初始化證書成功cerRootCert = new JIT_Certificate(cerCertPath, bpassword,bWorkPath);iRet = cerRootCert.getErrCode();if (0 iRet) 初始化證書失敗else 初始化證書成功byte Certbuffer = “證書內(nèi)容”int CertType 證書類型cerRootCert = new JIT_Certificate(Certbuffer, bpassword,bWorkPath,Ce

53、rtType);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.getErr

54、Code(); if (0 iRet) 初始化 USBKey 證書失敗 else 初始化 USBKey 證書成功 USBCert.delete();相關(guān)主題:相關(guān)主題:getErrCodedelete5.4.25.4.2 獲取證書中獲取證書中 eMaileMail getMail聲明:聲明:public byte getMail() 參數(shù):參數(shù): 無返回值:返回值:證書主題中的 e_mail 地址如果證書中沒有 e_mail 地址,返回值為 null示例:示例: JIT_Certificate pfxCert null 初始化證書pfxCert.getMail()5.4.35.4.3 獲取證書

55、頒發(fā)者獲取證書頒發(fā)者 getIssuer聲明:聲明:public byte getIssuer()參數(shù):參數(shù): 無返回值:返回值:證書主題中的頒發(fā)者信息示例:示例: JIT_Certificate pfxCert null 初始化證書pfxCert. getIssuer ()5.4.45.4.4 獲取證書序列號獲取證書序列號 getCertSN聲明:聲明:public byte getCertSN(int nCertType)參數(shù):參數(shù):innCertType輸入證書的密鑰用法類型。 注意:如果證書是文件證書(注意:如果證書是文件證書(.cer,.pfx)此處取值為)此處取值為1 如果證書是如

56、果證書是key中證書或中證書或jpf證書用以下參數(shù)獲取,證書用以下參數(shù)獲取, 證書類型標識證書類型標識類型類型數(shù)值數(shù)值CERT_SN_TYPE_SIGN簽名證書1CERT_SN_TYPE_ENC加密證書2 返回值:返回值: 證書序列號示例:示例: JIT_Certificate pfxCert null 初始化證書pfxCert. getCertSN ()5.4.55.4.5 獲取證書主題獲取證書主題 getSubject聲明:聲明:public byte getSubject()參數(shù):參數(shù): 無返回值:返回值:證書主題信息示例:示例: JIT_Certificate pfxCert null

57、 初始化證書pfxCert. getSubject ()5.4.65.4.6 獲取證書版本號獲取證書版本號 getVer聲明:聲明:public int getVer() 參數(shù):參數(shù): 無返回值:返回值:參數(shù)返回 1,版本 1 的證書參數(shù)返回 2,版本 2 的證書參數(shù)返回 3,版本 3 的證書示例:示例: JIT_Certificate pfxCert null 初始化證書pfxCert. getVer()5.4.75.4.7 獲取證書有效期獲取證書有效期 getValidity聲明:聲明:public valid_st getValidity(int nCertType)參數(shù):參數(shù):nCer

58、tType輸入證書的密鑰用法類型。 注意:如果證書是文件證書(注意:如果證書是文件證書(.cer,.pfx)此處取值為)此處取值為1 如果證書是如果證書是key中證書或中證書或jpf證書用以下參數(shù)獲取,證書用以下參數(shù)獲取, 證書類型標識證書類型標識類型類型數(shù)值數(shù)值CERT_SN_TYPE_SIGN簽名證書1CERT_SN_TYPE_ENC加密證書2返回值:返回值:返回值是證書的有效期。詳見 valid_st 類的定義。示例:示例: JIT_Certificate pfxCert null 初始化證書pfxCert. getValidity()5.4.85.4.8 獲取證書的應(yīng)用類型獲取證書的應(yīng)

59、用類型getCertType聲明:聲明:public int getCertType()參數(shù):參數(shù):無返回值:返回值:獲取證書的應(yīng)用類型。返回值是證書的應(yīng)用類型。示例:示例:JIT_Certificate pfxCert null 初始化證書pfxCert. getCertType()5.4.95.4.9 獲取證書編碼獲取證書編碼( (二進制二進制) ) getCert聲明:聲明:public byte getCert( int nCertType)參數(shù):參數(shù):innCertType:輸入證書的密鑰用法類型。 注意:如果證書是文件證書(注意:如果證書是文件證書(.cer,.pfx)此處取值為)

60、此處取值為1 如果證書是如果證書是key中證書或中證書或jpf證書用以下參數(shù)獲取,證書用以下參數(shù)獲取, 證書類型標識證書類型標識類型類型數(shù)值數(shù)值CERT_SN_TYPE_SIGN簽名證書1CERT_SN_TYPE_ENC加密證書2 返回值返回值: 正確返回證書內(nèi)容(只提取出公鑰證書) ,錯誤返回 NULL5.4.105.4.10獲取證書的獲取證書的個人身份標識碼個人身份標識碼 GetIdCode聲明:聲明:public byte GetIdCode(int iIDType)參數(shù):參數(shù):in iIDType證書類型標識證書類型標識類型類型數(shù)值數(shù)值CERT_USE_TYPE_SINGLE個人單證書

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論