diff options
Diffstat (limited to 'ckcapi-trust.c')
-rw-r--r-- | ckcapi-trust.c | 10 |
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); } } |