X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=skein%2Fthreefish512_enc.c;h=4fbc886f47fc89a149ac9f10fa9b4de4345b30b6;hb=d72d6fbe7abbd26958657c877bc0a3dbef8148ce;hp=620276fed44a24cf2174c7eae8b482e12d0707fe;hpb=4f50c75ee5a6cc88bf7ea71957ed509e298e6c25;p=avr-crypto-lib.git diff --git a/skein/threefish512_enc.c b/skein/threefish512_enc.c index 620276f..4fbc886 100644 --- a/skein/threefish512_enc.c +++ b/skein/threefish512_enc.c @@ -21,9 +21,9 @@ * \email daniel.otte@rub.de * \date 2009-03-12 * \license GPLv3 or later - * - * - * + * + * + * */ #include @@ -35,7 +35,7 @@ static -void permute_8(void* data){ +void permute_8(void *data){ uint64_t t; t = X(0); X(0) = X(2); @@ -48,7 +48,7 @@ void permute_8(void* data){ } /* static -void permute_inv8(void* data){ +void permute_inv8(void *data){ uint64_t t; t = X(6); X(6) = X(4); @@ -61,12 +61,13 @@ void permute_inv8(void* data){ } */ -#define THREEFISH_KEY_CONST 0x5555555555555555LL /* 2**64/3 */ +//#define THREEFISH_KEY_CONST 0x5555555555555555LL /* 2**64/3 */ +#define THREEFISH_KEY_CONST 0x1BD11BDAA9FC1A22LL #define K(s) (((uint64_t*)key)[(s)]) #define T(s) (((uint64_t*)tweak)[(s)]) -void threefish512_init(const void* key, const void* tweak, threefish512_ctx_t* ctx){ +void threefish512_init(const void *key, const void *tweak, threefish512_ctx_t *ctx){ memcpy(ctx->k, key, 8*8); if(tweak){ memcpy(ctx->t, tweak, 2*8); @@ -82,7 +83,7 @@ void threefish512_init(const void* key, const void* tweak, threefish512_ctx_t* c } static -void add_key_8(void* data, const threefish512_ctx_t* ctx, uint8_t s){ +void add_key_8(void *data, const threefish512_ctx_t *ctx, uint8_t s){ uint8_t i; for(i=0; i<5; ++i){ X(i) += ctx->k[(s+i)%9]; @@ -92,12 +93,18 @@ void add_key_8(void* data, const threefish512_ctx_t* ctx, uint8_t s){ X(7) += ctx->k[(s+7)%9] + s; } -void threefish512_enc(void* data, const threefish512_ctx_t* ctx){ +void threefish512_enc(void *data, const threefish512_ctx_t *ctx){ uint8_t i=0,s=0; - uint8_t r0[8] = {38, 48, 34, 26, 33, 39, 29, 33}; + /* old constans, changed at round 2 of the SHA-3 contest + uint8_t r0[8] = {38, 48, 34, 26, 33, 39, 29, 33}; uint8_t r1[8] = {30, 20, 14, 12, 49, 27, 26, 51}; uint8_t r2[8] = {50, 43, 15, 58, 8, 41, 11, 39}; uint8_t r3[8] = {53, 31, 27, 7, 42, 14, 9, 35}; + */ + uint8_t r0[8] = {46, 33, 17, 44, 39, 13, 25, 8}; + uint8_t r1[8] = {36, 27, 49, 9, 30, 50, 29, 35}; + uint8_t r2[8] = {19, 14, 36, 54, 34, 10, 39, 56}; + uint8_t r3[8] = {37, 42, 39, 56, 24, 17, 43, 22}; do{ if(i%4==0){ add_key_8(data, ctx, s);