gpt4 book ai didi

java - 如何使用 JAVA PKCS11 IAIK 在 SOFTHSM2 中进行 key 包装期间切换到 CKM_AES_KEY_WRAP_PAD

转载 作者:行者123 更新时间:2023-11-30 05:39:02 24 4
gpt4 key购买 nike

我正在利用 SoftHSM 在 Java 中生成等距 key 。目前,我需要使用 IAIK PKCS11 库 (JAVA) 中提供的wrappKey 函数来包装私钥,并且我在 cipher.getInstance() 中的 key 包装操作遇到问题。应用程序抛出 CKR_MECHANISM_INVALID 并且网络上的所有现有信息似乎都没有给出如何解决此问题的合适答案。

目前看来,这是 IAIK 机制的问题,因为它目前使用 CKM_AES_CBC_PAD 算法进行 key 包装。

目前尚不清楚如何在 CKM_AES_CBC_PAD 和针对 SoftHSM 的 github 页面上的问题创建的 github 问题中建议的选项之间进行切换,请参阅:https://github.com/opendnssec/SoftHSMv2/issues/229https://github.com/opendnssec/SoftHSMv2/issues/405 .

有两件事是明确的:这是一个已知问题,作者建议使用 CKM_AES_KEY_WRAP、CKM_AES_KEY_WRAP_PAD、CKM_RSA_PKCS 或 CKM_RSA_PKCS_OAEP。但是,我无法使用建议的选项找到示例,并且经过数小时的挖掘库后,我认为在这里提问更容易。

初始问题:我想在 key 转换过程中将机制从 CKM_AES_CBC_PAD 切换到 CKM_AES_KEY_WRAP

<小时/>

更新:经过进一步调试,似乎问题可能比切换机制还要复杂。因此,我更想知道:

新问题:在 JAVA 中使用上述列出的技术实现 key 包装的最佳方法是什么

最佳答案

我们发现它不适用于 Cipher 接口(interface),因为 IAIK 默认情况下尝试使用软 hsm 不支持的方法。我们必须使用低级 IAIK 方法来包装和解开。在低级方法中,您可以更改如下机制:

mechanism = CKM_AES_KEY_WRAP_PAD;
session.wrapKey(mechanism, secretKetObject, privateKeyObject);

关于java - 如何使用 JAVA PKCS11 IAIK 在 SOFTHSM2 中进行 key 包装期间切换到 CKM_AES_KEY_WRAP_PAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56056111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com