diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2016-01-03 03:46:47 +0100 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2016-01-03 06:28:49 +0100 |
commit | 9121f6cce1b87d71e1898cd918c07622dbf18258 (patch) | |
tree | 005f63eb25bb4ea3c1bd49ee281ed5bdcc331806 | |
parent | 9db530493fd449795dfd48b2ae07a909ce50e377 (diff) | |
download | strongswan-9121f6cce1b87d71e1898cd918c07622dbf18258.tar.bz2 strongswan-9121f6cce1b87d71e1898cd918c07622dbf18258.tar.xz |
vici: Enable transport encoding of CERT_TRUSTED_PUBKEY objects
-rw-r--r-- | src/libcharon/plugins/vici/vici_query.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libcharon/plugins/vici/vici_query.c b/src/libcharon/plugins/vici/vici_query.c index e020ebf8c..99cd3481f 100644 --- a/src/libcharon/plugins/vici/vici_query.c +++ b/src/libcharon/plugins/vici/vici_query.c @@ -861,21 +861,24 @@ static void enum_x509(private_vici_query_t *this, u_int id, * Enumerate all non-X.509 certificate types */ static void enum_others(private_vici_query_t *this, u_int id, - linked_list_t *certs, cert_filter_t *filter) + linked_list_t *certs, certificate_type_t type) { enumerator_t *enumerator; certificate_t *cert; vici_builder_t *b; chunk_t encoding; + cred_encoding_type_t encoding_type; + + encoding_type = (type == CERT_TRUSTED_PUBKEY) ? PUBKEY_SPKI_ASN1_DER : + CERT_ASN1_DER; enumerator = certs->create_enumerator(certs); while (enumerator->enumerate(enumerator, &cert)) { - if (cert->get_encoding(cert, CERT_ASN1_DER, &encoding)) + if (cert->get_encoding(cert, encoding_type, &encoding)) { b = vici_builder_create(); - b->add_kv(b, "type", "%N", certificate_type_names, - cert->get_type(cert)); + b->add_kv(b, "type", "%N", certificate_type_names, type); if (has_privkey(cert)) { b->add_kv(b, "has_privkey", "yes"); @@ -940,7 +943,7 @@ static void enum_certs(private_vici_query_t *this, u_int id, } else { - enum_others(this, id, certs, filter); + enum_others(this, id, certs, type); } certs->destroy_offset(certs, offsetof(certificate_t, destroy)); } |