]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: testmgr - Fix wrong test case of RSA
authorLei He <helei.sig11@bytedance.com>
Fri, 5 Nov 2021 12:25:31 +0000 (20:25 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:50:47 +0000 (12:50 +0100)
[ Upstream commit a9887010ed2da3fddaff83ceec80e2b71be8a966 ]

According to the BER encoding rules, integer value should be encoded
as two's complement, and if the highest bit of a positive integer
is 1, should add a leading zero-octet.

The kernel's built-in RSA algorithm cannot recognize negative numbers
when parsing keys, so it can pass this test case.

Export the key to file and run the following command to verify the
fix result:

  openssl asn1parse -inform DER -in /path/to/key/file

Signed-off-by: Lei He <helei.sig11@bytedance.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
crypto/testmgr.h

index d94d02cb30d4e73d5daecf67b86e46548ae29238..c2bad3ee89085bea02ee3d872523dba0dc3b14a3 100644 (file)
@@ -257,9 +257,9 @@ static const struct akcipher_testvec rsa_tv_template[] = {
        }, {
 #endif
        .key =
-       "\x30\x82\x02\x1F" /* sequence of 543 bytes */
+       "\x30\x82\x02\x20" /* sequence of 544 bytes */
        "\x02\x01\x01" /* version - integer of 1 byte */
-       "\x02\x82\x01\x00" /* modulus - integer of 256 bytes */
+       "\x02\x82\x01\x01\x00" /* modulus - integer of 256 bytes */
        "\xDB\x10\x1A\xC2\xA3\xF1\xDC\xFF\x13\x6B\xED\x44\xDF\xF0\x02\x6D"
        "\x13\xC7\x88\xDA\x70\x6B\x54\xF1\xE8\x27\xDC\xC3\x0F\x99\x6A\xFA"
        "\xC6\x67\xFF\x1D\x1E\x3C\x1D\xC1\xB5\x5F\x6C\xC0\xB2\x07\x3A\x6D"
@@ -299,7 +299,7 @@ static const struct akcipher_testvec rsa_tv_template[] = {
        "\x02\x01\x00" /* exponent1 - integer of 1 byte */
        "\x02\x01\x00" /* exponent2 - integer of 1 byte */
        "\x02\x01\x00", /* coefficient - integer of 1 byte */
-       .key_len = 547,
+       .key_len = 548,
        .m = "\x54\x85\x9b\x34\x2c\x49\xea\x2a",
        .c =
        "\xb2\x97\x76\xb4\xae\x3e\x38\x3c\x7e\x64\x1f\xcc\xa2\x7f\xf6\xbe"