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