Refactor siglen_map[] to store key size in bytes instead of 32-bit words.
Review URL: http://codereview.chromium.org/660261
diff --git a/utils/file_keys.c b/utils/file_keys.c
index 2401a15..1aac93f 100644
--- a/utils/file_keys.c
+++ b/utils/file_keys.c
@@ -66,7 +66,7 @@
int cmd_len;
FILE* cmd_out; /* File descriptor to command output. */
uint8_t* signature = NULL;
- int signature_size = siglen_map[algorithm] * sizeof(uint32_t);
+ int signature_size = siglen_map[algorithm];
/* Build command line:
* sign_data.sh <algorithm> <key file> <input file>
diff --git a/utils/firmware_image.c b/utils/firmware_image.c
index 714d5dd..d5b0549 100644
--- a/utils/firmware_image.c
+++ b/utils/firmware_image.c
@@ -81,7 +81,7 @@
/* Compute size of pre-processed RSA public key and signature. */
sign_key_len = RSAProcessedKeySize(image->sign_algorithm);
- signature_len = siglen_map[image->sign_algorithm] * sizeof(uint32_t);
+ signature_len = siglen_map[image->sign_algorithm];
/* Check whether the header length is correct. */
@@ -166,7 +166,7 @@
write(fd, image->magic, FIELD_LEN(magic));
WriteFirmwareHeader(fd, image);
write(fd, image->key_signature, FIELD_LEN(key_signature));
- signature_len = siglen_map[image->sign_algorithm] * sizeof(uint32_t);
+ signature_len = siglen_map[image->sign_algorithm];
WriteFirmwarePreamble(fd, image);
write(fd, image->preamble_signature, signature_len);
write(fd, image->firmware_signature, signature_len);
@@ -293,7 +293,7 @@
const uint8_t* firmware_data_start,
int firmware_len,
int algorithm) {
- int signature_len = siglen_map[algorithm] * sizeof(uint32_t);
+ int signature_len = siglen_map[algorithm];
if (!RSAVerifyBinary_f(NULL, sign_key, /* Key to use. */
firmware_data_start + signature_len, /* Data to
* verify */
@@ -335,7 +335,7 @@
sign_key_ptr = header_ptr + (FIELD_LEN(header_len) +
FIELD_LEN(sign_algorithm));
sign_key = RSAPublicKeyFromBuf(sign_key_ptr, sign_key_len);
- signature_len = siglen_map[algorithm] * sizeof(uint32_t);
+ signature_len = siglen_map[algorithm];
/* Only continue if preamble verification succeeds. */
preamble_ptr = (header_ptr + header_len +
@@ -406,7 +406,7 @@
sign_key_size = RSAProcessedKeySize(image->sign_algorithm);
sign_key = RSAPublicKeyFromBuf(image->sign_key,
sign_key_size);
- signature_size = siglen_map[image->sign_algorithm] * sizeof(uint32_t);
+ signature_size = siglen_map[image->sign_algorithm];
if (image->sign_algorithm >= kNumAlgorithms)
return VERIFY_FIRMWARE_INVALID_ALGORITHM;
@@ -477,7 +477,7 @@
char* tmp_firmware_file = ".tmpFirmwareFile";
uint8_t* preamble_signature;
uint8_t* firmware_signature;
- int signature_len = siglen_map[algorithm] * sizeof(uint32_t);
+ int signature_len = siglen_map[algorithm];
/* Write preamble to a file. */
if(-1 == (tmp_preamble_fd = creat(tmp_preamble_file, S_IRWXU))) {
diff --git a/utils/kernel_image.c b/utils/kernel_image.c
index 8f874ec..b5f07c2 100644
--- a/utils/kernel_image.c
+++ b/utils/kernel_image.c
@@ -92,13 +92,9 @@
/* Compute size of pre-processed RSA public keys and signatures. */
firmware_sign_key_len = RSAProcessedKeySize(image->firmware_sign_algorithm);
- /* TODO(gauravsh): Make siglen_map track the signature length in number
- * of bytes rather than 32-bit words. */
- kernel_key_signature_len = (siglen_map[image->firmware_sign_algorithm] *
- sizeof(uint32_t));
+ kernel_key_signature_len = siglen_map[image->firmware_sign_algorithm];
kernel_sign_key_len = RSAProcessedKeySize(image->kernel_sign_algorithm);
- kernel_signature_len = (siglen_map[image->kernel_sign_algorithm] *
- sizeof(uint32_t));
+ kernel_signature_len = siglen_map[image->kernel_sign_algorithm];
/* Check whether key header length is correct. */
header_len = (FIELD_LEN(header_version) +
@@ -200,10 +196,8 @@
return NULL;
}
- kernel_key_signature_len = (siglen_map[image->firmware_sign_algorithm] *
- sizeof(uint32_t));
- kernel_signature_len = (siglen_map[image->kernel_sign_algorithm] *
- sizeof(uint32_t));
+ kernel_key_signature_len = siglen_map[image->firmware_sign_algorithm];
+ kernel_signature_len = siglen_map[image->kernel_sign_algorithm];
write(fd, image->magic, FIELD_LEN(magic));
WriteKernelHeader(fd, image);
@@ -365,7 +359,7 @@
const uint8_t* kernel_data_start,
int kernel_len,
int algorithm) {
- int signature_len = siglen_map[algorithm] * sizeof(uint32_t);
+ int signature_len = siglen_map[algorithm];
if (!RSAVerifyBinary_f(NULL, kernel_sign_key, /* Key to use. */
kernel_data_start + signature_len, /* Data to
* verify */
@@ -415,9 +409,8 @@
FIELD_LEN(kernel_key_version));
kernel_sign_key = RSAPublicKeyFromBuf(kernel_sign_key_ptr,
kernel_sign_key_len);
- kernel_signature_len = siglen_map[kernel_sign_algorithm] * sizeof(uint32_t);
- kernel_key_signature_len = siglen_map[firmware_sign_algorithm] *
- sizeof(uint32_t);
+ kernel_signature_len = siglen_map[kernel_sign_algorithm];
+ kernel_key_signature_len = siglen_map[firmware_sign_algorithm];
/* Only continue if config verification succeeds. */
config_ptr = (header_ptr + header_len + kernel_key_signature_len);
@@ -486,8 +479,7 @@
FIELD_LEN(header_checksum));
header_digest = DigestFinal(&ctx);
if (!RSA_verify(firmware_key, image->kernel_key_signature,
- siglen_map[image->firmware_sign_algorithm] *
- sizeof(uint32_t),
+ siglen_map[image->firmware_sign_algorithm],
image->firmware_sign_algorithm,
header_digest)) {
fprintf(stderr, "VerifyKernelImage(): Key signature check failed.\n");
@@ -500,8 +492,7 @@
kernel_sign_key_size = RSAProcessedKeySize(image->kernel_sign_algorithm);
kernel_sign_key = RSAPublicKeyFromBuf(image->kernel_sign_key,
kernel_sign_key_size);
- kernel_signature_size = siglen_map[image->kernel_sign_algorithm] *
- sizeof(uint32_t);
+ kernel_signature_size = siglen_map[image->kernel_sign_algorithm];
/* Verify kernel config signature. */
DigestInit(&ctx, image->kernel_sign_algorithm);
@@ -549,8 +540,7 @@
int tmp_hdr_fd;
char* tmp_hdr_file = ".tmpKernelHdrFile";
uint8_t* signature;
- int signature_len = siglen_map[image->firmware_sign_algorithm] *
- sizeof(uint32_t);
+ int signature_len = siglen_map[image->firmware_sign_algorithm];
if(-1 == (tmp_hdr_fd = creat(tmp_hdr_file, S_IRWXU))) {
fprintf(stderr, "Could not open temporary file for writing "
@@ -575,7 +565,7 @@
char* tmp_kernel_file = ".tmpKernelFile";
uint8_t* config_signature;
uint8_t* kernel_signature;
- int signature_len = siglen_map[algorithm] * sizeof(uint32_t);
+ int signature_len = siglen_map[algorithm];
/* Write config to a file. */
if(-1 == (tmp_config_fd = creat(tmp_config_file, S_IRWXU))) {
diff --git a/utils/verify_data.c b/utils/verify_data.c
index c58b6fb..8a79d0f 100644
--- a/utils/verify_data.c
+++ b/utils/verify_data.c
@@ -74,8 +74,7 @@
return 0;
}
/* Length of the RSA Signature/RSA Key */
- sig_len = siglen_map[algorithm] * sizeof(uint32_t);
-
+ sig_len = siglen_map[algorithm];
if (!(key = RSAPublicKeyFromFile(argv[2])))
goto failure;
if (!(signature = read_signature(argv[3], sig_len)))