diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2007-01-16 19:50:49 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2007-01-16 19:50:49 +0000 |
commit | 97f6d1545e03cf71a0950f3893473335299bb2c3 (patch) | |
tree | fe69457ba46c2928d9e21d4460176a027f9bb523 /libavutil/aes.c | |
parent | 5d1b5393488303f39c4877d3d5a1af378409b2d0 (diff) | |
download | ffmpeg-97f6d1545e03cf71a0950f3893473335299bb2c3.tar.gz |
fix CONFIG_SMALL again
Originally committed as revision 7554 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil/aes.c')
-rw-r--r-- | libavutil/aes.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/libavutil/aes.c b/libavutil/aes.c index 4acf2fba47..b05d56e59d 100644 --- a/libavutil/aes.c +++ b/libavutil/aes.c @@ -59,30 +59,20 @@ static void subshift(uint8_t s0[2][16], int s, uint8_t *box){ s3[0][1]=box[s3[1][13]]; s3[0][13]=box[s3[1][ 9]]; s3[0][ 9]=box[s3[1][ 5]]; s3[0][ 5]=box[s3[1][ 1]]; } -#define ROT(x,s) ((x<<s)|(x>>(32-s))) -#if 0 -static inline void mix(uint8_t state[4][4], uint32_t multbl[4][256]){ - int i; - for(i=0; i<4; i++) +static inline int mix_core(uint32_t multbl[4][256], int a, int b, int c, int d){ #ifdef CONFIG_SMALL - ((uint32_t *)(state))[i] = multbl[0][state[i][0]] ^ ROT(multbl[0][state[i][1]], 8) - ^ROT(multbl[0][state[i][2]],16) ^ ROT(multbl[0][state[i][3]],24); +#define ROT(x,s) ((x<<s)|(x>>(32-s))) + return multbl[0][a] ^ ROT(multbl[0][b], 8) ^ ROT(multbl[0][c], 16) ^ ROT(multbl[0][d], 24); #else - ((uint32_t *)(state))[i] = multbl[0][state[i][0]] ^ multbl[1][state[i][1]] - ^multbl[2][state[i][2]] ^ multbl[3][state[i][3]]; + return multbl[0][a] ^ multbl[1][b] ^ multbl[2][c] ^ multbl[3][d]; #endif } -#endif static inline void mix(uint8_t state[2][4][4], uint32_t multbl[4][256], int s1, int s3){ - ((uint32_t *)(state))[0] = multbl[0][state[1][0][0]] ^ multbl[1][state[1][s1 ][1]] - ^multbl[2][state[1][2][2]] ^ multbl[3][state[1][s3 ][3]]; - ((uint32_t *)(state))[1] = multbl[0][state[1][1][0]] ^ multbl[1][state[1][s3-1][1]] - ^multbl[2][state[1][3][2]] ^ multbl[3][state[1][s1-1][3]]; - ((uint32_t *)(state))[2] = multbl[0][state[1][2][0]] ^ multbl[1][state[1][s3 ][1]] - ^multbl[2][state[1][0][2]] ^ multbl[3][state[1][s1 ][3]]; - ((uint32_t *)(state))[3] = multbl[0][state[1][3][0]] ^ multbl[1][state[1][s1-1][1]] - ^multbl[2][state[1][1][2]] ^ multbl[3][state[1][s3-1][3]]; + ((uint32_t *)(state))[0] = mix_core(multbl, state[1][0][0], state[1][s1 ][1], state[1][2][2], state[1][s3 ][3]); + ((uint32_t *)(state))[1] = mix_core(multbl, state[1][1][0], state[1][s3-1][1], state[1][3][2], state[1][s1-1][3]); + ((uint32_t *)(state))[2] = mix_core(multbl, state[1][2][0], state[1][s3 ][1], state[1][0][2], state[1][s1 ][3]); + ((uint32_t *)(state))[3] = mix_core(multbl, state[1][3][0], state[1][s1-1][1], state[1][1][2], state[1][s3-1][3]); } static inline void crypt(AVAES *a, int s, uint8_t *sbox, uint32_t *multbl){ |