summaryrefslogtreecommitdiff
path: root/ckcapi-trust.c
diff options
context:
space:
mode:
Diffstat (limited to 'ckcapi-trust.c')
-rw-r--r--ckcapi-trust.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ckcapi-trust.c b/ckcapi-trust.c
index db543a7..aa8475a 100644
--- a/ckcapi-trust.c
+++ b/ckcapi-trust.c
@@ -411,6 +411,7 @@ CK_RV
ckcapi_trust_find(CkCapiSession* sess, CK_OBJECT_CLASS cls,
CK_ATTRIBUTE_PTR match, CK_ULONG count, CkCapiArray* arr)
{
+ CK_OBJECT_HANDLE id;
CkCapiObject* obj;
CkCapiObject* certobj;
CkCapiObjectData* objdata;
@@ -422,7 +423,7 @@ ckcapi_trust_find(CkCapiSession* sess, CK_OBJECT_CLASS cls,
return CKR_OK;
/* Get a list of all certificates */
- certarr = ckcapi_array_new(0, 1, sizeof(CkCapiObject*));
+ certarr = ckcapi_array_new(0, 1, sizeof(CK_OBJECT_HANDLE));
if(!certarr)
return CKR_HOST_MEMORY;
ret = list_matching_certificates(sess, match, count, certarr);
@@ -432,7 +433,10 @@ ckcapi_trust_find(CkCapiSession* sess, CK_OBJECT_CLASS cls,
{
for(i = 0; i < certarr->len; ++i)
{
- certobj = ckcapi_array_index(certarr, CkCapiObject*, i);
+ id = ckcapi_array_index(certarr, CK_OBJECT_HANDLE, i);
+ ASSERT(id);
+
+ certobj = ckcapi_object_lookup (sess, id);
ASSERT(certobj);
/* We'll register a trust object for any loaded certificate */
@@ -448,7 +452,7 @@ ckcapi_trust_find(CkCapiSession* sess, CK_OBJECT_CLASS cls,
/* Only return new object if it matches */
if(ckcapi_object_data_match(objdata, match, count))
- ckcapi_array_append(arr, obj);
+ ckcapi_array_append(arr, obj->id);
}
}