如何为可以存储用于密钥的IV或生成日期等元数据的RSA私钥定义pkcs11属性?

时间:2016-12-14 18:48:22

标签: c++ pkcs#11 softhsm

根据最新的PKCS#11规范,RSA私钥的典型属性结构如下:

CK_ATTRIBUTE template[] = {
{CKA_CLASS, &class, sizeof(class)},

{CKA_KEY_TYPE, &keyType, sizeof(keyType)},

{CKA_TOKEN, &true, 1},

{CKA_LABEL, label, sizeof(label)},


{CKA_SUBJECT, subject, sizeof(subject)},

{CKA_ID, id, sizeof(id)},

{CKA_SENSITIVE, &true, 1},

{CKA_DECRYPT, &true, 1},

{CKA_SIGN, &true, 1},

{CKA_MODULUS, modulus, sizeof(modulus)},

{CKA_PUBLIC_EXPONENT, publicExponent, sizeof(publicExponent)},

{CKA_PRIVATE_EXPONENT, privateExponent, sizeof(privateExponent)},

{CKA_PRIME_1, prime1, sizeof(prime1)},

{CKA_PRIME_2, prime2, sizeof(prime2)},

{CKA_EXPONENT_1, exponent1, sizeof(exponent1)},

{CKA_EXPONENT_2, exponent2, sizeof(exponent2)},

{CKA_COEFFICIENT, coefficient, sizeof(coefficient)}

};

但是,还有另一个属性CK_VALUE,它只能用于创建pkcs'数据对象'而不是'关键对象'。当我使用此字段CK_VALUE创建密钥对象时,PKCS会抛出无效的属性错误。 我想使用其中包含字符串格式化值的类似字段,该字段可以保存与密钥相关的元数据信息(例如用于包装RSA密钥的IV,密钥生成日期等)。有没有办法将这些信息存储在现有的pkcs11模板中,而无需修改实现中的属性数据结构?我正在使用OpenDNSSec社区的SoftHSM n2.0软件包来实现pkcs。

任何建议都将不胜感激。

0 个答案:

没有答案