aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2016-01-03 03:46:47 +0100
committerAndreas Steffen <andreas.steffen@strongswan.org>2016-01-03 06:28:49 +0100
commit9121f6cce1b87d71e1898cd918c07622dbf18258 (patch)
tree005f63eb25bb4ea3c1bd49ee281ed5bdcc331806
parent9db530493fd449795dfd48b2ae07a909ce50e377 (diff)
downloadstrongswan-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.c13
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));
}