X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=threefish.h;h=3b4cc99f1eb506b29f511be8c00ab0dad1cec069;hb=5c68d38237aa51b91a26309c24e8e38c7fbdffbe;hp=0d3a413a8a8f84f6f23c914e4cb95d626a1f04cc;hpb=4147d732efd04605764a2820d4478f33a0cdf1fa;p=avr-crypto-lib.git diff --git a/threefish.h b/threefish.h index 0d3a413..3b4cc99 100644 --- a/threefish.h +++ b/threefish.h @@ -17,10 +17,13 @@ along with this program. If not, see . */ /* + * \file threefish.h * \author Daniel Otte * \email daniel.otte@rub.de * \date 2009-03-12 * \license GPLv3 or later + * \brief Implementation of the Threefish block cipher + * \ingroup Threefish */ #ifndef THREEFISH_H_ @@ -35,19 +38,34 @@ #define THREEFISH1024_BLOCKSIZE 1024 #define THREEFISH1024_BLOCKSIZE_B ((THREEFISH1024_BLOCKSIZE+7)/8) - +/** \typedef threefish256_ctx_t + * \brief holds key data for Threefish-256 + * + * A variable of this type may hold the key data for Threefish-256 encryption + * or decryption.. + */ typedef struct{ uint64_t k[5]; uint64_t t[3]; } threefish256_ctx_t; - +/** \typedef threefish512_ctx_t + * \brief holds key data for Threefish-512 + * + * A variable of this type may hold the key data for Threefish-512 encryption + * or decryption.. + */ typedef struct{ uint64_t k[9]; uint64_t t[3]; } threefish512_ctx_t; - +/** \typedef threefish1024_ctx_t + * \brief holds key data for Threefish-1024 + * + * A variable of this type may hold the key data for Threefish-1024 encryption + * or decryption.. + */ typedef struct{ uint64_t k[17]; uint64_t t[3]; @@ -55,14 +73,18 @@ typedef struct{ void threefish_mix(void* data, uint8_t rot); -void threefish256_init_c(void* key, void* tweak, threefish256_ctx_t* ctx); +void threefish_invmix(void* data, uint8_t rot); + +void threefish256_init(const void* key, const void* tweak, threefish256_ctx_t* ctx); +void threefish512_init(const void* key, const void* tweak, threefish512_ctx_t* ctx); +void threefish1024_init(const void* key, const void* tweak, threefish1024_ctx_t* ctx); -void threefish256_init(void* key, void* tweak, threefish256_ctx_t* ctx); -void threefish512_init(void* key, void* tweak, threefish512_ctx_t* ctx); -void threefish1024_init(void* key, void* tweak, threefish1024_ctx_t* ctx); +void threefish256_enc(void* data, const threefish256_ctx_t* ctx); +void threefish512_enc(void* data, const threefish512_ctx_t* ctx); +void threefish1024_enc(void* data, const threefish1024_ctx_t* ctx); -void threefish256_enc(void* data, threefish256_ctx_t* ctx); -void threefish512_enc(void* data, threefish512_ctx_t* ctx); -void threefish1024_enc(void* data, threefish1024_ctx_t* ctx); +void threefish256_dec(void* data, const threefish256_ctx_t* ctx); +void threefish512_dec(void* data, const threefish512_ctx_t* ctx); +void threefish1024_dec(void* data, const threefish1024_ctx_t* ctx); #endif /* THREEFISH_H_ */