Skip uncritical unsupported extensions

Skip extensions that have support in the `oid` layer`, but
no parser found in the x509 layer, in case these are not critical.
This commit is contained in:
Ron Eldor 2019-04-08 13:28:24 +03:00
parent 57773d4ede
commit df48efa77a

View file

@ -820,7 +820,17 @@ static int x509_get_crt_ext( unsigned char **p,
break;
default:
return( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE );
/*
* If this is a non-critical extension, which the oid layer
* supports, but there isn't an x509 parser for it,
* skip the extension.
*/
#if !defined(MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION)
if( is_critical )
return( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE );
else
#endif
*p = end_ext_octet;
}
}