Я пытаюсь понять, как импортировать симметричный ключ в 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. Любое понимание очень ценится!