X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=jh%2Fjh_simple_small_core.c;h=907d48afdccc251ac3c0168e3748a3ec3002ab28;hb=22b608111d32de8b0c8fa34f35bd0d8892df2285;hp=16ff2bc5a415f66510d6b0faa34e0199e378d30d;hpb=d7838aec004a60bafeb05ca862ae2a413e4aa7dc;p=avr-crypto-lib.git diff --git a/jh/jh_simple_small_core.c b/jh/jh_simple_small_core.c index 16ff2bc..907d48a 100644 --- a/jh/jh_simple_small_core.c +++ b/jh/jh_simple_small_core.c @@ -50,7 +50,7 @@ uint8_t jh_l(uint8_t v, uint8_t w){ } static -void jh_round(uint8_t* a, uint8_t* rc){ +void jh_round(uint8_t* a, const uint8_t* rc){ uint8_t b[128]; uint8_t i,r,x,y; for(i=0; i<128; ++i){ @@ -109,7 +109,7 @@ static const uint8_t idx[]={112,80,48,16,96,64,32,0}; static inline void group(uint8_t *a){ uint8_t b[128]; - uint8_t i,j,k,x; + uint8_t i,j,k,x=0; for(i=0; i<128; ++i){ j=i/8; for(k=0;k<8;++k){ @@ -150,21 +150,11 @@ void jh_encrypt(uint8_t* a){ for(i=0;i<32;++i){ rc[i] = pgm_read_byte(&(round_const_0[i])); } - for(i=0;i<35;++i){ + for(i=0;i<42;++i){ jh_round(a, rc); jh_next_round_const(rc); } - uint8_t r,x,y; - for(i=0; i<128; ++i){ - if(i%4==0){ - r = rc[i/4]; - } - x = pgm_read_byte(((r&0x80)?sbox1:sbox0)+(a[i]>>4)); - y = pgm_read_byte(((r&0x40)?sbox1:sbox0)+(a[i]&0xf)); - a[i]=(x<<4)|y; - r<<=2; - } /* degrouping */ #if DEBUG cli_putstr_P(PSTR("\r\n== pre degroup ==\r\n"));