diff options
| author | Amaury Pouly <amaury.pouly@gmail.com> | 2017-01-03 16:09:34 +0100 |
|---|---|---|
| committer | Amaury Pouly <amaury.pouly@gmail.com> | 2017-01-16 19:59:28 +0100 |
| commit | 759a78e5dff134f2632875f61aae60815eea6f5b (patch) | |
| tree | 24110ff498d81535146094fdb80d766456bd513f /utils/imxtools/sbtools/crypto.cpp | |
| parent | 8b3f5a8ad7434850804a4a664d2b07c6ffa9b1c7 (diff) | |
| download | rockbox-759a78e5dff134f2632875f61aae60815eea6f5b.zip rockbox-759a78e5dff134f2632875f61aae60815eea6f5b.tar.gz rockbox-759a78e5dff134f2632875f61aae60815eea6f5b.tar.bz2 rockbox-759a78e5dff134f2632875f61aae60815eea6f5b.tar.xz | |
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
Diffstat (limited to 'utils/imxtools/sbtools/crypto.cpp')
| -rw-r--r-- | utils/imxtools/sbtools/crypto.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
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 <cryptopp/modes.h> #include <cryptopp/aes.h> +#include <cryptopp/sha.h> 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<SHA1 *>(params->object)->Update(buffer, size); +} + +void sha_1_finish(struct sha_1_params_t *params) +{ + SHA1 *obj = reinterpret_cast<SHA1 *>(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); +} |