xref: /aosp_15_r20/external/vboot_reference/tests/rsa_padding_test.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker /* Copyright 2010 The ChromiumOS Authors
2*8617a60dSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
3*8617a60dSAndroid Build Coastguard Worker  * found in the LICENSE file.
4*8617a60dSAndroid Build Coastguard Worker  *
5*8617a60dSAndroid Build Coastguard Worker  * Signature tests vectors for checking RSA PKCS #1 v1.5 padding
6*8617a60dSAndroid Build Coastguard Worker  * implementations. These check an RSA signature verification implementation
7*8617a60dSAndroid Build Coastguard Worker  * against Daniel Bleichhenbacher's RSA signature padding attack.
8*8617a60dSAndroid Build Coastguard Worker  *
9*8617a60dSAndroid Build Coastguard Worker  * Test vectors are due to Daniel Bleichenbacher ([email protected]).
10*8617a60dSAndroid Build Coastguard Worker  */
11*8617a60dSAndroid Build Coastguard Worker 
12*8617a60dSAndroid Build Coastguard Worker #ifndef VBOOT_REFERENCE_RSA_PADDING_TEST_H_
13*8617a60dSAndroid Build Coastguard Worker #define VBOOT_REFERENCE_RSA_PADDING_TEST_H_
14*8617a60dSAndroid Build Coastguard Worker 
15*8617a60dSAndroid Build Coastguard Worker #define RSA1024NUMBYTES 128  /* 1024 bit key length */
16*8617a60dSAndroid Build Coastguard Worker #define RSA2048NUMBYTES 256  /* 2048 bit key length */
17*8617a60dSAndroid Build Coastguard Worker #define RSA3072NUMBYTES 384  /* 3072 bit key length */
18*8617a60dSAndroid Build Coastguard Worker #define RSA4096NUMBYTES 512  /* 4096 bit key length */
19*8617a60dSAndroid Build Coastguard Worker #define RSA8192NUMBYTES 1024  /* 8192 bit key length */
20*8617a60dSAndroid Build Coastguard Worker 
21*8617a60dSAndroid Build Coastguard Worker /* The modulus of the public key (RSA-1024). */
22*8617a60dSAndroid Build Coastguard Worker static const uint8_t pubkey_n[] = {
23*8617a60dSAndroid Build Coastguard Worker 210, 136, 105, 162, 117, 171, 114, 146, 81, 242, 21, 222, 87, 60, 122, 176, 245,
24*8617a60dSAndroid Build Coastguard Worker 57, 213, 159, 196, 165, 40, 75, 146, 35, 114, 118, 25, 196, 150, 38, 40, 195,
25*8617a60dSAndroid Build Coastguard Worker 56, 109, 145, 47, 171, 117, 57, 220, 176, 186, 70, 175, 222, 65, 60, 65, 31, 88,
26*8617a60dSAndroid Build Coastguard Worker 93, 220, 27, 74, 73, 43, 112, 6, 242, 78, 38, 229, 58, 206, 200, 4, 196, 67, 8,
27*8617a60dSAndroid Build Coastguard Worker 141, 21, 141, 79, 214, 221, 179, 184, 64, 92, 8, 222, 68, 16, 97, 101, 68, 210,
28*8617a60dSAndroid Build Coastguard Worker 155, 217, 238, 78, 207, 202, 43, 16, 241, 194, 78, 28, 172, 124, 44, 111, 181,
29*8617a60dSAndroid Build Coastguard Worker 187, 71, 57, 190, 50, 109, 254, 170, 103, 126, 124, 156, 169, 36, 164, 186, 136,
30*8617a60dSAndroid Build Coastguard Worker 108, 66, 44, 147, 137};
31*8617a60dSAndroid Build Coastguard Worker 
32*8617a60dSAndroid Build Coastguard Worker /* The exponent of the public key (65535) */
33*8617a60dSAndroid Build Coastguard Worker static const uint8_t pubkey_e[] = {1, 0, 1};
34*8617a60dSAndroid Build Coastguard Worker 
35*8617a60dSAndroid Build Coastguard Worker /* The message for the test. */
36*8617a60dSAndroid Build Coastguard Worker static const uint8_t test_message[] = {0, 0, 0, 0};
37*8617a60dSAndroid Build Coastguard Worker 
38*8617a60dSAndroid Build Coastguard Worker /* The SHA1 digest of the message. i.e.
39*8617a60dSAndroid Build Coastguard Worker  * '9069ca78e7450a285173431b3e52c5c25299e473'. */
40*8617a60dSAndroid Build Coastguard Worker static const uint8_t test_message_sha1_hash[] = {
41*8617a60dSAndroid Build Coastguard Worker 144, 105, 202, 120, 231, 69, 10, 40, 81, 115, 67, 27, 62, 82, 197, 194, 82, 153,
42*8617a60dSAndroid Build Coastguard Worker 228, 115};
43*8617a60dSAndroid Build Coastguard Worker 
44*8617a60dSAndroid Build Coastguard Worker /* The test signatures (RSA-1024/SHA-1). signature[0] is correct,
45*8617a60dSAndroid Build Coastguard Worker  * all other signatures are incorrect.
46*8617a60dSAndroid Build Coastguard Worker  *
47*8617a60dSAndroid Build Coastguard Worker  * TODO(gauravsh): Add similar test vectors for other string
48*8617a60dSAndroid Build Coastguard Worker  */
49*8617a60dSAndroid Build Coastguard Worker static const uint8_t signatures[][RSA1024NUMBYTES] = {
50*8617a60dSAndroid Build Coastguard Worker #include "testcases/padding_test_vectors.inc"
51*8617a60dSAndroid Build Coastguard Worker };
52*8617a60dSAndroid Build Coastguard Worker 
53*8617a60dSAndroid Build Coastguard Worker #endif  /* VBOOT_REFERENCE_RSA_PADDING_TEST_H_ */
54