mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 10:14:55 +00:00
http://codereview.chromium.org/1574005 http://codereview.chromium.org/1604001 Review URL: http://codereview.chromium.org/1585007
47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#include "rsa_padding_test.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "cryptolib.h"
|
|
#include "file_keys.h"
|
|
|
|
int main(int argc, char* argv[]) {
|
|
int i;
|
|
int error = 0;
|
|
RSAPublicKey* key;
|
|
if (argc != 2) {
|
|
fprintf(stderr, "Usage: %s <test public key>\n", argv[0]);
|
|
return 1;
|
|
}
|
|
key = RSAPublicKeyFromFile(argv[1]);
|
|
if (!key) {
|
|
fprintf(stderr, "Couldn't read RSA public key for the test.\n");
|
|
return 1;
|
|
}
|
|
|
|
/* The first test signature is valid. */
|
|
if (!RSAVerify(key, signatures[0], RSA1024NUMBYTES, 0,
|
|
test_message_sha1_hash)) {
|
|
fprintf(stderr, "RSA Padding Test vector 0 FAILED!\n");
|
|
error = 255; /* Test failure. */
|
|
}
|
|
/* All other signatures should fail verification. */
|
|
for (i = 1; i < sizeof(signatures) / sizeof(signatures[0]); i++) {
|
|
if (RSAVerify(key, signatures[i], RSA1024NUMBYTES, 0,
|
|
test_message_sha1_hash)) {
|
|
fprintf(stderr, "RSA Padding Test vector %d FAILED!\n", i);
|
|
error = 255; /* Test failure. */
|
|
}
|
|
}
|
|
if (!error)
|
|
fprintf(stderr, "RSA Padding Test PASSED for all test vectors.");
|
|
|
|
RSAPublicKeyFree(key);
|
|
return error;
|
|
}
|