Генерация битовых ключей AWS CloudHSM AES-256 с использованием API PKCS # 11 - PullRequest
0 голосов
/ 13 мая 2018

Я использую 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 в моем приложении?

1 Ответ

0 голосов
/ 05 июля 2018

Обработка атрибута CKA_SENSITIVE была исправлена ​​ в версии 1.1.1 клиентских библиотек CloudHSM v2.

Вы действительно должны подумать, почему вы хотите получить значение простого текста вашегоКлюч AES.Причина использования HSM в первую очередь состоит в том, чтобы предотвратить раскрытие необработанных ключевых данных.Если вы только тестируете, подумайте о создании ключа в программном обеспечении и его импорте в HSM.Вы также можете использовать перенос ключей, чтобы развернуть ключ AES.

...