From 759a78e5dff134f2632875f61aae60815eea6f5b Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Tue, 3 Jan 2017 16:09:34 +0100 Subject: imxtools/sbtools: switch SHA1 implementation to Crypto++ The current implementation was custom and super slow. Since we use Crypto++ anyway, we might as well get use a good implementation. Change-Id: I761ad7401653471e54000e1c2bc3d9882378112f --- utils/imxtools/sbtools/crypto.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'utils/imxtools/sbtools/crypto.cpp') diff --git a/utils/imxtools/sbtools/crypto.cpp b/utils/imxtools/sbtools/crypto.cpp index 5ccde27..d7ef04f 100644 --- a/utils/imxtools/sbtools/crypto.cpp +++ b/utils/imxtools/sbtools/crypto.cpp @@ -22,6 +22,7 @@ #include "misc.h" #include #include +#include using namespace CryptoPP; @@ -124,3 +125,25 @@ int crypto_apply( else return CRYPTO_ERROR_BADSETUP; } + +void sha_1_init(struct sha_1_params_t *params) +{ + params->object = new SHA1; +} + +void sha_1_update(struct sha_1_params_t *params, byte *buffer, int size) +{ + reinterpret_cast(params->object)->Update(buffer, size); +} + +void sha_1_finish(struct sha_1_params_t *params) +{ + SHA1 *obj = reinterpret_cast(params->object); + obj->Final(params->hash); + delete obj; +} + +void sha_1_output(struct sha_1_params_t *params, byte *out) +{ + memcpy(out, params->hash, 20); +} -- cgit v1.1