任何人都可以提供使用SafeNet身份验证客户端软件开发工具包的RSA示例。SDK仅提供ECC示例。我更改了一些内容,C_GenerateKeyPair返回失败。有时返回CKR_ATTRIBUTE_TYPE_INVALID 0x00000012。我使用样本数组
/* Settings for the public key */
CK_ATTRIBUTE tPubKey[] =
{
{CKA_TOKEN, &ck_False, sizeof(CK_BBOOL)},
{CKA_CLASS, &cko_PublicKey, sizeof(CK_ULONG)},
{CKA_KEY_TYPE, &ckk_RSA, sizeof(CK_ULONG)},
{CKA_PRIVATE, &ck_False, sizeof(CK_BBOOL)},
{CKA_EC_PARAMS, ec_params, sizeof(ec_params)},
};
/* Settings for the private key */
CK_ATTRIBUTE tPrvKey[] =
{
{CKA_TOKEN, &ck_True, sizeof(CK_BBOOL)},
{CKA_PRIVATE, &ck_True, sizeof(CK_BBOOL)},
{CKA_DERIVE, &ck_True, sizeof(CK_BBOOL)},
{CKA_SIGN, &ck_True, sizeof(CK_BBOOL)},
};我将配置更改为RSA,但我不知道什么是ec_params。实际上,我没有详细介绍pub的模板。priv的密钥和模板。RSA的密钥。
CK_PKCS11_FUNCTION_INFO(C_GenerateKeyPair)
#ifdef CK_NEED_ARG_LIST
(
CK_SESSION_HANDLE hSession, /* session handle */
CK_MECHANISM_PTR pMechanism, /* key-gen mech. */
CK_ATTRIBUTE_PTR pPublicKeyTemplate, /* template for pub. key */
CK_ULONG ulPublicKeyAttributeCount, /* # pub. attrs. */
CK_ATTRIBUTE_PTR pPrivateKeyTemplate, /* template for priv. key */
CK_ULONG ulPrivateKeyAttributeCount, /* # priv. attrs. */
CK_OBJECT_HANDLE_PTR phPublicKey, /* gets pub. key handle */
CK_OBJECT_HANDLE_PTR phPrivateKey /* gets priv. key handle */
);
#endif能帮到我吗。
发布于 2021-01-26 17:26:54
您已经提到了公共部分和私有部分的不同存储类:
{CKA_TOKEN, &ck_False, sizeof(CK_BBOOL)},和
{CKA_TOKEN, &ck_True, sizeof(CK_BBOOL)},它们必须具有相同的存储类CKA_TOKEN -两者都必须指向ck_True。
也可以在没有CKA_EC_PARAM的情况下尝试。
https://stackoverflow.com/questions/65895629
复制相似问题