]> git.baikalelectronics.ru Git - arm-tf.git/commitdiff
fix(auth): require bit strings to have no unused bits
authorDemi Marie Obenour <demiobenour@gmail.com>
Thu, 8 Dec 2022 20:24:27 +0000 (15:24 -0500)
committerSandrine Bailleux <sandrine.bailleux@arm.com>
Tue, 3 Jan 2023 16:48:51 +0000 (17:48 +0100)
This is already checked by the crypto module or by mbedTLS, but checking
it in the X.509 parser is harmless.

Change-Id: Ifdbe3b4c6d04481bb8e93106ee04b49a70f50d5d
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
drivers/auth/mbedtls/mbedtls_x509_parser.c

index 244f1c95e52fa24f994bdc950d9bf7288c18885a..87f280c133ca7671c24730cebfc1268fe1ec3bd5 100644 (file)
@@ -281,7 +281,8 @@ static int cert_parse(void *img, unsigned int img_len)
        }
        p += len;
 
-       ret = mbedtls_asn1_get_tag(&p, pk_end, &len, MBEDTLS_ASN1_BIT_STRING);
+       /* Key is a BIT STRING and must use all bytes in SubjectPublicKeyInfo */
+       ret = mbedtls_asn1_get_bitstring_null(&p, pk_end, &len);
        if ((ret != 0) || (p + len != pk_end)) {
                return IMG_PARSER_ERR_FORMAT;
        }
@@ -422,7 +423,7 @@ static int cert_parse(void *img, unsigned int img_len)
         * signatureValue       BIT STRING
         */
        signature.p = p;
-       ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_BIT_STRING);
+       ret = mbedtls_asn1_get_bitstring_null(&p, end, &len);
        if (ret != 0) {
                return IMG_PARSER_ERR_FORMAT;
        }