added certinfos linked list

This commit is contained in:
Andreas Steffen
2007-02-27 21:21:54 +00:00
parent f3f390eb76
commit 87dabcbd1e
+33 -24
View File
@@ -26,6 +26,7 @@
#include <stdio.h> #include <stdio.h>
#include "ca.h" #include "ca.h"
#include "certinfo.h"
#include <library.h> #include <library.h>
#include <debug.h> #include <debug.h>
@@ -61,12 +62,17 @@ struct private_ca_info_t {
/** /**
* List of crl URIs * List of crl URIs
*/ */
linked_list_t *crlURIs; linked_list_t *crluris;
/** /**
* List of ocsp URIs * List of ocsp URIs
*/ */
linked_list_t *ocspURIs; linked_list_t *ocspuris;
/**
* List of certificate info records
*/
linked_list_t *certinfos;
}; };
/** /**
@@ -143,9 +149,9 @@ static void add_crluri(private_ca_info_t *this, chunk_t uri)
} }
else else
{ {
identification_t *crlURI = identification_create_from_encoding(ID_DER_ASN1_GN_URI, uri); identification_t *crluri = identification_create_from_encoding(ID_DER_ASN1_GN_URI, uri);
add_identification(this->crlURIs, crlURI); add_identification(this->crluris, crluri);
} }
} }
@@ -161,9 +167,9 @@ static void add_ocspuri(private_ca_info_t *this, chunk_t uri)
} }
else else
{ {
identification_t *ocspURI = identification_create_from_encoding(ID_DER_ASN1_GN_URI, uri); identification_t *ocspuri = identification_create_from_encoding(ID_DER_ASN1_GN_URI, uri);
add_identification(this->ocspURIs, ocspURI); add_identification(this->ocspuris, ocspuri);
} }
} }
@@ -179,7 +185,7 @@ void add_info (private_ca_info_t *this, const private_ca_info_t *that)
{ {
identification_t *uri; identification_t *uri;
iterator_t *iterator = that->crlURIs->create_iterator(that->crlURIs, TRUE); iterator_t *iterator = that->crluris->create_iterator(that->crluris, TRUE);
while (iterator->iterate(iterator, (void**)&uri)) while (iterator->iterate(iterator, (void**)&uri))
{ {
@@ -190,7 +196,7 @@ void add_info (private_ca_info_t *this, const private_ca_info_t *that)
{ {
identification_t *uri; identification_t *uri;
iterator_t *iterator = that->ocspURIs->create_iterator(that->ocspURIs, TRUE); iterator_t *iterator = that->ocspuris->create_iterator(that->ocspuris, TRUE);
while (iterator->iterate(iterator, (void**)&uri)) while (iterator->iterate(iterator, (void**)&uri))
{ {
@@ -205,13 +211,13 @@ void add_info (private_ca_info_t *this, const private_ca_info_t *that)
*/ */
static void release_info(private_ca_info_t *this) static void release_info(private_ca_info_t *this)
{ {
this->crlURIs->destroy_offset(this->crlURIs, this->crluris->destroy_offset(this->crluris,
offsetof(identification_t, destroy)); offsetof(identification_t, destroy));
this->crlURIs = linked_list_create(); this->crluris = linked_list_create();
this->ocspURIs->destroy_offset(this->ocspURIs, this->ocspuris->destroy_offset(this->ocspuris,
offsetof(identification_t, destroy)); offsetof(identification_t, destroy));
this->ocspURIs = linked_list_create(); this->ocspuris = linked_list_create();
free(this->name); free(this->name);
this->name = NULL; this->name = NULL;
@@ -222,10 +228,12 @@ static void release_info(private_ca_info_t *this)
*/ */
static void destroy(private_ca_info_t *this) static void destroy(private_ca_info_t *this)
{ {
this->crlURIs->destroy_offset(this->crlURIs, this->crluris->destroy_offset(this->crluris,
offsetof(identification_t, destroy)); offsetof(identification_t, destroy));
this->ocspURIs->destroy_offset(this->ocspURIs, this->ocspuris->destroy_offset(this->ocspuris,
offsetof(identification_t, destroy)); offsetof(identification_t, destroy));
this->certinfos->destroy_offset(this->certinfos,
offsetof(certinfo_t, destroy));
free(this->name); free(this->name);
free(this); free(this);
} }
@@ -270,27 +278,27 @@ static int print(FILE *stream, const struct printf_info *info,
written += fprintf(stream, " keyid: %#B\n", &keyid); written += fprintf(stream, " keyid: %#B\n", &keyid);
} }
{ {
identification_t *crlURI; identification_t *crluri;
iterator_t *iterator = this->crlURIs->create_iterator(this->crlURIs, TRUE); iterator_t *iterator = this->crluris->create_iterator(this->crluris, TRUE);
bool first = TRUE; bool first = TRUE;
while (iterator->iterate(iterator, (void**)&crlURI)) while (iterator->iterate(iterator, (void**)&crluri))
{ {
written += fprintf(stream, " %s '%D'\n", written += fprintf(stream, " %s '%D'\n",
first? "crluris:":" ", crlURI); first? "crluris:":" ", crluri);
first = FALSE; first = FALSE;
} }
iterator->destroy(iterator); iterator->destroy(iterator);
} }
{ {
identification_t *ocspURI; identification_t *ocspuri;
iterator_t *iterator = this->ocspURIs->create_iterator(this->ocspURIs, TRUE); iterator_t *iterator = this->ocspuris->create_iterator(this->ocspuris, TRUE);
bool first = TRUE; bool first = TRUE;
while (iterator->iterate(iterator, (void**)&ocspURI)) while (iterator->iterate(iterator, (void**)&ocspuri))
{ {
written += fprintf(stream, " %s '%D'\n", written += fprintf(stream, " %s '%D'\n",
first? "ocspuris:":" ", ocspURI); first? "ocspuris:":" ", ocspuri);
first = FALSE; first = FALSE;
} }
iterator->destroy(iterator); iterator->destroy(iterator);
@@ -317,8 +325,9 @@ ca_info_t *ca_info_create(const char *name, const x509_t *cacert)
this->installed = time(NULL); this->installed = time(NULL);
this->name = (name == NULL)? NULL:strdup(name); this->name = (name == NULL)? NULL:strdup(name);
this->cacert = cacert; this->cacert = cacert;
this->crlURIs = linked_list_create(); this->crluris = linked_list_create();
this->ocspURIs = linked_list_create(); this->ocspuris = linked_list_create();
this->certinfos = linked_list_create();
/* public functions */ /* public functions */
this->public.equals = (bool (*) (const ca_info_t*,const ca_info_t*))equals; this->public.equals = (bool (*) (const ca_info_t*,const ca_info_t*))equals;