diff --git a/library/x509_crt.c b/library/x509_crt.c index ee9e95dc9..c79193e61 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -1297,26 +1297,25 @@ static int x509_crt_parse_frame( unsigned char *start, p += len; frame->pubkey_raw.len = p - frame->pubkey_raw.p; - /* - * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, - * -- If present, version shall be v2 or v3 - */ if( frame->version == 2 || frame->version == 3 ) { + /* + * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + */ + ret = x509_get_uid( &p, end, &tmp, 1 /* implicit tag */ ); if( ret != 0 ) return( ret ); frame->issuer_id.p = tmp.p; frame->issuer_id.len = tmp.len; - } - /* - * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, - * -- If present, version shall be v2 or v3 - */ - if( frame->version == 2 || frame->version == 3 ) - { + /* + * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + */ + ret = x509_get_uid( &p, end, &tmp, 2 /* implicit tag */ ); if( ret != 0 ) return( ret );