X-Git-Url: https://git.cryptolib.org/avr-crypto-lib.git?a=blobdiff_plain;f=jh%2Fjh_simple_speed_core.c;h=46a2bfae8d3a080d074badb77a973cabe9f69f05;hb=3a9f9d918fb95474996af535c225a7e187d88372;hp=47a2938201db3d099ddfca31c420fde43be1bf60;hpb=d1181933dc28db92d787cf5604e2fc96ab0d8f9f;p=avr-crypto-lib.git diff --git a/jh/jh_simple_speed_core.c b/jh/jh_simple_speed_core.c index 47a2938..46a2bfa 100644 --- a/jh/jh_simple_speed_core.c +++ b/jh/jh_simple_speed_core.c @@ -32,9 +32,9 @@ #endif static -void jh_round(uint8_t* a, uint8_t roundno){ +void jh_round(uint8_t *a, uint8_t roundno){ uint8_t b[128]; - uint8_t i,r,u,v,x,y; + uint8_t i,r=0,u,v,x,y; uint8_t *pr; pr = jh_round_const + 32*roundno; for(i=0; i<128; ++i){ @@ -63,6 +63,7 @@ void jh_round(uint8_t* a, uint8_t roundno){ } } +/* static uint8_t jh_l_inv(uint8_t a){ uint8_t v,w; @@ -72,6 +73,7 @@ uint8_t jh_l_inv(uint8_t a){ w ^= ((v<<1)^(v>>3)^((v>>2)&2))&0xf; return w|(v<<4); } +*/ static inline void group(uint8_t *a){ @@ -111,7 +113,7 @@ void degroup(uint8_t *a){ memcpy(a,b,128); } -void jh_encrypt(uint8_t* a){ +void jh_encrypt(uint8_t *a){ uint8_t i; /* grouping */ #if DEBUG @@ -119,20 +121,10 @@ void jh_encrypt(uint8_t* a){ cli_hexdump_block(a, 128, 4, 16); #endif group(a); - for(i=0;i<35;++i){ + for(i=0;i<42;++i){ jh_round(a, i); } - uint8_t r=0; - uint8_t *pr; - pr = jh_round_const + 32*35; - for(i=0; i<128; ++i){ - if(i%4==0){ - r = pgm_read_byte(pr++); - } - a[i]=jh_l_inv(pgm_read_byte(&(jh_lutbox[((r&0xC0)<<2)|a[i]]))); - r<<=2; - } /* degrouping */ #if DEBUG cli_putstr_P(PSTR("\r\n== pre degroup ==\r\n"));