X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=threefish.h;h=fe3ce783c141c1c81c2b58ce82602e5bb6fc71cd;hb=f215d8ed649fd5bf5f85eb34f851a1539302013d;hp=73871a48302b229853e966d47dacba4291eb51d8;hpb=56a151edecefbaeab43dac22c89a3bb9fe4f470e;p=avr-crypto-lib.git diff --git a/threefish.h b/threefish.h index 73871a4..fe3ce78 100644 --- a/threefish.h +++ b/threefish.h @@ -28,6 +28,14 @@ #include +#define THREEFISH256_BLOCKSIZE 256 +#define THREEFISH256_BLOCKSIZE_B ((THREEFISH256_BLOCKSIZE+7)/8) +#define THREEFISH512_BLOCKSIZE 512 +#define THREEFISH512_BLOCKSIZE_B ((THREEFISH512_BLOCKSIZE+7)/8) +#define THREEFISH1024_BLOCKSIZE 1024 +#define THREEFISH1024_BLOCKSIZE_B ((THREEFISH1024_BLOCKSIZE+7)/8) + + typedef struct{ uint64_t k[5]; uint64_t t[3]; @@ -46,13 +54,19 @@ typedef struct{ } threefish1024_ctx_t; +void threefish_mix(void* data, uint8_t rot); +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_ */