aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-06-24 11:59:20 +0200
committerMartin Willi <martin@revosec.ch>2010-06-24 12:01:18 +0200
commit7a74295e425583f4271855ec7bc42076219b4340 (patch)
tree1e373e5ea40ad55e130ba2bc0d4bee98500cf783 /src
parent9eb7f46b3d8ed0f1a5d5ffd600c633760c2a1c04 (diff)
downloadstrongswan-7a74295e425583f4271855ec7bc42076219b4340.tar.bz2
strongswan-7a74295e425583f4271855ec7bc42076219b4340.tar.xz
Select subjectAltName address family using address length in x509 plugin
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/plugins/x509/x509_cert.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libstrongswan/plugins/x509/x509_cert.c b/src/libstrongswan/plugins/x509/x509_cert.c
index 7b362b962..8a164f1bd 100644
--- a/src/libstrongswan/plugins/x509/x509_cert.c
+++ b/src/libstrongswan/plugins/x509/x509_cert.c
@@ -366,7 +366,17 @@ static identification_t *parse_generalName(chunk_t blob, int level0)
id_type = ID_DER_ASN1_DN;
break;
case GN_OBJ_IP_ADDRESS:
- id_type = ID_IPV4_ADDR;
+ switch (object.len)
+ {
+ case 4:
+ id_type = ID_IPV4_ADDR;
+ break;
+ case 16:
+ id_type = ID_IPV6_ADDR;
+ break;
+ default:
+ break;
+ }
break;
case GN_OBJ_OTHER_NAME:
if (!parse_otherName(object, parser->get_level(parser)+1))