X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;ds=sidebyside;f=camellia.c;h=cfcd561e2811c2a385f5dc928f6125061225fb03;hb=bfac0f0eef1c956bf6fbc023708f17ecfda9b39d;hp=513c320abe6809d9befd85e49db2b9d1e035113e;hpb=1578e34f55859fc867dfa56360e4c26f8a225d60;p=avr-crypto-lib.git diff --git a/camellia.c b/camellia.c index 513c320..cfcd561 100644 --- a/camellia.c +++ b/camellia.c @@ -21,8 +21,8 @@ uint64_t camellia_fl(uint64_t x, uint64_t k); uint64_t camellia_fl_inv(uint64_t y, uint64_t k); /*****************************************************************************/ void change_endian(void* data, uint8_t length); - -uint64_t PROGMEM camellia_sigma[6]={ /* 64 byte table */ +/* +uint64_t PROGMEM camellia_sigma[6]={ / * 64 byte table * / 0xA09E667F3BCC908BLL, 0xB67AE8584CAA73B2LL, 0xC6EF372FE94F82BELL, @@ -30,10 +30,23 @@ uint64_t PROGMEM camellia_sigma[6]={ /* 64 byte table */ 0x10E527FADE682D1DLL, 0xB05688C2B3E6C1FDLL }; +*/ +uint32_t PROGMEM camellia_sigma[12]={ /* 64 byte table */ + 0x3BCC908BL, 0xA09E667FL, + 0x4CAA73B2L, 0xB67AE858L, + 0xE94F82BEL, 0xC6EF372FL, + 0xF1D36F1CL, 0x54FF53A5L, + 0xDE682D1DL, 0x10E527FAL, + 0xB3E6C1FDL, 0xB05688C2L +}; /* an ugly macro to load an entry form the table above */ -#define SIGMA(p) (( ((uint64_t)(pgm_read_dword((prog_uint32_t*)camellia_sigma+2*(p)+1)))<<32) + \ - ((uint64_t)(pgm_read_dword((prog_uint32_t*)camellia_sigma+2*(p)+0) )) ) +/* +#define SIGMA(p) (( ((uint64_t)(pgm_read_dword((prog_uint32_t*)camellia_sigma+2*(p)+1)))<<32) | \ + ((uint64_t)(pgm_read_dword((prog_uint32_t*)camellia_sigma+2*(p)+0))) ) +*/ +#define SIGMA(p) (( ((uint64_t)(pgm_read_dword(((prog_uint32_t*)camellia_sigma)[2*(p)+1])))<<32) | \ + ((uint64_t)(pgm_read_dword(((prog_uint32_t*)camellia_sigma)[2*(p)+0]))) )