diff --git a/ChangeLog b/ChangeLog index e67f64d16..b37624538 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,8 @@ Bugfix ticket #37) * Fixed a bug where the CRL parser expected an EXPLICIT ASN.1 tag before version numbers + * Allowed X509 key usage parsing to accept 4 byte values instead of the + standard 1 byte version sometimes used by Microsoft. (Closes ticket #38) = Version 1.0.0 released on 2011-07-27 Features diff --git a/library/x509parse.c b/library/x509parse.c index 9fc8831e0..ceb3db2eb 100644 --- a/library/x509parse.c +++ b/library/x509parse.c @@ -749,7 +749,7 @@ static int x509_get_key_usage( unsigned char **p, if( ( ret = asn1_get_bitstring( p, end, &bs ) ) != 0 ) return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + ret ); - if( bs.len != 1 ) + if( bs.len > 1 ) return( POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS + POLARSSL_ERR_ASN1_INVALID_LENGTH );