blob: 429210bdc326a90e8e27fc2daa447df89b1b332f [file] [log] [blame]
Gaurav Shah7d122e22010-02-24 16:41:32 -08001/* 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
6#include "rsa_padding_test.h"
7
8#include <stdio.h>
9
10#include "file_keys.h"
11#include "rsa_utility.h"
12
13int main(int argc, char* argv[]) {
14 int i;
15 int error = 0;
16 RSAPublicKey* key;
17 if (argc != 2) {
18 fprintf(stderr, "Usage: %s <test public key>\n", argv[0]);
19 return 1;
20 }
21 key = RSAPublicKeyFromFile(argv[1]);
22 if (!key) {
23 fprintf(stderr, "Couldn't read RSA public key for the test.\n");
24 return 1;
25 }
26
27 /* The first test signature is valid. */
Gaurav Shahf5564fa2010-03-02 15:40:01 -080028 if (!RSAVerify(key, signatures[0], RSA1024NUMBYTES, 0,
Gaurav Shah7d122e22010-02-24 16:41:32 -080029 test_message_sha1_hash)) {
30 fprintf(stderr, "RSA Padding Test vector 0 FAILED!\n");
31 error = 255; /* Test failure. */
32 }
33 /* All other signatures should fail verification. */
34 for (i = 1; i < sizeof(signatures) / sizeof(signatures[0]); i++) {
Gaurav Shahf5564fa2010-03-02 15:40:01 -080035 if (RSAVerify(key, signatures[i], RSA1024NUMBYTES, 0,
Gaurav Shah7d122e22010-02-24 16:41:32 -080036 test_message_sha1_hash)) {
37 fprintf(stderr, "RSA Padding Test vector %d FAILED!\n", i);
38 error = 255; /* Test failure. */
39 }
40 }
41 if (!error)
42 fprintf(stderr, "RSA Padding Test PASSED for all test vectors.");
43
44 return error;
45}