首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SafeNet认证客户端SDK生成密钥对和签名?

如何使用SafeNet认证客户端SDK生成密钥对和签名?
EN

Stack Overflow用户
提问于 2021-01-26 11:48:53
回答 1查看 79关注 0票数 1

任何人都可以提供使用SafeNet身份验证客户端软件开发工具包的RSA示例。SDK仅提供ECC示例。我更改了一些内容,C_GenerateKeyPair返回失败。有时返回CKR_ATTRIBUTE_TYPE_INVALID 0x00000012。我使用样本数组

代码语言:javascript
复制
    /* 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的密钥。

代码语言:javascript
复制
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

能帮到我吗。

EN

回答 1

Stack Overflow用户

发布于 2021-01-26 17:26:54

您已经提到了公共部分和私有部分的不同存储类:

代码语言:javascript
复制
    {CKA_TOKEN,           &ck_False,        sizeof(CK_BBOOL)},

代码语言:javascript
复制
    {CKA_TOKEN,           &ck_True,         sizeof(CK_BBOOL)},

它们必须具有相同的存储类CKA_TOKEN -两者都必须指向ck_True

也可以在没有CKA_EC_PARAM的情况下尝试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65895629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档