diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2012-08-06 15:38:49 +0000 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-08-06 12:06:47 -0700 |
commit | 63a0c47f501dd0ca59d763eb6c99022b4ba9d73c (patch) | |
tree | 79e0f7e242e5d98f1edda432432eb53c5cb4559f | |
parent | b48cd672a731df7866b43110c62ebbbf23120125 (diff) | |
download | vboot-63a0c47f501dd0ca59d763eb6c99022b4ba9d73c.tar.gz |
cryptolib: put constant arrays in rodata segment
The SHA256 constants and some algo definitions are currently in the
.data segment, this wastes precious RAM on the EC where read-only data
are stored in flash only.
BUG=chrome-os-partner:12271
TEST=sudo emerge vboot_reference &&
emerge-daisy vboot_reference vboot_reference-firmware chromeos-ec
and manually check the content of the .data segment in the EC binary.
Change-Id: I67b8c0f2843312651e8ac287cea2f8cb5f075453
Reviewed-on: https://gerrit.chromium.org/gerrit/29273
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | firmware/lib/cryptolib/include/padding.h | 6 | ||||
-rw-r--r-- | firmware/lib/cryptolib/padding.c | 6 | ||||
-rw-r--r-- | firmware/lib/cryptolib/sha256.c | 4 | ||||
-rw-r--r-- | firmware/lib/cryptolib/sha512.c | 4 |
4 files changed, 10 insertions, 10 deletions
diff --git a/firmware/lib/cryptolib/include/padding.h b/firmware/lib/cryptolib/include/padding.h index 59b8dc39..8cb00303 100644 --- a/firmware/lib/cryptolib/include/padding.h +++ b/firmware/lib/cryptolib/include/padding.h @@ -29,12 +29,12 @@ extern const int kNumAlgorithms; extern const int digestinfo_size_map[]; extern const int siglen_map[]; -extern const uint8_t* padding_map[]; +extern const uint8_t* const padding_map[]; extern const int padding_size_map[]; extern const int hash_type_map[]; extern const int hash_size_map[]; extern const int hash_blocksize_map[]; -extern const uint8_t* hash_digestinfo_map[]; -extern const char* algo_strings[]; +extern const uint8_t* const hash_digestinfo_map[]; +extern const char* const algo_strings[]; #endif /* VBOOT_REFERENCE_PADDING_H_ */ diff --git a/firmware/lib/cryptolib/padding.c b/firmware/lib/cryptolib/padding.c index 41abe044..eaeb19e9 100644 --- a/firmware/lib/cryptolib/padding.c +++ b/firmware/lib/cryptolib/padding.c @@ -143,7 +143,7 @@ RSA8192NUMBYTES, RSA8192NUMBYTES, }; -const uint8_t* padding_map[NUMALGORITHMS] = { +const uint8_t* const padding_map[NUMALGORITHMS] = { #ifdef CHROMEOS_EC 0, 0, @@ -233,7 +233,7 @@ SHA256_BLOCK_SIZE, SHA512_BLOCK_SIZE, }; -const uint8_t* hash_digestinfo_map[NUMALGORITHMS] = { +const uint8_t* const hash_digestinfo_map[NUMALGORITHMS] = { SHA1_digestinfo, SHA256_digestinfo, SHA512_digestinfo, @@ -248,7 +248,7 @@ SHA256_digestinfo, SHA512_digestinfo, }; -const char* algo_strings[NUMALGORITHMS] = { +const char* const algo_strings[NUMALGORITHMS] = { "RSA1024 SHA1", "RSA1024 SHA256", "RSA1024 SHA512", diff --git a/firmware/lib/cryptolib/sha256.c b/firmware/lib/cryptolib/sha256.c index 9b01380c..6d3c08dd 100644 --- a/firmware/lib/cryptolib/sha256.c +++ b/firmware/lib/cryptolib/sha256.c @@ -82,11 +82,11 @@ wv[h] = t1 + t2; \ } -uint32_t sha256_h0[8] = { +static const uint32_t sha256_h0[8] = { 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19}; -uint32_t sha256_k[64] = { +static const uint32_t sha256_k[64] = { 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, diff --git a/firmware/lib/cryptolib/sha512.c b/firmware/lib/cryptolib/sha512.c index 25dcd387..ee30b602 100644 --- a/firmware/lib/cryptolib/sha512.c +++ b/firmware/lib/cryptolib/sha512.c @@ -98,13 +98,13 @@ wv[h] = t1 + t2; \ } -uint64_t sha512_h0[8] = { +static const uint64_t sha512_h0[8] = { 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL}; -uint64_t sha512_k[80] = { +static const uint64_t sha512_k[80] = { 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, |