3

我们有一个由 nCipher 提供的KeySafe Utility生成的AES 密钥。我们如何使用这个密钥来加密数据?我们可以从 KeySafe 生成的密钥创建一个 KeyStore 吗?

我通过创建空白密钥库并从 java 代码创建新密钥并保存在密钥库中找到了示例,但在 KeySafe 上找不到任何内容。从 java 代码生成新的 Key 对我们来说是不可行的。

4

1 回答 1

3

nCipher 密钥具有一种应用类型,可识别它们是为哪一个受支持的 API 生成的。JCE 提供程序的密钥具有应用类型jcecsp。KeySafe 无法生成jcecsp密钥,因此您可能拥有simplepkcs11或其他类型的密钥。你有几个选择:

  • 如果您有pkcs11密钥,则可以使用 JDK 附带的 SunPKCS11 Provider 来访问 PKCS#11 插槽作为 KeyStore。谷歌这个提供商并联系泰雷兹支持以获得一些关于配置语言的提示。
  • 如果您的密钥不是pkcs11并且您想走上述路线,您可以将您的密钥重新定位到pkcs11。我实际上不知道 KeySafe 是否可以做到这一点,但命令行实用程序 generatekey 可以。
  • 无论应用程序类型如何,您都可以使用 Pure Java nCore 和 NFKM API 直接访问您的密钥。如果您有 CipherTools SDK,您会发现大量的示例代码。
  • 一旦被本机 API 加载,您可以将加载的密钥对象转换为 JCE 密钥对象,您可以将其存储在 nCipher.sworld KeyStore 中。CipherTools 示例代码中有一个 Interop 示例,它提示您如何执行此操作。
  • 如果实际密钥对您没有价值(意味着您愿意生成另一个开始使用),请使用 Java 的 KeyTool 通过 nCipherKM Provider 在 nCipher.sworld KeyStore 的上下文中直接生成您的密钥。产品手册展示了如何正确调用 KeyTool。您甚至不需要 SDK。

如果您遇到任何问题,请联系泰雷兹支持。

于 2015-07-07T12:17:42.017 回答