cryptolib: rename SHA* function to avoid openssl collision

When linking tools that need OpenSSL functions on the target, the
resolution of SHA* functions was being redirected to the firmware
cryptolib instead of the OpenSSL implementations, which was causing
OpenSSL calls to crash. This renames the internal implementations
to avoid the collision.

BUG=None
TEST=make runtests passes, mount-encrypted runs on target again.

Change-Id: Ica4fb04faf203ae3b4118c540f18d40239753810
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/23305
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
This commit is contained in:
Kees Cook
2012-05-22 18:05:53 -07:00
committed by Gerrit
parent b75d8adcc0
commit 201fe0bb55
7 changed files with 25 additions and 25 deletions

View File

@@ -69,19 +69,19 @@ uint8_t* SHA512_final(SHA512_CTX* ctx);
* and stores it into [digest]. [digest] should be pre-allocated to
* SHA1_DIGEST_SIZE bytes.
*/
uint8_t* SHA1(const uint8_t* data, uint64_t len, uint8_t* digest);
uint8_t* internal_SHA1(const uint8_t* data, uint64_t len, uint8_t* digest);
/* Convenience function for SHA-256. Computes hash on [data] of length [len].
* and stores it into [digest]. [digest] should be pre-allocated to
* SHA256_DIGEST_SIZE bytes.
*/
uint8_t* SHA256(const uint8_t* data, uint64_t len, uint8_t* digest);
uint8_t* internal_SHA256(const uint8_t* data, uint64_t len, uint8_t* digest);
/* Convenience function for SHA-512. Computes hash on [data] of length [len].
* and stores it into [digest]. [digest] should be pre-allocated to
* SHA512_DIGEST_SIZE bytes.
*/
uint8_t* SHA512(const uint8_t* data, uint64_t len, uint8_t* digest);
uint8_t* internal_SHA512(const uint8_t* data, uint64_t len, uint8_t* digest);
/*---- Utility functions/wrappers for message digests. */

View File

@@ -273,7 +273,7 @@ void SHA1_init(SHA1_CTX* ctx) {
ctx->count = 0;
}
uint8_t* SHA1(const uint8_t *data, uint64_t len, uint8_t *digest) {
uint8_t* internal_SHA1(const uint8_t *data, uint64_t len, uint8_t *digest) {
const uint8_t *p;
int i;
SHA1_CTX ctx;

View File

@@ -310,7 +310,7 @@ uint8_t* SHA256_final(SHA256_CTX* ctx) {
return ctx->buf;
}
uint8_t* SHA256(const uint8_t* data, uint64_t len, uint8_t* digest) {
uint8_t* internal_SHA256(const uint8_t* data, uint64_t len, uint8_t* digest) {
const uint8_t* input_ptr;
const uint8_t* result;
uint64_t remaining_len;

View File

@@ -336,7 +336,7 @@ uint8_t* SHA512_final(SHA512_CTX* ctx)
}
uint8_t* SHA512(const uint8_t* data, uint64_t len, uint8_t* digest) {
uint8_t* internal_SHA512(const uint8_t* data, uint64_t len, uint8_t* digest) {
const uint8_t* input_ptr;
const uint8_t* result;
uint64_t remaining_len;

View File

@@ -91,24 +91,24 @@ uint8_t* DigestBuf(const uint8_t* buf, uint64_t len, int sig_algorithm) {
0,
0,
0, /* RSA 4096 */
SHA256,
internal_SHA256,
0,
0, /* RSA 8192 */
0,
0,
#else
SHA1, /* RSA 1024 */
SHA256,
SHA512,
SHA1, /* RSA 2048 */
SHA256,
SHA512,
SHA1, /* RSA 4096 */
SHA256,
SHA512,
SHA1, /* RSA 8192 */
SHA256,
SHA512,
internal_SHA1, /* RSA 1024 */
internal_SHA256,
internal_SHA512,
internal_SHA1, /* RSA 2048 */
internal_SHA256,
internal_SHA512,
internal_SHA1, /* RSA 4096 */
internal_SHA256,
internal_SHA512,
internal_SHA1, /* RSA 8192 */
internal_SHA256,
internal_SHA512,
#endif
};
/* Call the appropriate hash function. */

View File

@@ -21,9 +21,9 @@ typedef struct HashFxTable {
} HashFxTable;
HashFxTable hash_functions[NUM_HASH_ALGORITHMS] = {
{SHA1, "sha1"},
{SHA256, "sha256"},
{SHA512, "sha512"}
{internal_SHA1, "sha1"},
{internal_SHA256, "sha256"},
{internal_SHA512, "sha512"}
};
int main(int argc, char* argv[]) {

View File

@@ -21,7 +21,7 @@ int SHA1_tests(void) {
test_inputs[2] = (uint8_t *) long_msg;
for (i = 0; i < 3; i++) {
SHA1(test_inputs[i], strlen((char *)test_inputs[i]),
internal_SHA1(test_inputs[i], strlen((char *)test_inputs[i]),
sha1_digest);
if (!memcmp(sha1_digest, sha1_results[i], SHA1_DIGEST_SIZE)) {
fprintf(stderr, "Test vector %d PASSED for SHA-1\n", i+1);
@@ -43,7 +43,7 @@ int SHA256_tests(void) {
test_inputs[2] = (uint8_t *) long_msg;
for (i = 0; i < 3; i++) {
SHA256(test_inputs[i], strlen((char *)test_inputs[i]),
internal_SHA256(test_inputs[i], strlen((char *)test_inputs[i]),
sha256_digest);
if (!memcmp(sha256_digest, sha256_results[i], SHA256_DIGEST_SIZE)) {
fprintf(stderr, "Test vector %d PASSED for SHA-256\n", i+1);
@@ -65,7 +65,7 @@ int SHA512_tests(void) {
test_inputs[2] = (uint8_t *) long_msg;
for (i = 0; i < 3; i++) {
SHA512(test_inputs[i], strlen((char *)test_inputs[i]),
internal_SHA512(test_inputs[i], strlen((char *)test_inputs[i]),
sha512_digest);
if (!memcmp(sha512_digest, sha512_results[i], SHA512_DIGEST_SIZE)) {
fprintf(stderr, "Test vector %d PASSED for SHA-512\n", i+1);