From 740276005f3f5aaef7268a75287551041f647204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Mon, 4 Apr 2022 15:25:55 +0800 Subject: [PATCH] md5 reduce malloc --- md5.c | 5 ++--- simplecrypto.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/md5.c b/md5.c index 1889b6c..fb601fb 100644 --- a/md5.c +++ b/md5.c @@ -61,7 +61,7 @@ static uint32_t to_int32(const uint8_t *bytes) { return val; } -uint8_t* md5(const uint8_t *data, size_t data_len) { +uint8_t* md5(const uint8_t *data, size_t data_len, uint8_t digest[16]) { // These vars will contain the hash uint32_t h0, h1, h2, h3; @@ -149,12 +149,11 @@ uint8_t* md5(const uint8_t *data, size_t data_len) { free(msg); //var char digest[16] := h0 append h1 append h2 append h3 //(Output is in little-endian) - uint8_t *digest = (uint8_t*)malloc(16*sizeof(char)); to_bytes(h0, digest); to_bytes(h1, digest + 4); to_bytes(h2, digest + 8); to_bytes(h3, digest + 12); - return digest; + return (uint8_t*)digest; } #ifdef TEST_SIMPLE_CRYPTO diff --git a/simplecrypto.h b/simplecrypto.h index 0eade6c..7a108f6 100644 --- a/simplecrypto.h +++ b/simplecrypto.h @@ -6,7 +6,7 @@ // ---------------MD5 area--------------- // return 128bit(16bytes) digest -uint8_t* md5(const uint8_t *data, size_t data_len); +uint8_t* md5(const uint8_t *data, size_t data_len, uint8_t digest[16]); // ---------------MD5 area---------------