aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/libstrongswan/crypto/x509.c9
-rwxr-xr-xsrc/libstrongswan/crypto/x509.h8
2 files changed, 17 insertions, 0 deletions
diff --git a/src/libstrongswan/crypto/x509.c b/src/libstrongswan/crypto/x509.c
index fcbd5dc95..f2e87d285 100755
--- a/src/libstrongswan/crypto/x509.c
+++ b/src/libstrongswan/crypto/x509.c
@@ -1045,6 +1045,14 @@ static cert_status_t get_status(const private_x509_t *this)
}
/**
+ * Implements x509_t.create_crluri_iterator
+ */
+static iterator_t *create_crluri_iterator(const private_x509_t *this)
+{
+ return this->crlDistributionPoints->create_iterator(this->crlDistributionPoints, TRUE);
+}
+
+/**
* Implements x509_t.verify
*/
static bool verify(const private_x509_t *this, const rsa_public_key_t *signer)
@@ -1228,6 +1236,7 @@ x509_t *x509_create_from_chunk(chunk_t chunk)
this->public.get_until = (time_t (*) (const x509_t*))get_until;
this->public.set_status = (void (*) (x509_t*,cert_status_t))set_status;
this->public.get_status = (cert_status_t (*) (const x509_t*))get_status;
+ this->public.create_crluri_iterator = (iterator_t* (*) (const x509_t*))create_crluri_iterator;
this->public.verify = (bool (*) (const x509_t*,const rsa_public_key_t*))verify;
this->public.destroy = (void (*) (x509_t*))destroy;
diff --git a/src/libstrongswan/crypto/x509.h b/src/libstrongswan/crypto/x509.h
index fd129149b..824a4e170 100755
--- a/src/libstrongswan/crypto/x509.h
+++ b/src/libstrongswan/crypto/x509.h
@@ -141,6 +141,14 @@ struct x509_t {
identification_t *(*get_subject) (const x509_t *this);
/**
+ * @brief Create an iterator for the crlDistributionPoints.
+ *
+ * @param this calling object
+ * @return iterator for crlDistributionPoints
+ */
+ iterator_t *(*create_crluri_iterator) (const x509_t *this);
+
+ /**
* @brief Check if a certificate is trustworthy
*
* @param this calling object