Что CKA_VALUE используется в шаблоне генерации секретного ключа AES? - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь интегрировать Safenet HSM с нашим приложением.Я пишу программу на C. Я имею в виду стандартный документ PKCS11 v2.20 cryptoki от RSA labs.Мне нужно сгенерировать 256-битный ключ AES.При определении шаблона для генерации ключа я не уверен, какое значение нужно передать для CKA_VALUE.При создании ключа DES3 я не предоставил этот атрибут, и мне удалось сгенерировать ключ.

Я искал примеры программ для CKA_LABEL, но не смог найти каких-либо убедительных примеров в C. Я нашел паруJava-программы, в которых они использовали CKA_VALUE_LEN вместо CKA_VALUE.Я не уверен, что это сработает.

Это фрагмент, приведенный в документе.Большинство сайтов приводят только этот фрагмент в качестве примера.Ничего не указано для значения массива.

CK_OBJECT_CLASS class = CKO_SECRET_KEY;
CK_KEY_TYPE keyType = CKK_AES;
CK_UTF8CHAR label[] = “An AES secret key object”;
CK_BYTE value[] = {...};
CK_BBOOL true = CK_TRUE;
CK_ATTRIBUTE template[] = {
{CKA_CLASS, &class, sizeof(class)},
{CKA_KEY_TYPE, &keyType, sizeof(keyType)},
{CKA_TOKEN, &true, sizeof(true)},
{CKA_LABEL, label, sizeof(label)-1},
{CKA_ENCRYPT, &true, sizeof(true)},
{CKA_VALUE, value, sizeof(value)}
};

1 Ответ

0 голосов
/ 20 декабря 2018

CKA_VALUE - это фактическое значение ключа.Когда вы говорите HSM сгенерировать секретный ключ, он сгенерирует для вас ключ на оборудовании на основе атрибутов, которые вы передаете в шаблоне секретного ключа, и установите значение, сгенерированное в CKA_VALUE.Однако этот атрибут не может быть прочитан / извлечен и не может быть установлен при генерации ключа, потому что HSM не позволит вам ввести ключ (напрямую) из программного обеспечения и не позволит вам извлечь его из HSM (напрямую).

CKA_VALUE_LEN - это длина ключа, который вы можете указать HSM для генерации.Ключ AES может иметь длину 128, 192 или 256 бит.В зависимости от размера ключа, который вы хотите, вы можете установить CKA_VALUE_LEN как 16, 24 или 32 (размер ключа в байтах).

...