aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2009-10-06 23:50:26 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2009-10-06 23:50:26 +0200
commit84e390fdc4f47a4dda960a11a258eed2fbec31c4 (patch)
tree00fa2d663768a1c344a5747c3b92af97239ff52a /src
parent20afe5e9f5ca79fcc2fe1dc44cd2d42e695a76b3 (diff)
downloadstrongswan-84e390fdc4f47a4dda960a11a258eed2fbec31c4.tar.bz2
strongswan-84e390fdc4f47a4dda960a11a258eed2fbec31c4.tar.xz
list subjectAltNames
Diffstat (limited to 'src')
-rw-r--r--src/pluto/x509.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/pluto/x509.c b/src/pluto/x509.c
index e6ea1d6c8..172baa1cf 100644
--- a/src/pluto/x509.c
+++ b/src/pluto/x509.c
@@ -29,6 +29,8 @@
#include <asn1/asn1_parser.h>
#include <asn1/oid.h>
#include <crypto/hashers/hasher.h>
+#include <utils/enumerator.h>
+#include <utils/identification.h>
#include "constants.h"
#include "defs.h"
@@ -1478,11 +1480,17 @@ void list_x509cert_chain(const char *caption, x509cert_t* cert,
if (flags == X509_NONE || (flags & x509->get_flags(x509)))
{
+ enumerator_t *enumerator;
+ char buf[BUF_LEN];
+ char *pos = buf;
+ int len = BUF_LEN;
+ bool first_altName = TRUE;
+ identification_t *id;
time_t notBefore, notAfter;
public_key_t *key;
chunk_t serial, keyid, subjkey, authkey;
cert_t c;
-
+
c.type = CERT_X509_SIGNATURE;
c.u.x509 = cert;
@@ -1493,6 +1501,30 @@ void list_x509cert_chain(const char *caption, x509cert_t* cert,
first = FALSE;
}
whack_log(RC_COMMENT, " ");
+
+ enumerator = x509->create_subjectAltName_enumerator(x509);
+ while (enumerator->enumerate(enumerator, &id))
+ {
+ int written;
+
+ if (first_altName)
+ {
+ written = snprintf(pos, len, "%Y", id);
+ first_altName = FALSE;
+ }
+ else
+ {
+ written = snprintf(pos, len, ", %Y", id);
+ }
+ pos += written;
+ len -= written;
+ }
+ enumerator->destroy(enumerator);
+ if (!first_altName)
+ {
+ whack_log(RC_COMMENT, " altNames: %s", buf);
+ }
+
whack_log(RC_COMMENT, " subject: \"%Y\"",
certificate->get_subject(certificate));
whack_log(RC_COMMENT, " issuer: \"%Y\"",