Index: src/platform/vboot_reference/tests/verify_data.c |
diff --git a/src/platform/vboot_reference/tests/verify_data.c b/src/platform/vboot_reference/tests/verify_data.c |
index d5b1c99d24693c5d3220ac6d0ca0218a4e0b0e00..c183b3b498442d95d6b6444733c0aaee29e3be4f 100644 |
--- a/src/platform/vboot_reference/tests/verify_data.c |
+++ b/src/platform/vboot_reference/tests/verify_data.c |
@@ -15,12 +15,11 @@ |
#include <sys/types.h> |
#include <unistd.h> |
+#include "digest_utility.h" |
#include "padding.h" |
#include "rsa.h" |
-#include "sha.h" |
#include "verify_data.h" |
- |
RSAPublicKey* read_RSAkey(char *input_file, int len) { |
int key_fd; |
RSAPublicKey *key = NULL; |
@@ -70,111 +69,6 @@ RSAPublicKey* read_RSAkey(char *input_file, int len) { |
return key; |
} |
-uint8_t* SHA1_file(char *input_file) { |
- int i, input_fd, len; |
- uint8_t data[SHA1_BLOCK_SIZE], *digest = NULL, *p = NULL; |
- SHA1_CTX ctx; |
- |
- if( (input_fd = open(input_file, O_RDONLY)) == -1 ) { |
- fprintf(stderr, "Couldn't open input file.\n"); |
- return NULL; |
- } |
- |
- /* Calculate SHA1 hash of input blocks, reading one block at a time. */ |
- SHA1_init(&ctx); |
- while ( (len = read(input_fd, data, SHA1_BLOCK_SIZE)) == SHA1_BLOCK_SIZE) |
- SHA1_update(&ctx, data, len); |
- if (len != -1) |
- SHA1_update(&ctx, data, len); |
- p = SHA1_final(&ctx); |
- close(input_fd); |
- |
- digest = (uint8_t*) malloc(SHA1_DIGEST_SIZE); |
- if (!digest) |
- return NULL; |
- for (i=0; i < SHA1_DIGEST_SIZE; i++) |
- digest[i] = *p++; |
- |
- return digest; |
-} |
- |
-uint8_t* SHA256_file(char *input_file) { |
- int i, input_fd, len; |
- uint8_t data[SHA256_BLOCK_SIZE], *digest = NULL, *p = NULL; |
- SHA256_CTX ctx; |
- |
- if( (input_fd = open(input_file, O_RDONLY)) == -1 ) { |
- fprintf(stderr, "Couldn't open input file.\n"); |
- return NULL; |
- } |
- |
- /* Calculate SHA256 hash of file, reading one block at a time. */ |
- SHA256_init(&ctx); |
- while ( (len = read(input_fd, data, SHA256_BLOCK_SIZE)) == SHA256_BLOCK_SIZE) |
- SHA256_update(&ctx, data, len); |
- if (len != -1) |
- SHA256_update(&ctx, data, len); |
- p = SHA256_final(&ctx); |
- close(input_fd); |
- |
- digest = (uint8_t*) malloc(SHA256_DIGEST_SIZE); |
- if (!digest) |
- return NULL; |
- for (i=0; i < SHA256_DIGEST_SIZE; i++) |
- digest[i] = *p++; |
- |
- return digest; |
-} |
- |
-uint8_t* SHA512_file(char* input_file) { |
- int input_fd; |
- uint8_t data[SHA512_BLOCK_SIZE], *digest = NULL, *p = NULL; |
- int i, len; |
- SHA512_CTX ctx; |
- |
- if( (input_fd = open(input_file, O_RDONLY)) == -1 ) { |
- fprintf(stderr, "Couldn't open input file.\n"); |
- return NULL; |
- } |
- |
- /* Calculate SHA512 hash of file, reading one block at a time. */ |
- SHA512_init(&ctx); |
- while ( (len = read(input_fd, data, SHA512_BLOCK_SIZE)) == SHA512_BLOCK_SIZE) |
- SHA512_update(&ctx, data, len); |
- if (len != -1) |
- SHA512_update(&ctx, data, len); |
- p = SHA512_final(&ctx); |
- close(input_fd); |
- |
- digest = (uint8_t*) malloc(SHA512_DIGEST_SIZE); |
- if (!digest) |
- return NULL; |
- for (i=0; i < SHA512_DIGEST_SIZE; i++) |
- digest[i] = *p++; |
- |
- return digest; |
-} |
- |
- |
-uint8_t* calculate_digest(char *input_file, int algorithm) { |
- typedef uint8_t* (*Hash_file_ptr) (char*); |
- Hash_file_ptr hash_file[] = { |
- SHA1_file, /* RSA 1024 */ |
- SHA256_file, |
- SHA512_file, |
- SHA1_file, /* RSA 2048 */ |
- SHA256_file, |
- SHA512_file, |
- SHA1_file, /* RSA 4096 */ |
- SHA256_file, |
- SHA512_file, |
- SHA1_file, /* RSA 8192 */ |
- SHA256_file, |
- SHA512_file, |
- }; |
- return hash_file[algorithm](input_file); |
-} |
- |
uint8_t* read_signature(char *input_file, int len) { |
int i, sigfd; |
uint8_t *signature = NULL; |