summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLei He <helei.sig11@bytedance.com>2021-11-05 20:25:31 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2021-11-20 15:02:08 +1100
commit0dfcf8449fd6484b7af52274d4aebc4a765eb4c9 (patch)
tree91693e187437b7bed22d76e0d5d95b1da4a4fa1e
parentc301abe70853f39db24ca08966ea0e543b4410d5 (diff)
downloadlinux-crypto-0dfcf8449fd6484b7af52274d4aebc4a765eb4c9.tar.gz
linux-crypto-0dfcf8449fd6484b7af52274d4aebc4a765eb4c9.zip
crypto: testmgr - Fix wrong test case of RSA
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>
-rw-r--r--crypto/testmgr.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 779720bf..a253d66b 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -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"