Импорт секретного (симметричного) ключа NSS

Я пытаюсь понять, как импортировать симметричный ключ в NSS для использования с шифрованием на границе основного крипто. Эти функции описаны https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSS_cryptographic_module/FIPS_mode_of_operation Я смог выполнить любой другой тип криптографической операции, следуя документации, поскольку она отражает описанный здесь PKCS 11: http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/cos01/pkcs11-base-v2.40-cos01.html Однако при попытке импортировать любой шаблон, где CK_OBJECT_CLASS "CKO_SECRET_KEY", всегда возвращает "CKR_ATTRIBUTE_VALUE_INVALID 0x00000013". Но у меня нет проблем с асимметричным (общедоступным/приватным)

CK_RV crv;
CK_FUNCTION_LIST_PTR pFunctionList;
CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
CK_ATTRIBUTE keyTemplate[] = {
  {CKA_CLASS, &keyClass, sizeof(keyClass)}
};
crv = pFunctionList->C_CreateObject(hRwSession, keyTemplate, 1, &hKey);
printf("failed with 0x%08X\n", crv);

Но согласно документации это должно возвращать «CKR_TEMPLATE_INCOMPLETE», поскольку «CKO_SECRET_KEY» является допустимым классом объекта.

Опять же, у меня не было проблем с асимметрией. Я также должен отметить, что мои указатели функций предназначены только для режима FIPS. Любое понимание очень ценится!


person noone392    schedule 17.10.2017    source источник


Ответы (1)


Похоже, что код, который вы вставили, либо неполный, либо просто неправильный. В частности, нет конкретного значения для ключа, который вы создаете в шаблоне (CKA_VALUE), что может легко вызвать ошибку, которую вы получаете от C_CreateObject.

person Amit    schedule 14.09.2018