Fix embarrassing X.509 bug introduced in 9533765
diff --git a/ChangeLog b/ChangeLog
index 23f7762..5fe77e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,10 @@
Security
* Avoid potential timing leak in ecdsa_sign() by blinding modular division.
(Found by Watson Ladd.)
+ * The notAfter date of some certificates was no longer checked since 1.3.5.
+ This affects certificates in the user-supplied chain except the top
+ certificate. If the user-supplied chain contains only one certificates,
+ it is not affected (ie, its notAfter date is properly checked).
Bugfix
* The length of various ClientKeyExchange messages was not properly checked.
diff --git a/library/x509_crt.c b/library/x509_crt.c
index d4ef82e..d9f25ed 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -1647,6 +1647,9 @@
x509_crt *grandparent;
const md_info_t *md_info;
+ if( x509_time_expired( &child->valid_to ) )
+ *flags |= BADCERT_EXPIRED;
+
if( x509_time_future( &child->valid_from ) )
*flags |= BADCERT_FUTURE;