X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=skein%2Fthreefish256_dec.c;h=658aa5b3bdc89b1e3ba917e2ac326cf9164f6dc5;hb=deca11a7e7be5605c387aa2cd577e22925854ff8;hp=d23eb9377ecdd9a3109ff62463c37286e140e8d4;hpb=4f50c75ee5a6cc88bf7ea71957ed509e298e6c25;p=avr-crypto-lib.git diff --git a/skein/threefish256_dec.c b/skein/threefish256_dec.c index d23eb93..658aa5b 100644 --- a/skein/threefish256_dec.c +++ b/skein/threefish256_dec.c @@ -21,9 +21,9 @@ * \email daniel.otte@rub.de * \date 2009-03-12 * \license GPLv3 or later - * - * - * + * + * + * */ #include @@ -32,7 +32,7 @@ #define X(a) (((uint64_t*)data)[(a)]) static -void permute_4(void* data){ +void permute_4(void *data){ uint64_t t; t = X(1); X(1) = X(3); @@ -43,17 +43,22 @@ void permute_4(void* data){ #define T(s) (((uint64_t*)tweak)[(s)]) static -void add_key_4(void* data, const threefish256_ctx_t* ctx, uint8_t s){ +void add_key_4(void *data, const threefish256_ctx_t *ctx, uint8_t s){ X(0) -= ctx->k[(s+0)%5]; X(1) -= ctx->k[(s+1)%5] + ctx->t[s%3]; X(2) -= ctx->k[(s+2)%5] + ctx->t[(s+1)%3]; X(3) -= ctx->k[(s+3)%5] + s; } -void threefish256_dec(void* data, const threefish256_ctx_t* ctx){ +void threefish256_dec(void *data, const threefish256_ctx_t *ctx){ uint8_t i=0,s=18; - uint8_t r0[8] = {59, 11, 53, 26, 58, 13, 36, 5}; +/* old constans, changed at round 2 of the SHA-3 contest + uint8_t r0[8] = {59, 11, 53, 26, 58, 13, 36, 5}; uint8_t r1[8] = {50, 42, 35, 20, 44, 46, 28, 56}; +*/ + uint8_t r0[8] = { 32, 58, 46, 25, 5, 23, 52, 14}; + uint8_t r1[8] = { 32, 22, 12, 33, 37, 40, 57, 16}; + do{ if(i%4==0){ add_key_4(data, ctx, s);