aws cloudhsm C_FindObjectsInit CKR_ATTRIBUTE_TYPE_INVALID
aws cloudhsm C_FindObjectsInit CKR_ATTRIBUTE_TYPE_INVALID
使用 iaik.pkcs.pkcs11 包装器与 ubuntu.
上的 cloudhsm 通信
当试图检索 class RSAPublicKey
的所有 public 键时,我得到这个异常:
iaik.pkcs.pkcs11.wrapper.PKCS11Exception: CKR_ATTRIBUTE_TYPE_INVALID
at iaik.pkcs.pkcs11.wrapper.PKCS11Implementation.C_FindObjectsInit(Native Method)
at iaik.pkcs.pkcs11.Session.findObjectsInit(Session.java:642)
使用我设法找到的日志记录 pkcs11 包装器:
0x00002b8c : 0x438b4700 : Calling C_FindObjectsInit
0x00002b8c : 0x438b4700 : Input
0x00002b8c : 0x438b4700 : hSession: 10240
0x00002b8c : 0x438b4700 : pTemplate: 0x7f2a58031f60
0x00002b8c : 0x438b4700 : ulCount: 4
0x00002b8c : 0x438b4700 : *** Begin attribute template ***
0x00002b8c : 0x438b4700 : Attribute 0
0x00002b8c : 0x438b4700 : Attribute: 256 (CKA_KEY_TYPE)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a58011c10
0x00002b8c : 0x438b4700 : ulValueLen: 8
0x00002b8c : 0x438b4700 : *pValue: HEX(0000000000000000)
0x00002b8c : 0x438b4700 : Attribute 1
0x00002b8c : 0x438b4700 : Attribute: 1073743360 (CKA_ALLOWED_MECHANISMS)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a58031ed0
0x00002b8c : 0x438b4700 : ulValueLen: 32
0x00002b8c : 0x438b4700 : *pValue: HEX(4300000000000000440000000000000045000000000000000D00000000000000)
0x00002b8c : 0x438b4700 : Attribute 2
0x00002b8c : 0x438b4700 : Attribute: 264 (CKA_SIGN)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a5802f450
0x00002b8c : 0x438b4700 : ulValueLen: 1
0x00002b8c : 0x438b4700 : *pValue: HEX(01)
0x00002b8c : 0x438b4700 : Attribute 3
0x00002b8c : 0x438b4700 : Attribute: 0 (CKA_CLASS)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a5802f470
0x00002b8c : 0x438b4700 : ulValueLen: 8
0x00002b8c : 0x438b4700 : *pValue: HEX(0300000000000000)
0x00002b8c : 0x438b4700 : *** End attribute template ***
0x00002b8c : 0x438b4700 : Returning 18 (CKR_ATTRIBUTE_TYPE_INVALID)
但无法理解问题出在哪里。 cloudhsm 也应该适当地允许这些机制。
如果我正确阅读了 pkcs11-logger 的输出,那么这就是您的搜索模板:
CKA_CLASS = CKO_PRIVATE_KEY
CKA_KEY_TYPE = CKK_RSA
CKA_SIGN = CK_TRUE
CKA_ALLOWED_MECHANISMS = { CKM_SHA256_RSA_PKCS_PSS, CKM_SHA384_RSA_PKCS_PSS, CKM_SHA512_RSA_PKCS_PSS, CKM_RSA_PKCS_PSS }
我觉得完全没问题。
不幸的是,PKCS#11 API 没有提供详细信息,提供的模板中的确切属性导致了 CKR_ATTRIBUTE_TYPE_INVALID
错误,但许多 PKCS#11 库支持某种内部日志记录机制,这可能会揭示真正的原因的错误。 PKCS#11 库供应商提供的文档中应包含启用日志记录所需的确切步骤。
来自 AWS 支持部门关于此问题:cloudhsm 不接受 C_FindObjectsInit
调用的任何允许的机制属性。
使用 iaik.pkcs.pkcs11 包装器与 ubuntu.
上的 cloudhsm 通信当试图检索 class RSAPublicKey
的所有 public 键时,我得到这个异常:
iaik.pkcs.pkcs11.wrapper.PKCS11Exception: CKR_ATTRIBUTE_TYPE_INVALID
at iaik.pkcs.pkcs11.wrapper.PKCS11Implementation.C_FindObjectsInit(Native Method)
at iaik.pkcs.pkcs11.Session.findObjectsInit(Session.java:642)
使用我设法找到的日志记录 pkcs11 包装器:
0x00002b8c : 0x438b4700 : Calling C_FindObjectsInit
0x00002b8c : 0x438b4700 : Input
0x00002b8c : 0x438b4700 : hSession: 10240
0x00002b8c : 0x438b4700 : pTemplate: 0x7f2a58031f60
0x00002b8c : 0x438b4700 : ulCount: 4
0x00002b8c : 0x438b4700 : *** Begin attribute template ***
0x00002b8c : 0x438b4700 : Attribute 0
0x00002b8c : 0x438b4700 : Attribute: 256 (CKA_KEY_TYPE)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a58011c10
0x00002b8c : 0x438b4700 : ulValueLen: 8
0x00002b8c : 0x438b4700 : *pValue: HEX(0000000000000000)
0x00002b8c : 0x438b4700 : Attribute 1
0x00002b8c : 0x438b4700 : Attribute: 1073743360 (CKA_ALLOWED_MECHANISMS)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a58031ed0
0x00002b8c : 0x438b4700 : ulValueLen: 32
0x00002b8c : 0x438b4700 : *pValue: HEX(4300000000000000440000000000000045000000000000000D00000000000000)
0x00002b8c : 0x438b4700 : Attribute 2
0x00002b8c : 0x438b4700 : Attribute: 264 (CKA_SIGN)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a5802f450
0x00002b8c : 0x438b4700 : ulValueLen: 1
0x00002b8c : 0x438b4700 : *pValue: HEX(01)
0x00002b8c : 0x438b4700 : Attribute 3
0x00002b8c : 0x438b4700 : Attribute: 0 (CKA_CLASS)
0x00002b8c : 0x438b4700 : pValue: 0x7f2a5802f470
0x00002b8c : 0x438b4700 : ulValueLen: 8
0x00002b8c : 0x438b4700 : *pValue: HEX(0300000000000000)
0x00002b8c : 0x438b4700 : *** End attribute template ***
0x00002b8c : 0x438b4700 : Returning 18 (CKR_ATTRIBUTE_TYPE_INVALID)
但无法理解问题出在哪里。 cloudhsm 也应该适当地允许这些机制。
如果我正确阅读了 pkcs11-logger 的输出,那么这就是您的搜索模板:
CKA_CLASS = CKO_PRIVATE_KEY
CKA_KEY_TYPE = CKK_RSA
CKA_SIGN = CK_TRUE
CKA_ALLOWED_MECHANISMS = { CKM_SHA256_RSA_PKCS_PSS, CKM_SHA384_RSA_PKCS_PSS, CKM_SHA512_RSA_PKCS_PSS, CKM_RSA_PKCS_PSS }
我觉得完全没问题。
不幸的是,PKCS#11 API 没有提供详细信息,提供的模板中的确切属性导致了 CKR_ATTRIBUTE_TYPE_INVALID
错误,但许多 PKCS#11 库支持某种内部日志记录机制,这可能会揭示真正的原因的错误。 PKCS#11 库供应商提供的文档中应包含启用日志记录所需的确切步骤。
来自 AWS 支持部门关于此问题:cloudhsm 不接受 C_FindObjectsInit
调用的任何允许的机制属性。