问题标签 [iaik-jce]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 无法使用 IAIK PKCS11 Wrapper 加载 PKCS11 驱动程序
我正在使用以下内容:
- 视窗 7 64 位
- JDK 7 64 位
- JRE 7 64位
新的有趣的 JRE 7 64 位不再支持 Sun PKCS11(它在包 'sun.security.pkcs11' 中)。最大的问题是我们公司产品的最终用户可能安装了任何版本的JRE。
所以我必须将现有的代码换成“Sun PKCS11”到“ IAIK PKCS11 Wrapper ”。IAIK 的包装器就是这样工作的:
PKI 令牌驱动程序动态链接库由 PKI USB 令牌制造商提供,实际名称为“ca2-v34.dll”。加载本机驱动程序的方法在程序员手册中描述如下:
在上面代码中标记的行引发了异常,详细信息如下:java.io.IOException: %1 is not a valid Win32 application。ca2-v34.dll
这个异常肯定意味着 IAIK 库找到了 .dll 文件,但它不兼容。我被困在这个瓶颈上。
java - How can I set the version number of iaik.x509.X509Certificate explicitly?
The documentation at this page states that
Any value may be set using the corresponding set<Value> method.
However, I am not sure how to interpret this statement. I have tried the following but none of them compile, and nor did I expect them to.
What is the correct method call to set the version number explicitly?
java - PKCS #7 加密信封签名验证错误:消息哈希
我想提交一个关于加密标准 PKCS #7 的问题。我有一个文件“PATH_DOC_NF1”,我必须创建一个 PKCS #7 加密信封。使用 KeyStore 和 AIK-JCE(基于 Java 的加密服务提供者)。
我所拥有的 X.509 证书如下:
版本:3
序列号:231944
签名算法:sha1WithRSAEncryption (1.2.840.113549.1.1.5)
发行人:CN=……,OU=…………,O=……,C=IT
有效期不早于:Fri Apr 01 09 :20:15 CEST 2011
不晚于:Tue Apr 01 09:20:13 CEST 2014
主题:CN=TRANTN59T46H703C-001,OU=……,O=…………,C=IT
Sun RSA 公钥,1024 位
模数: ……<br />公开指数:……<br />证书指纹(MD5):…………<br />证书指纹(SHA-1):…………<br />扩展:4
运行下面编写的代码:
我收到以下错误:
java.security.SignatureException:签名验证错误:消息哈希!
在 iaik.pkcs.pkcs7.SignedDataStream.verify(Unknown Source)
at message.PKCS7.main(PKCS7.java:183)
为了完整起见,我插入了创建的 Signinfo:
版本:1序列号
:231944
发行者:CN=…………,OU=…………,O=……,C=IT
摘要算法:SHA (1.3.14.3.2.26)
摘要加密算法:rsaEncryption (1.2.840.113549.1.1.1) encrypted_digest :
128 字节 [7E:B4:19: 95 : 77 ... ] 2E...
有人可以帮助我吗?
java - 如何为 pkcs11 初始化提供程序?
我想使用 nss 作为 pkcs11 的提供者,并且我正在使用 java、oracle JRE 和 ubuntu 64bit 进行编码。我尝试了 2 种不同的包装器,iaik 和 SunPKCS11,但我都遇到了同样的问题。对于我的提供者,我首先尝试使用 libnss3.so 并且每次在实例化模块中遇到 IOException。然后我使用 libsoftokn3.so 并成功实例化了一个模块。但是现在我在初始化时遇到了这个异常:“CKR_ARGUMENTS_BAD”
这是我的代码,第一个使用 iaik,第二个使用 SunPKCS11
iaiak:
SunPKCS11:
和文件“cfg”:
java - 在 Java 中使用 iaik_jce.jar 解密 pfx 或 p12 会引发无法解密 PrivateKey!例外
我从第三方获得了 iaik_jce.jar 文件。我正在使用它来解密 pfx 文件。当我调用解密 api 时,我无法解密 PrivateKey!例外。下面是我用来解密的一段代码。
下面是异常堆栈跟踪
我是否需要对使用 iaik_jce.jar 文件进行解密进行任何配置更改。
java - IAIK PCKS11Provider VS IAIK PKCS11Wrapper 密钥生成
我想了解通过 IAIK PKCS11Wrapper 生成 RSA 2048 位密钥之间的区别,我使用的是名为 的示例类GenerateKeyPair.java
,而 IAIK PKCS11Provider 也使用 IAIK PKCS11Wrapper 并通过名为 的示例类生成密钥对KeyPairGeneratorDemo.java
。
我正在使用带有 USB 令牌 ACS CryptoMate64 的上述库和类。
当我使用 PKCS11Wrapper 并加载我的 pkcs11.dll 时,一切正常。生成密钥对。
但是当我试图通过 IAIK PKCS11Provider 类做同样的事情时,它在尝试生成密钥对时抛出异常keyPair_ = keyPairGenerator.generateKeyPair();
:
这两种方法有什么区别?为什么通过 IAIK PKCS11Provider 生成密钥对会抛出 CKR_ATTRIBUTE_VALUE_INVALID?我知道这个常数在 PKCS11 标准中意味着什么,但我不完全理解为什么当 IAIK PKCS11Wrapper 成功使用它时会抛出它......
我还附上了我正在使用的两个类。
生成密钥对.java
KeyPairGeneratorDemo.java
java - IAIK PKCS#11 包装无法初始化
我正在使用来自网络的代码:
带参数:pkcs11wrapper.dll 和 VM 参数 -Djava.library.path=C:/Temp。
代码中的“C:/Temp/pkcs11wrapper.dll”不是必需的......
我得到的是:
我的 JRE 是 64 位,dll 也是 64 位(用 32 位版本替换它会给出关于错误 dll 版本的明确定义的错误)JRE 是 v1.7.0.21,iaik 包装器 v1.2.18。如果我使用 32 位 JRE 和 32 位 dll,错误是一样的。
这里有什么问题?
我得到了 iaikPkcs11Wrapper v1.3 的源代码,当在 DEBUG 模式下运行时,我到达 line : PKCS11Connector.connectToPKCS11Module(String, String) line: 92
where return new PKCS11Implementation(pkcs11ModulePath, pkcs11WrapperPath);
gets 被调用。尽管源中存在 PKCS11Implementation 类,但调试器不想跳转到构造函数代码中:
这些结果是在运行仅包含 IAIK 源和测试类的项目时实现的。
java - 使用 iaik pkcs7 EnvelopedData 进行河豚加密
我正在将我的模块从充气城堡迁移到iaik pkcs7。我需要结合 IAIK 库的 iaik.pkcs.pkcs7.EnvelopedDataStream 使用河豚、双鱼和想法加密算法。Idea 加密算法 ID 存在于 IAIK 的 AlgorithmID 类中,但不能直接实现(可能是因为密钥长度可变)。Blowfish 作为单独的密码类存在,但我无法找到一种将它与封装数据一起使用的方法(这很重要,因为我将使用公钥加密方法)。我实际上可以使用河豚进行加密,然后使用封装数据和诸如 aes 之类的算法进行包装并发送,但在这种情况下,接收者将没有算法信息。密钥可以与接收信息一起传递。
如果有人可以向我展示基本的方式,我可能会继续。
提前致谢
阿特拉亚
java - iaik pkcs#11 包装器和 java.lang.NoSuchMethodError
我正在尝试从 iaik pkcs#11 包装器(1.3 版,最新的 atm)运行一个简单的示例代码,但随时NoSuchMethodError
待命pkcs11Module.initialize
。
异常堆栈跟踪如下
类似的代码在 Linux 上运行良好,所以我猜 pkcs11wrapper.dll 有问题。
pkcs11wrapper.dll
和siecap11.dll
在c\windows\system32
目录中,并且都是 32 位模块。
我尝试了不同的 pkcs#11 提供程序、pkcs11wrapper 的调试和发布版本,但结果是相同的。
pkcs11wrapper.dll 的调试版本生成以下输出:
智能卡附带的实用程序运行良好,opensc pkcs11-tool 也是如此。
编辑:
使用版本 1.2.17 的 pkcs11 包装库及其随附的 dll,上面的代码可以正常工作。但最初的问题仍未解决。
编辑2:
SubOptimal 建议的以下代码生成以下输出。
输出:
java - IAIK lib 验证签名数据中的异常
我使用 IAIK PKCS11 库。我想通过 USB 令牌上的证书对数据进行签名和验证。我在验证签名数据中有问题。我通过 Str_CertName(Certificate) 签署 plainData。我使用 java.security 和 iaik.pkcs。
这是我的代码: