diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-03-11 11:48:22 +0100 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-03-11 11:48:22 +0100 |
commit | fc01176a7dece33b2123ffeacd46078548190ff8 (patch) | |
tree | 31fc12ef692b7cbafff096ccfefa5ec7a66d58c6 /src | |
parent | adba3c695d511721bc62b43af49d2e3a93619ce9 (diff) | |
download | strongswan-fc01176a7dece33b2123ffeacd46078548190ff8.tar.bz2 strongswan-fc01176a7dece33b2123ffeacd46078548190ff8.tar.xz |
output unknown OIDs in dot string notation
Diffstat (limited to 'src')
-rw-r--r-- | src/libstrongswan/asn1/asn1.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/libstrongswan/asn1/asn1.c b/src/libstrongswan/asn1/asn1.c index b0fd7f800..be4403f53 100644 --- a/src/libstrongswan/asn1/asn1.c +++ b/src/libstrongswan/asn1/asn1.c @@ -208,7 +208,7 @@ char *asn1_oid_to_string(chunk_t oid) } oid = chunk_skip(oid, 1); } - return strdup(buf); + return (val == 0) ? strdup(buf) : NULL; } /* @@ -462,12 +462,22 @@ void asn1_debug_simple_object(chunk_t object, asn1_t type, bool private) { case ASN1_OID: oid = asn1_known_oid(object); - if (oid != OID_UNKNOWN) + if (oid == OID_UNKNOWN) + { + char *oid_str = asn1_oid_to_string(object); + + if (!oid_str) + { + break; + } + DBG2(DBG_LIB, " %s", oid_str); + free(oid_str); + } + else { DBG2(DBG_LIB, " '%s'", oid_names[oid].name); - return; } - break; + return; case ASN1_UTF8STRING: case ASN1_IA5STRING: case ASN1_PRINTABLESTRING: |