diff options
author | Martin Willi <martin@revosec.ch> | 2010-06-24 12:00:56 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-06-24 12:01:18 +0200 |
commit | 07c5aacce854899adafe66f4c8e51a376045abca (patch) | |
tree | 805a380acb2dc7b8edebdda39c7c8930fe98554e /src/libstrongswan/plugins/openssl/openssl_x509.c | |
parent | 7a74295e425583f4271855ec7bc42076219b4340 (diff) | |
download | strongswan-07c5aacce854899adafe66f4c8e51a376045abca.tar.bz2 strongswan-07c5aacce854899adafe66f4c8e51a376045abca.tar.xz |
Select subjectAltName address family using address length in openssl plugin
Diffstat (limited to 'src/libstrongswan/plugins/openssl/openssl_x509.c')
-rw-r--r-- | src/libstrongswan/plugins/openssl/openssl_x509.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libstrongswan/plugins/openssl/openssl_x509.c b/src/libstrongswan/plugins/openssl/openssl_x509.c index 05b3c63ec..93264e76c 100644 --- a/src/libstrongswan/plugins/openssl/openssl_x509.c +++ b/src/libstrongswan/plugins/openssl/openssl_x509.c @@ -173,8 +173,18 @@ static identification_t *general_name2id(GENERAL_NAME *name) return identification_create_from_encoding(ID_DER_ASN1_GN_URI, openssl_asn1_str2chunk(name->d.uniformResourceIdentifier)); case GEN_IPADD: - return identification_create_from_encoding(ID_IPV4_ADDR, - openssl_asn1_str2chunk(name->d.iPAddress)); + { + chunk_t chunk = openssl_asn1_str2chunk(name->d.iPAddress); + if (chunk.len == 4) + { + return identification_create_from_encoding(ID_IPV4_ADDR, chunk); + } + if (chunk.len == 16) + { + return identification_create_from_encoding(ID_IPV6_ADDR, chunk); + } + return NULL; + } case GEN_DIRNAME : return openssl_x509_name2id(name->d.directoryName); default: |