nCipher在java中使用KeySafe生成的AES密钥

时间:2015-07-06 03:57:16

标签: java encryption-symmetric nshield

我们从nCipher提供的 KeySafe实用程序生成 AES密钥。 我们如何使用此密钥加密数据?我们可以从KeySafe生成的Key创建KeyStore吗?

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

1 个答案:

答案 0 :(得分:2)

nCipher密钥具有一种应用类型,用于标识为其生成的受支持的API中的哪一个。 JCE提供程序的密钥具有应用程序类型 jcecsp 。 KeySafe无法生成 jcecsp 键,因此您可能拥有 simple pkcs11 等类型的键。您有几种选择:

  • 如果您有 pkcs11 键,则可以使用JDK附带的SunPKCS11 Provider作为KeyStore访问PKCS#11插槽。 Google提供此提供商并联系Thales支持部门提供有关配置语言的一些提示。
  • 如果您的密钥不是 pkcs11 并且您想要转到上述路线,则可以将您的密钥重新定位到 pkcs11 。我实际上不知道KeySafe是否可以这样做,但命令行实用程序generatekey可以。
  • 无论应用类型如何,您都可以使用Pure Java nCore和NFKM API直接访问您的密钥。如果您有CipherTools SDK,那么您将找到足够的示例代码。
  • 一旦由本机API加载,您就可以将加载的密钥对象转换为JCE密钥对象,您可以将其存储在nCipher.sworld密钥库中。 CipherTools示例代码中有一个Interop示例,暗示了如何执行此操作。
  • 如果实际密钥对您没有价值(意味着您愿意再生成另一个密钥),请使用Java的KeyTool直接在nCipher.sworld KeyStore的上下文中生成密钥。通过nCipherKM提供商。产品手册显示了如何正确调用KeyTool。你甚至不需要这个SDK。

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