java 使用OpenJDK 8动态初始化SunPKCS11提供程序失败

zhte4eai  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(215)

我尝试使用OpenJDK 8 1动态初始化SunPKCS11提供程序。8.0_322(在Linux上),但得到以下异常:
java.lang.ExceptionInInitializerError at AES256.init(AES256.java:26)在AES256。加密(AES256.java:76)在AES256Example.main(AES256示例。java:20)原因:java.lang.NullPointerException at sun.security.pkcs11.SunPKCS11.(SunPKCS11.java:67)
导致此问题的代码部分:

File homedir = new File(System.getProperty("java.home"));
File fileToRead = new File(homedir, "/lib/security/nss.fips.cfg");
Provider p = new sun.security.pkcs11.SunPKCS11(fileToRead.getPath()); <<< this line causes exception

nss的内容。fips.cfg:

name = NSS-FIPS
nssLibraryDirectory = /usr/lib64
nssSecmodDirectory = sql:/etc/pki/nssdb
nssDbMode = readOnly
nssModule = fips

如果我用相同的nss初始化SunPKCS11。fips.cfg它工作正常。SunPKCS11的提供程序是libsoftokn3。所以。
我做错了什么?
这个问题的解决方案是什么?

xdnvmnnf

xdnvmnnf1#

非常感谢你的报价,但我找到了这个问题的原因。由于在Suse 15上更改了SunPKCS11类的构造函数,因此发生了此问题。在这个构造函数中,它们试图确定系统fips是否已启用,但用于执行此检查的对象未初始化。此对象在“Security”类中初始化。

相关问题