From dc781725c62aa9b05a0bcd48428ebc27ec469e0d Mon Sep 17 00:00:00 2001 From: Saleem Rashid Date: Sat, 9 Dec 2017 16:44:29 +0000 Subject: [PATCH] hasher: Move to trezor-crypto This reverts commit dd7b21a6cadc8254f4f026f2ac3ad8ed426de7ac. --- firmware/Makefile | 3 ++- firmware/hasher.c | 63 ----------------------------------------------- firmware/hasher.h | 50 ------------------------------------- 3 files changed, 2 insertions(+), 114 deletions(-) delete mode 100644 firmware/hasher.c delete mode 100644 firmware/hasher.h diff --git a/firmware/Makefile b/firmware/Makefile index 7eb524481..7a5a16a3e 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -20,7 +20,6 @@ OBJS += protect.o OBJS += layout2.o OBJS += recovery.o OBJS += reset.o -OBJS += hasher.o OBJS += signing.o OBJS += crypto.o OBJS += ethereum.o @@ -59,6 +58,8 @@ OBJS += ../vendor/trezor-crypto/segwit_addr.o OBJS += ../vendor/trezor-crypto/ripemd160.o OBJS += ../vendor/trezor-crypto/sha2.o OBJS += ../vendor/trezor-crypto/sha3.o +OBJS += ../vendor/trezor-crypto/blake256.o +OBJS += ../vendor/trezor-crypto/hasher.o OBJS += ../vendor/trezor-crypto/aes/aescrypt.o OBJS += ../vendor/trezor-crypto/aes/aeskey.o diff --git a/firmware/hasher.c b/firmware/hasher.c deleted file mode 100644 index ff16389ea..000000000 --- a/firmware/hasher.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * This file is part of the TREZOR project, https://trezor.io/ - * - * Copyright (C) 2017 Saleem Rashid - * - * This library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library. If not, see . - */ - -#include "hasher.h" - -void hasher_Init(Hasher *hasher, HasherType type) { - hasher->type = type; - - switch (hasher->type) { - case HASHER_SHA2: - sha256_Init(&hasher->ctx.sha2); - break; - } -} - -void hasher_Reset(Hasher *hasher) { - hasher_Init(hasher, hasher->type); -} - -void hasher_Update(Hasher *hasher, const uint8_t *data, size_t length) { - switch (hasher->type) { - case HASHER_SHA2: - sha256_Update(&hasher->ctx.sha2, data, length); - break; - } -} - -void hasher_Final(Hasher *hasher, uint8_t hash[HASHER_DIGEST_LENGTH]) { - switch (hasher->type) { - case HASHER_SHA2: - sha256_Final(&hasher->ctx.sha2, hash); - break; - } -} - -void hasher_Double(Hasher *hasher, uint8_t hash[HASHER_DIGEST_LENGTH]) { - hasher_Final(hasher, hash); - hasher_Raw(hasher->type, hash, HASHER_DIGEST_LENGTH, hash); -} - -void hasher_Raw(HasherType type, const uint8_t *data, size_t length, uint8_t hash[HASHER_DIGEST_LENGTH]) { - Hasher hasher; - - hasher_Init(&hasher, type); - hasher_Update(&hasher, data, length); - hasher_Final(&hasher, hash); -} diff --git a/firmware/hasher.h b/firmware/hasher.h deleted file mode 100644 index 0338379ed..000000000 --- a/firmware/hasher.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * This file is part of the TREZOR project, https://trezor.io/ - * - * Copyright (C) 2017 Saleem Rashid - * - * This library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library. If not, see . - */ - -#ifndef __HASHER_H__ -#define __HASHER_H__ - -#include -#include - -#include "sha2.h" - -#define HASHER_DIGEST_LENGTH 32 - -typedef enum { - HASHER_SHA2, -} HasherType; - -typedef struct { - HasherType type; - - union { - SHA256_CTX sha2; - } ctx; -} Hasher; - -void hasher_Init(Hasher *hasher, HasherType type); -void hasher_Reset(Hasher *hasher); -void hasher_Update(Hasher *hasher, const uint8_t *data, size_t length); -void hasher_Final(Hasher *hasher, uint8_t hash[HASHER_DIGEST_LENGTH]); -void hasher_Double(Hasher *hasher, uint8_t hash[HASHER_DIGEST_LENGTH]); - -void hasher_Raw(HasherType type, const uint8_t *data, size_t length, uint8_t hash[HASHER_DIGEST_LENGTH]); - -#endif