summaryrefslogtreecommitdiffstats
path: root/src/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto')
-rw-r--r--src/crypto/certstore.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/crypto/certstore.c b/src/crypto/certstore.c
index e62d8330..9809413a 100644
--- a/src/crypto/certstore.c
+++ b/src/crypto/certstore.c
@@ -146,6 +146,20 @@ void certstore_add ( struct x509_certificate *cert ) {
}
/**
+ * Remove certificate from store
+ *
+ * @v cert X.509 certificate
+ */
+void certstore_del ( struct x509_certificate *cert ) {
+
+ /* Remove certificate from store */
+ DBGC ( &certstore, "CERTSTORE removed certificate %s\n",
+ x509_name ( cert ) );
+ list_del ( &cert->store.list );
+ x509_put ( cert );
+}
+
+/**
* Discard a stored certificate
*
* @ret discarded Number of cached items discarded
@@ -158,10 +172,7 @@ static unsigned int certstore_discard ( void ) {
*/
list_for_each_entry_reverse ( cert, &certstore.links, store.list ) {
if ( cert->refcnt.count == 0 ) {
- DBGC ( &certstore, "CERTSTORE discarded certificate "
- "%s\n", x509_name ( cert ) );
- list_del ( &cert->store.list );
- x509_put ( cert );
+ certstore_del ( cert );
return 1;
}
}