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

Side by Side Diff: vboot_firmware/lib/cryptolib/rsa_utility.c

Issue 2745007: Major refactoring of structures, with unit tests. (Closed) Base URL: ssh://gitrw.chromium.org/vboot_reference.git
Patch Set: Implemented LoadFirmware2() 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 unified diff | Download patch
OLDNEW
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 * 4 *
5 * Implementation of RSA utility functions. 5 * Implementation of RSA utility functions.
6 */ 6 */
7 7
8 #include "cryptolib.h" 8 #include "cryptolib.h"
9 #include "stateful_util.h" 9 #include "stateful_util.h"
10 10
11 int RSAProcessedKeySize(int algorithm) { 11 int RSAProcessedKeySize(int algorithm) {
12 int key_len = siglen_map[algorithm]; /* Key length in 12 int key_len = siglen_map[algorithm]; /* Key length in
13 * bytes. */ 13 * bytes. */
14 /* Total size needed by a RSAPublicKey structure is = 14 /* Total size needed by a RSAPublicKey structure is =
15 * 2 * key_len bytes for the n and rr arrays 15 * 2 * key_len bytes for the n and rr arrays
16 * + sizeof len + sizeof n0inv. 16 * + sizeof len + sizeof n0inv.
17 */ 17 */
18 return (2 * key_len + sizeof(int) + sizeof(uint32_t)); 18 return (2 * key_len + sizeof(uint32_t) + sizeof(uint32_t));
19 } 19 }
20 20
21 RSAPublicKey* RSAPublicKeyNew(void) { 21 RSAPublicKey* RSAPublicKeyNew(void) {
22 RSAPublicKey* key = (RSAPublicKey*) Malloc(sizeof(RSAPublicKey)); 22 RSAPublicKey* key = (RSAPublicKey*) Malloc(sizeof(RSAPublicKey));
23 key->n = NULL; 23 key->n = NULL;
24 key->rr = NULL; 24 key->rr = NULL;
25 return key; 25 return key;
26 } 26 }
27 27
28 void RSAPublicKeyFree(RSAPublicKey* key) { 28 void RSAPublicKeyFree(RSAPublicKey* key) {
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 verification_key = (RSAPublicKey*) key; /* Supress const warning. */ 124 verification_key = (RSAPublicKey*) key; /* Supress const warning. */
125 else 125 else
126 return 0; /* Both can't be NULL or non-NULL. */ 126 return 0; /* Both can't be NULL or non-NULL. */
127 127
128 success = RSAVerify(verification_key, sig, sig_size, algorithm, digest); 128 success = RSAVerify(verification_key, sig, sig_size, algorithm, digest);
129 129
130 if (!key) 130 if (!key)
131 RSAPublicKeyFree(verification_key); /* Only free if we allocated it. */ 131 RSAPublicKeyFree(verification_key); /* Only free if we allocated it. */
132 return success; 132 return success;
133 } 133 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698