From ddbac66028254bda0bd2aaedac44e16728ca564d Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Thu, 15 Jul 2010 15:44:17 +0200 Subject: [PATCH] Use the PKCS#11 object enumerator --- .../plugins/pkcs11/pkcs11_creds.c | 31 ++++--------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_creds.c b/src/libstrongswan/plugins/pkcs11/pkcs11_creds.c index 978bb8103..2984c70d3 100644 --- a/src/libstrongswan/plugins/pkcs11/pkcs11_creds.c +++ b/src/libstrongswan/plugins/pkcs11/pkcs11_creds.c @@ -127,34 +127,15 @@ static void find_certificates(private_pkcs11_creds_t *this, {CKA_TRUSTED, &trusted, sizeof(trusted)}, }; CK_OBJECT_HANDLE object; - CK_ULONG found; - CK_RV rv; + enumerator_t *enumerator; - rv = this->lib->f->C_FindObjectsInit(session, template, countof(template)); - if (rv == CKR_OK) + enumerator = this->lib->create_object_enumerator(this->lib, + session, template, countof(template)); + while (enumerator->enumerate(enumerator, &object)) { - while (TRUE) - { - rv = this->lib->f->C_FindObjects(session, &object, 1, &found); - if (rv == CKR_OK) - { - if (found == 1) - { - handle_certificate(this, session, object, trusted); - } - else - { - break; - } - } - else - { - DBG1(DBG_CFG, "C_FindObjects() error: %N", ck_rv_names, rv); - break; - } - } + handle_certificate(this, session, object, trusted); } - this->lib->f->C_FindObjectsFinal(session); + enumerator->destroy(enumerator); } /**