Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(619)

Unified Diff: src/platform/vboot_reference/utils/kernel_image.c

Issue 660261: Refactor siglen_map[] to store key size in bytes instead of 32-bit words. (Closed)
Patch Set: Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/platform/vboot_reference/utils/kernel_image.c
diff --git a/src/platform/vboot_reference/utils/kernel_image.c b/src/platform/vboot_reference/utils/kernel_image.c
index 8f874ec83e8afcb71726c7e8bba7b135c8e436c1..b5f07c2fae9226f5008b85e7877fbcb342d848db 100644
--- a/src/platform/vboot_reference/utils/kernel_image.c
+++ b/src/platform/vboot_reference/utils/kernel_image.c
@@ -92,13 +92,9 @@ KernelImage* ReadKernelImage(const char* input_file) {
/* 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 @@ KernelImage* WriteKernelImage(const char* input_file,
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 @@ int VerifyKernelData(RSAPublicKey* kernel_sign_key,
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 @@ int VerifyKernel(const uint8_t* firmware_key_blob,
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 @@ int VerifyKernelImage(const RSAPublicKey* firmware_key,
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 @@ int VerifyKernelImage(const RSAPublicKey* firmware_key,
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 AddKernelKeySignature(KernelImage* image, const char* firmware_key_file) {
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 @@ int AddKernelSignature(KernelImage* image, const char* kernel_signing_key_file,
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))) {
« no previous file with comments | « src/platform/vboot_reference/utils/firmware_image.c ('k') | src/platform/vboot_reference/utils/verify_data.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698