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

Unified Diff: firmware/lib/cryptolib/rsa.c

Issue 2851015: Fixes to compiler warnings in MSVC (Closed) Base URL: ssh://gitrw.chromium.org/vboot_reference.git
Patch Set: Also fix gpt numbering bug Created 10 years, 6 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: firmware/lib/cryptolib/rsa.c
diff --git a/firmware/lib/cryptolib/rsa.c b/firmware/lib/cryptolib/rsa.c
index bfc644690e615d64c2f068bb1bef123afd6f32c2..930d91b4a332e6ffb14c9ec228b559478c408000 100644
--- a/firmware/lib/cryptolib/rsa.c
+++ b/firmware/lib/cryptolib/rsa.c
@@ -14,7 +14,7 @@
/* a[] -= mod */
static void subM(const RSAPublicKey *key, uint32_t *a) {
int64_t A = 0;
- int i;
+ uint32_t i;
for (i = 0; i < key->len; ++i) {
A += (uint64_t)a[i] - key->n[i];
a[i] = (uint32_t)A;
@@ -24,7 +24,7 @@ static void subM(const RSAPublicKey *key, uint32_t *a) {
/* return a[] >= mod */
static int geM(const RSAPublicKey *key, uint32_t *a) {
- int i;
+ uint32_t i;
for (i = key->len; i;) {
--i;
if (a[i] < key->n[i]) return 0;
@@ -38,14 +38,14 @@ static void montMulAdd(const RSAPublicKey *key,
uint32_t* c,
const uint32_t a,
const uint32_t* b) {
- uint64_t A = (uint64_t)a * b[0] + c[0];
+ uint64_t A = UINT64_MULT32(a, b[0]) + c[0];
uint32_t d0 = (uint32_t)A * key->n0inv;
- uint64_t B = (uint64_t)d0 * key->n[0] + (uint32_t)A;
- int i;
+ uint64_t B = UINT64_MULT32(d0, key->n[0]) + (uint32_t)A;
+ uint32_t i;
for (i = 1; i < key->len; ++i) {
- A = (A >> 32) + (uint64_t)a * b[i] + c[i];
- B = (B >> 32) + (uint64_t)d0 * key->n[i] + (uint32_t)A;
+ A = (A >> 32) + UINT64_MULT32(a, b[i]) + c[i];
+ B = (B >> 32) + UINT64_MULT32(d0, key->n[i]) + (uint32_t)A;
c[i - 1] = (uint32_t)B;
}
@@ -63,7 +63,7 @@ static void montMul(const RSAPublicKey *key,
uint32_t* c,
uint32_t* a,
uint32_t* b) {
- int i;
+ uint32_t i;
for (i = 0; i < key->len; ++i) {
c[i] = 0;
}
@@ -85,7 +85,7 @@ static void modpowF4(const RSAPublicKey *key,
int i;
/* Convert from big endian byte array to little endian word array. */
- for (i = 0; i < key->len; ++i) {
+ for (i = 0; i < (int)key->len; ++i) {
gauravsh 2010/06/21 23:32:48 both i and key->len are uint32_t, so this cast see
Randall Spangler 2010/06/21 23:58:05 i is a (signed) int; key->len is a uint32_t. So M
uint32_t tmp =
(inout[((key->len - 1 - i) * 4) + 0] << 24) |
(inout[((key->len - 1 - i) * 4) + 1] << 16) |
@@ -108,12 +108,12 @@ static void modpowF4(const RSAPublicKey *key,
}
/* Convert to bigendian byte array */
- for (i = key->len - 1; i >= 0; --i) {
+ for (i = (int)key->len - 1; i >= 0; --i) {
gauravsh 2010/06/21 23:32:48 i and key->len are both uint32_t
uint32_t tmp = aaa[i];
- *inout++ = tmp >> 24;
- *inout++ = tmp >> 16;
- *inout++ = tmp >> 8;
- *inout++ = tmp >> 0;
+ *inout++ = (uint8_t)(tmp >> 24);
+ *inout++ = (uint8_t)(tmp >> 16);
+ *inout++ = (uint8_t)(tmp >> 8);
+ *inout++ = (uint8_t)(tmp >> 0);
}
Free(a);
@@ -126,7 +126,7 @@ static void modpowF4(const RSAPublicKey *key,
*/
int RSAVerify(const RSAPublicKey *key,
const uint8_t *sig,
- const int sig_len,
+ const uint32_t sig_len,
const uint8_t sig_type,
const uint8_t *hash) {
int i;

Powered by Google App Engine
This is Rietveld 408576698