0

根据最新的 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。

任何建议,将不胜感激。

4

0 回答 0