Я использую PKCS # 11 для создания 256-битного ключа AES с помощью C_GenerateKey.Затем я использую C_FindObjectsxxx для поиска дескриптора ключа и получения ошибки.
Вот код
static int find_object(CK_SESSION_HANDLE sess, CK_OBJECT_CLASS cls, CK_OBJECT_HANDLE_PTR ret, const unsigned char *id, size_t id_len, int obj_index)
{
CK_ATTRIBUTE attrs[2];
unsigned int nattrs = 0;
CK_RV rv;
attrs[0].type = CKA_CLASS;
attrs[0].pValue = &cls;
attrs[0].ulValueLen = sizeof(cls);
nattrs++;
rv = pfunc11->C_FindObjectsInit(sess, attrs, nattrs); --> segfault
......
Вызов C_GenerateKey выглядит успешным, иначе этот код не был бы вызван.
Это вызов вышеуказанного кода -
CK_OBJECT_HANDLE key;
if (find_object(session, CKO_SECRET_KEY, &key, id, sizeof(id), 0))
{
printf("Key handle found\n");
}