diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2009-10-05 07:24:28 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2009-10-05 07:24:28 +0200 |
commit | fc12e3cd2eccee07fa3b15d519a24673f15f277d (patch) | |
tree | 0068a60daf9c8303768b495feacda98c4cee7272 /src/pluto/builder.c | |
parent | 0ea9cbc6e9d0743e863de6d3d141761d5c5036c6 (diff) | |
download | strongswan-fc12e3cd2eccee07fa3b15d519a24673f15f277d.tar.bz2 strongswan-fc12e3cd2eccee07fa3b15d519a24673f15f277d.tar.xz |
pluto now uses x509 plugin for attribute certificate handling
Diffstat (limited to 'src/pluto/builder.c')
-rw-r--r-- | src/pluto/builder.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/pluto/builder.c b/src/pluto/builder.c index 8a90e05af..b8b9aac35 100644 --- a/src/pluto/builder.c +++ b/src/pluto/builder.c @@ -40,6 +40,7 @@ */ static cert_t *builder_load_cert(certificate_type_t type, va_list args) { + x509_flag_t flags = 0; chunk_t blob = chunk_empty; bool pgp = FALSE; @@ -53,6 +54,9 @@ static cert_t *builder_load_cert(certificate_type_t type, va_list args) case BUILD_BLOB_ASN1_DER: blob = va_arg(args, chunk_t); continue; + case BUILD_X509_FLAG: + flags |= va_arg(args, x509_flag_t); + continue; case BUILD_END: break; default: @@ -85,6 +89,7 @@ static cert_t *builder_load_cert(certificate_type_t type, va_list args) x509cert->cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509, BUILD_BLOB_ASN1_DER, blob, + BUILD_X509_FLAG, flags, BUILD_END); if (x509cert->cert) { @@ -128,9 +133,12 @@ static x509acert_t *builder_load_ac(certificate_type_t type, va_list args) if (blob.ptr) { ac = malloc_thing(x509acert_t); - *ac = empty_ac; - if (parse_ac(chunk_clone(blob), ac) && - verify_x509acert(ac, FALSE)) + ac->next = NULL; + ac->installed = UNDEFINED_TIME; + ac->ac = lib->creds->create(lib->creds, + CRED_CERTIFICATE, CERT_X509_AC, + BUILD_BLOB_ASN1_DER, blob, BUILD_END); + if (ac->ac && verify_x509acert(ac, FALSE)) { return ac; } |