mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 00:32:31 +00:00
aes: use direct assignments instead of memcpy() or loops
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
5dd045ebc1
commit
af2ea72495
@ -127,7 +127,7 @@ void av_aes_crypt(AVAES *a, uint8_t *dst_, const uint8_t *src_,
|
|||||||
crypt(a, 0, inv_sbox, dec_multbl);
|
crypt(a, 0, inv_sbox, dec_multbl);
|
||||||
if (iv) {
|
if (iv) {
|
||||||
addkey(&a->state[0], &a->state[0], iv);
|
addkey(&a->state[0], &a->state[0], iv);
|
||||||
memcpy(iv, src, 16);
|
*iv = *src;
|
||||||
}
|
}
|
||||||
addkey(dst, &a->state[0], &a->round_key[0]);
|
addkey(dst, &a->state[0], &a->round_key[0]);
|
||||||
} else {
|
} else {
|
||||||
@ -136,7 +136,7 @@ void av_aes_crypt(AVAES *a, uint8_t *dst_, const uint8_t *src_,
|
|||||||
crypt(a, 2, sbox, enc_multbl);
|
crypt(a, 2, sbox, enc_multbl);
|
||||||
addkey(dst, &a->state[0], &a->round_key[0]);
|
addkey(dst, &a->state[0], &a->round_key[0]);
|
||||||
if (iv)
|
if (iv)
|
||||||
memcpy(iv, dst, 16);
|
*iv = *dst;
|
||||||
}
|
}
|
||||||
src++;
|
src++;
|
||||||
dst++;
|
dst++;
|
||||||
@ -221,15 +221,14 @@ int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt)
|
|||||||
if (decrypt) {
|
if (decrypt) {
|
||||||
for (i = 1; i < rounds; i++) {
|
for (i = 1; i < rounds; i++) {
|
||||||
av_aes_block tmp[3];
|
av_aes_block tmp[3];
|
||||||
memcpy(&tmp[2], &a->round_key[i], 16);
|
tmp[2] = a->round_key[i];
|
||||||
subshift(&tmp[1], 0, sbox);
|
subshift(&tmp[1], 0, sbox);
|
||||||
mix(tmp, dec_multbl, 1, 3);
|
mix(tmp, dec_multbl, 1, 3);
|
||||||
memcpy(&a->round_key[i], &tmp[0], 16);
|
a->round_key[i] = tmp[0];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (i = 0; i < (rounds + 1) >> 1; i++) {
|
for (i = 0; i < (rounds + 1) >> 1; i++) {
|
||||||
for (j = 0; j < 16; j++)
|
FFSWAP(av_aes_block, a->round_key[i], a->round_key[rounds-i]);
|
||||||
FFSWAP(int, a->round_key[i].u8[j], a->round_key[rounds-i].u8[j]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user