国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

JDK5.0環(huán)境下配置PKCS#11

2019-11-17 06:25:32
字體:
來源:轉載
供稿:網(wǎng)友

  這篇文章不介紹具體的編程方法,而是針對PKCS#11的初學者介紹如何在JDK5.0環(huán)境中配置PKCS#11,具體的編程方法可以關注我的下一篇文章,或者參考PKCS#11手冊以及SUN MicroSystem公司關于PKCS#11的手冊。


需要的環(huán)境:

JDK5.0版本已經(jīng)可以支持對PKCS#11的操作,這里就介紹一下如何實現(xiàn)在JDK5.0環(huán)境下配置PKCS#11,并且根據(jù)不同的操作系統(tǒng)提供相應的解決方案。

首先介紹一下配置環(huán)境:JDK5.0,支持標準PKCS#11的設備(包括Smartcard,加密卡等等),支持PKCS#11的系統(tǒng)(WINDOWS/linux/UNIX等),以及設備供給商提供的標準PKCS#11接口。(注:PKCS#11接口只是一個動態(tài)庫文件,其中封裝了PKCS#11標準函數(shù),在不同的平臺上其格式不同,例如在WINDOWS上其格式是*.DLL,在LINUX上其形式是*.so)

配置方法:

在JDK5.0環(huán)境中配置訪問PKCS#11的方法非常簡單:只用編輯一個*.CFG文件就可以了。因為JDK5.0中已經(jīng)做好了對PKCS#11的橋接。具體方法是:

1、在*.CFG文件中編輯好相應的參數(shù)和對應的值。

2、在java語言中用PRovider p = new sun.security.pkcs11.SunPKCS11(*.cfg文件的絕對路徑)

3、進行相應的操作,具體的操作會在我的下一片文章中介紹。

具體*.cfg的內容以及格式是:

1、name=value 其中name是指明后面的value是該PKCS#11的名稱。

2、library=*.dll/*.so的絕對路徑 library后面是指明標準PKSC#11接口的絕對地址

3、description=value是該PKCS#11的注釋,可以通過前面的Provider p的getInfo方法得到其值

4、slotListIndex = value/slot = value 這個標示比較非凡,假如該PKCS#11的硬件提供商提供了多個可以支持該PKCS#11的設備,那么不同設備之間必須通過不同的slot來區(qū)分,那么,在使用的時候必須明確的了解具體的硬件對應的slot的值,其中slotListIndex和slot中只用一個即可。假如在配置文件中不指明的話,那么默認的是slot=0。這時假如提供商提供了多個硬件設備,則你的程序中智能調用slot=0的那個設備。所以建議在編輯該*.cfg時添加該參數(shù)。

5、其余的參數(shù)并不是很常用,欲具體了解可以訪問http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.Html

解決方案:

跨平臺時JAVA語言的一大特性,那么PKCS#11也應做到跨平臺操作。當然,前提是該實現(xiàn)了PKCS#11接口的硬件可以跨平臺(專有驅動或者是無驅型)。但由于*.cfg中指定PKCS#11接口的地址是絕對地址,所以假如想要做到跨平臺就要動態(tài)的產(chǎn)生cfg文件了。

具體的解決方案如下:

1、首先確認該硬件可以支持當前的系統(tǒng)。

2、確認已經(jīng)安裝了相應的驅動(無驅型設備的驅動是由系統(tǒng)提供的)

3、確認該硬件的slotListIndex或者slot值

4、使用System.getProperty(“java.home”);獲得路徑,做為存儲*.CFG文件的目錄。取名為cfgpath

5、用JFileChooser來選擇PKCS#11文件,從而獲得library的值,取名為LibPath

6、建立一個FileOutputStream來存儲*.CFG文件,分別寫入name的值,library的值(LibPath)description的值和slotListIndex的值。這樣,就可以動態(tài)的創(chuàng)建cfg文件了。

7、然后 就可以用Provider p = new sun.security.pkcs11.SunPkcs11(cfgpath);來加載文件,從而達到通過PKCS11來訪問硬件的目的。

前面的4~7步只是一個demo,具體實施時可以根據(jù)具體的情況來改變。到此JDK5.0環(huán)境下配置PKCS#11就已經(jīng)介紹完了。假如希望了解JAVA語言中的PKCS#11操作,請關注下一篇文章。

請尊重作者原創(chuàng),轉發(fā)時請保留作者信息

作者:鮑冠辰, 軟件加密工程師  就職于 飛天誠信科技有限公司


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沭阳县| 巴楚县| 左权县| 鱼台县| 日喀则市| 昌都县| 九龙坡区| 理塘县| 慈溪市| 玛沁县| 临城县| 金秀| 洪雅县| 思南县| 马山县| 遵义市| 科技| 赤峰市| 卢湾区| 泰州市| 松滋市| 永登县| 兴仁县| 凌源市| 固安县| 吉安县| 郓城县| 远安县| 拉萨市| 五原县| 通海县| 克什克腾旗| 济阳县| 南雄市| 阿鲁科尔沁旗| 鹤山市| 同德县| 阿城市| 仙游县| 榆中县| 霸州市|