#include <stdint.h>
+#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];
} threefish1024_ctx_t;
+void threefish_mix(void* data, uint8_t rot);
+void threefish256_init_c(void* key, void* tweak, threefish256_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);