Skip to content

Commit

Permalink
[crypto] Expose certstore_del() to explicitly remove stored certificates
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Aug 31, 2016
1 parent 161c80a commit 534eae4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
19 changes: 15 additions & 4 deletions src/crypto/certstore.c
Expand Up @@ -145,6 +145,20 @@ void certstore_add ( struct x509_certificate *cert ) {
x509_name ( 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
*
Expand All @@ -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;
}
}
Expand Down
1 change: 1 addition & 0 deletions src/include/ipxe/certstore.h
Expand Up @@ -17,5 +17,6 @@ extern struct x509_chain certstore;
extern struct x509_certificate * certstore_find ( struct asn1_cursor *raw );
extern struct x509_certificate * certstore_find_key ( struct asn1_cursor *key );
extern void certstore_add ( struct x509_certificate *cert );
extern void certstore_del ( struct x509_certificate *cert );

#endif /* _IPXE_CERTSTORE_H */

0 comments on commit 534eae4

Please sign in to comment.