API-интерфейс PKCS # 11 C_FindObjectsInit для ключевых ошибок AES CKO_SECRET_KEY - PullRequest
0 голосов
/ 15 мая 2018

Я использую 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");
}
...