Я использую API PKCS # 11 для генерации битовых ключей AES-256 в AWS CloudHSM.
Я полагаю, что могу успешно сгенерировать ключ, используя (C_GenerateKey), однако, когда я пытаюсь напечатать значение ключа, я получаю ошибку "CKR_ATTRIBUTE_TYPE_INVALID" при первом вызове C_GetAttributeValue.
Я установил опцию CKA_EXTRACTABLE для ключа при его генерации.
Вот фрагмент кода -
set_attr(keyTemplate[n_attr], CKA_EXTRACTABLE, &_true, sizeof(_true));
set_ATTR(keyTemplate[n_attr], CKA_VALUE_LEN, &key_length, sizeof(key_length));
rv = pfunc11->C_GenerateKey(session, &mechanism, keyTemplate, n_attr, &hSecretKey);
if (rv != CKR_OK)
{
printf("ERROR: rv=0x%08X: C_GenerateKey failed\n", (unsigned int)rv);
return false;
}
else
{
rv = pfunc11->C_GetAttributeValue(session, hSecretKey, dataTemplate, 1);
if(rv != CKR_OK)
{
printf("ERROR: rv=0x%08X: C_GetAttributeValue failed\n", (unsigned int)rv);
return false;
}
Если я установил для параметра «CKA_SENSITIVE» значение false, я получаю сообщение об ошибке (CKR_TEMPLATE_INCONSISTENT) во время генерации ключа, говорящего о том, что шаблон недействителен.
Как я могу напечатать значение ключа AES в моем приложении?