summaryrefslogtreecommitdiffstats
path: root/CHANGES.md
diff options
context:
space:
mode:
authorDavid von Oheimb <dev@ddvo.net>2020-11-04 12:23:34 +0100
committerDr. David von Oheimb <David.von.Oheimb@siemens.com>2020-11-06 11:17:22 +0100
commit0e071fbce49c19f59d740dbc5ebff873cd83eefa (patch)
tree55f4f5a8c9fe6e8074658d2b9cbcfbceef634850 /CHANGES.md
parentbbc8343478376699a4aaf9416dfc520fecc5d236 (diff)
CHANGES.md: Mention (strict) checks recently added to X509_verify_cert()
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/13312)
Diffstat (limited to 'CHANGES.md')
-rw-r--r--CHANGES.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/CHANGES.md b/CHANGES.md
index e9e9bc13c3..1388167577 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -831,6 +831,30 @@ OpenSSL 3.0
*Richard Levitte*
+ * Added several checks to X509_verify_cert() according to requirements in
+ RFC 5280 in case `X509_V_FLAG_X509_STRICT` is set
+ (which may be done by using the CLI option `-x509_strict`):
+ * The basicConstraints of CA certificates must be marked critical.
+ * CA certificates must explicitly include the keyUsage extension.
+ * If a pathlenConstraint is given the key usage keyCertSign must be allowed.
+ * The issuer name of any certificate must not be empty.
+ * The subject name of CA certs, certs with keyUsage crlSign,
+ and certs without subjectAlternativeName must not be empty.
+ * If a subjectAlternativeName extension is given it must not be empty.
+ * The signatureAlgorithm field and the cert signature must be consistent.
+ * Any given authorityKeyIdentifier and any given subjectKeyIdentifier
+ must not be marked critical.
+ * The authorityKeyIdentifier must be given for X.509v3 certs
+ unless they are self-signed.
+ * The subjectKeyIdentifier must be given for all X.509v3 CA certs.
+
+ *David von Oheimb*
+
+ * Certificate verification using X509_verify_cert() meanwhile rejects EC keys
+ with explicit curve parameters (specifiedCurve) as required by RFC 5480.
+
+ *Tomas Mraz*
+
* For built-in EC curves, ensure an EC_GROUP built from the curve name is
used even when parsing explicit parameters, when loading a encoded key
or calling `EC_GROUP_new_from_ecpkparameters()`/