1

我正在尝试使用供应商提供的 PKCS#11 函数与 HSM 交互。我使用以下一系列函数来生成密钥,加密和解密数据。下面的序列效果很好。

  1. C_Initialize
  2. C_OpenSession
  3. C_Login
  4. C_GenerateKey //3DES KEY
  5. C_EncryptInit
  6. C_Encrypt
  7. C_DecryptInit
  8. C_Decrypt
  9. C_Logout
  10. C_CloseSession

我的问题:

  1. 使用 C_Logout 和 C_CloseSession 后,有没有办法通过使用相同的登录凭据重新登录并再次打开会话来再次重用相同的 KEY(之前生成的)?

  2. 当我使用 C_CreateObject 时,它会创建会话对象并在使用 C_CloseSession 时将其销毁吗?

4

1 回答 1

3

问题:使用 C_Logout 和 C_CloseSession 后,有没有办法通过使用相同的登录凭据重新登录并再次打开会话来再次重用相同的 KEY(先前生成的)?

是的,只需设置CKA_TOKENCK_TRUE提供标签 usingCKA_LABEL即可使用C_FindObjects.


问题:当我使用 C_CreateObject 时,它会创建会话对象并在使用 C_CloseSession 时将其销毁吗?

嗯,是的,根据 PKCS#11 规范(v2.20、10.4、表 21):

CKA_TOKENCK_TRUE如果 object 是一个令牌对象;CK_FALSE如果对象是会话对象。默认为CK_FALSE


请注意,您的令牌可能不允许设置所有可能的属性或属性组合,并且可能具有内存和其他限制。

于 2013-12-08T23:04:54.930 回答