aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2009-12-20 15:53:39 +0100
committerAndreas Steffen <andreas.steffen@strongswan.org>2009-12-20 15:53:39 +0100
commit28c25485baf30aeee2ea84ca5dee81639697fb47 (patch)
tree28499fb3254eef91f6e050001de47a2bb32ccd12 /src
parentf3e366a9a0cacef2acf9c7e3411b958435de6a08 (diff)
downloadstrongswan-28c25485baf30aeee2ea84ca5dee81639697fb47.tar.bz2
strongswan-28c25485baf30aeee2ea84ca5dee81639697fb47.tar.xz
discard certificate with unknown critical extensions
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/plugins/x509/x509_cert.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libstrongswan/plugins/x509/x509_cert.c b/src/libstrongswan/plugins/x509/x509_cert.c
index 623a26803..fc68cdc7b 100644
--- a/src/libstrongswan/plugins/x509/x509_cert.c
+++ b/src/libstrongswan/plugins/x509/x509_cert.c
@@ -905,6 +905,14 @@ static bool parse_certificate(private_x509_cert_t *this)
}
break;
default:
+ if (critical && lib->settings->get_bool(lib->settings,
+ "libstrongswan.plugins.x509_cert.enforce_critical", FALSE))
+ {
+ DBG1("critical %s extension not supported",
+ (extn_oid == OID_UNKNOWN) ? "unknown" :
+ (char*)oid_names[extn_oid].name);
+ goto end;
+ }
break;
}
break;