X-Git-Url: https://git.cryptolib.org/?p=avr-crypto-lib.git;a=blobdiff_plain;f=whirlpool%2Fwhirlpool.h;fp=whirlpool%2Fwhirlpool.h;h=bc80f9e0e98935424350b6584ba18aa1c38192ae;hp=0000000000000000000000000000000000000000;hb=1de7784dc5fe0e2ebac23c0ee883a38f65a96b62;hpb=d1181933dc28db92d787cf5604e2fc96ab0d8f9f diff --git a/whirlpool/whirlpool.h b/whirlpool/whirlpool.h new file mode 100644 index 0000000..bc80f9e --- /dev/null +++ b/whirlpool/whirlpool.h @@ -0,0 +1,37 @@ +/* wirlpool.h */ +/* + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef WIRLPOOL_H_ +#define WIRLPOOL_H_ + +#include + +typedef struct { + uint8_t s[8][8]; + uint32_t blocks; +} whirlpool_ctx_t; + +uint8_t whirlpool_sbox(uint8_t a); + +void whirlpool_init(whirlpool_ctx_t* ctx); +void whirlpool_nextBlock(whirlpool_ctx_t* ctx,const void* block); +void whirlpool_lastBlock(whirlpool_ctx_t* ctx, const void* block, uint16_t length_b); +void whirlpool_ctx2hash(void* dest, const whirlpool_ctx_t* ctx); + +#endif /* WIRLPOOL_H_ */