JDK5.0环境下配置PKCS#11
来源:互联网 发布:我是歌手 知乎 编辑:程序博客网 时间:2024/06/05 03:39
JDK5.0环境下配置PKCS#11
发表日期:2008-1-5
新浪微博 QQ空间 QQ微博 百度搜藏 腾讯朋友 QQ收藏 百度空间 人人网 开心网
这篇文章不介绍具体的编程方法,而是针对PKCS#11的初学者介绍如何在JDK5.0环境中配置PKCS#11,具体的编程方法可以关注我的下一篇文章,或者
参考PKCS#11手册以及SUN MicroSystem公司关于PKCS#11的手册。
需要的环境:
JDK5.0版本已经可以支持对PKCS#11的操作,这里就介绍一下如何实现在JDK5.0环境下配置PKCS#11,并且根据不同的操作系统提供相应的解决方案。
首先介绍一下配置环境:JDK5.0,支持标准PKCS#11的设备(包括Smartcard,加密卡等等),支持PKCS#11的系统(WINDOWS/linux/UNIX等),以及设备
供给商提供的标准PKCS#11接口。(注:PKCS#11接口只是一个动态库文件,其中封装了PKCS#11标准函数,在不同的平台上其格式不同,例如在WINDOWS
上其格式是*.DLL,在LINUX上其形式是*.so)
配置方法:
在JDK5.0环境中配置访问PKCS#11的方法非常简单:只用编辑一个*.CFG文件就可以了。因为JDK5.0中已经做好了对PKCS#11的桥接。具体方法是:
1、在*.CFG文件中编辑好相应的参数和对应的值。
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来区分,那么,在使用的时候必须明确的了解具体的硬件对应的slot的值,其中slotListIndex和slot中只用一个即可。假如在配置
文件中不指明的话,那么默认的是slot=0。这时假如提供商提供了多个硬件设备,则你的程序中智能调用slot=0的那个设备。所以建议在编辑该*.cfg时
添加该参数。
5、其余的参数并不是很常用,欲具体了解可以访问http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.Html
解决方案:
跨平台时JAVA语言的一大特性,那么PKCS#11也应做到跨平台操作。当然,前提是该实现了PKCS#11接口的硬件可以跨平台(专有驱动或者是无驱型)。
但由于*.cfg中指定PKCS#11接口的地址是绝对地址,所以假如想要做到跨平台就要动态的产生cfg文件了。
具体的解决方案如下:
1、首先确认该硬件可以支持当前的系统。
2、确认已经安装了相应的驱动(无驱型设备的驱动是由系统提供的)
3、确认该硬件的slotListIndex或者slot值
4、使用System.getProperty(“java.home”);获得路径,做为存储*.CFG文件的目录。取名为cfgpath
5、用JFileChooser来选择PKCS#11文件,从而获得library的值,取名为LibPath
6、建立一个FileOutputStream来存储*.CFG文件,分别写入name的值,library的值(LibPath)description的值和slotListIndex的值。这样,就可以
动态的创建cfg文件了。
7、然后 就可以用Provider p = new sun.security.pkcs11.SunPkcs11(cfgpath);来加载文件,从而达到通过PKCS11来访问硬件的目的。
前面的4~7步只是一个demo,具体实施时可以根据具体的情况来改变。到此JDK5.0环境下配置PKCS#11就已经介绍完了。假如希望了解JAVA语言中的
PKCS#11操作,请关注下一篇文章。
发表日期:2008-1-5
新浪微博 QQ空间 QQ微博 百度搜藏 腾讯朋友 QQ收藏 百度空间 人人网 开心网
这篇文章不介绍具体的编程方法,而是针对PKCS#11的初学者介绍如何在JDK5.0环境中配置PKCS#11,具体的编程方法可以关注我的下一篇文章,或者
参考PKCS#11手册以及SUN MicroSystem公司关于PKCS#11的手册。
需要的环境:
JDK5.0版本已经可以支持对PKCS#11的操作,这里就介绍一下如何实现在JDK5.0环境下配置PKCS#11,并且根据不同的操作系统提供相应的解决方案。
首先介绍一下配置环境:JDK5.0,支持标准PKCS#11的设备(包括Smartcard,加密卡等等),支持PKCS#11的系统(WINDOWS/linux/UNIX等),以及设备
供给商提供的标准PKCS#11接口。(注:PKCS#11接口只是一个动态库文件,其中封装了PKCS#11标准函数,在不同的平台上其格式不同,例如在WINDOWS
上其格式是*.DLL,在LINUX上其形式是*.so)
配置方法:
在JDK5.0环境中配置访问PKCS#11的方法非常简单:只用编辑一个*.CFG文件就可以了。因为JDK5.0中已经做好了对PKCS#11的桥接。具体方法是:
1、在*.CFG文件中编辑好相应的参数和对应的值。
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来区分,那么,在使用的时候必须明确的了解具体的硬件对应的slot的值,其中slotListIndex和slot中只用一个即可。假如在配置
文件中不指明的话,那么默认的是slot=0。这时假如提供商提供了多个硬件设备,则你的程序中智能调用slot=0的那个设备。所以建议在编辑该*.cfg时
添加该参数。
5、其余的参数并不是很常用,欲具体了解可以访问http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.Html
解决方案:
跨平台时JAVA语言的一大特性,那么PKCS#11也应做到跨平台操作。当然,前提是该实现了PKCS#11接口的硬件可以跨平台(专有驱动或者是无驱型)。
但由于*.cfg中指定PKCS#11接口的地址是绝对地址,所以假如想要做到跨平台就要动态的产生cfg文件了。
具体的解决方案如下:
1、首先确认该硬件可以支持当前的系统。
2、确认已经安装了相应的驱动(无驱型设备的驱动是由系统提供的)
3、确认该硬件的slotListIndex或者slot值
4、使用System.getProperty(“java.home”);获得路径,做为存储*.CFG文件的目录。取名为cfgpath
5、用JFileChooser来选择PKCS#11文件,从而获得library的值,取名为LibPath
6、建立一个FileOutputStream来存储*.CFG文件,分别写入name的值,library的值(LibPath)description的值和slotListIndex的值。这样,就可以
动态的创建cfg文件了。
7、然后 就可以用Provider p = new sun.security.pkcs11.SunPkcs11(cfgpath);来加载文件,从而达到通过PKCS11来访问硬件的目的。
前面的4~7步只是一个demo,具体实施时可以根据具体的情况来改变。到此JDK5.0环境下配置PKCS#11就已经介绍完了。假如希望了解JAVA语言中的
PKCS#11操作,请关注下一篇文章。
- JDK5.0环境下配置PKCS#11
- JDK5.0环境下配置PKCS#11
- FC4下安装JDK5.0
- ubuntu 编译android2.2源码配置环境及jdk5(1)
- ubuntu 编译android2.2源码配置环境及jdk5(2)
- ubuntu 编译android2.2源码配置环境及jdk5(3)
- ubuntu 编译android2.2源码配置环境及jdk5(4)
- ubuntu 编译android2.2源码配置环境及jdk5(5)
- ubuntu 编译android2.2源码配置环境及jdk5(6)
- ubuntu 编译android2.2源码配置环境及jdk5(7)
- ubuntu 编译android2.2源码配置环境及jdk5
- jdk5.0 tomcat5.0配置全攻略
- jdk5.0 tomcat5.0配置全攻略
- Tomcat5.5.23 +aphache+jdk5.0+ArcIMS配置
- PKCS#11图解
- PKCS
- PKCS
- PKCS
- Codeforces Round #207 (Div. 2)C. Knight Tournament(SET也可以搞定)
- IOS内存管理总结
- 关于“ARC forbids explicit message send of release”错误
- 企业级敏捷转型系列专题之四 —— 企业转型
- 探究string类
- JDK5.0环境下配置PKCS#11
- HDU-1081 To The Max 二维最大子序列和
- 项目总结
- Python Tips, Tricks, and Idioms and Learn Python Through Public Data Hacking
- stl之map erase方法的正确使用
- 远程桌面教程及指定主机远程连接方法
- 求解器Z3(未完,更新中)
- android 调用系统图库查看指定路径的图片
- C++中的单例模式