mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-24 16:22:37 +00:00
aes: Avoid illegal read and don't generate more key than we use.
This commit is contained in:
parent
88b2436911
commit
c9e5ac3380
@ -222,11 +222,9 @@ int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt)
|
||||
a->rounds = rounds;
|
||||
|
||||
memcpy(tk, key, KC * 4);
|
||||
memcpy(a->round_key[0].u8, key, KC * 4);
|
||||
|
||||
for (t = 0; t < (rounds + 1) * 16;) {
|
||||
memcpy(a->round_key[0].u8 + t, tk, KC * 4);
|
||||
t += KC * 4;
|
||||
|
||||
for (t = KC * 4; t < (rounds + 1) * 16; t += KC * 4) {
|
||||
for (i = 0; i < 4; i++)
|
||||
tk[0][i] ^= sbox[tk[KC - 1][(i + 1) & 3]];
|
||||
tk[0][0] ^= rcon[rconpointer++];
|
||||
@ -239,6 +237,8 @@ int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt)
|
||||
for (i = 0; i < 4; i++)
|
||||
tk[j][i] ^= sbox[tk[j - 1][i]];
|
||||
}
|
||||
|
||||
memcpy(a->round_key[0].u8 + t, tk, KC * 4);
|
||||
}
|
||||
|
||||
if (decrypt) {
|
||||
|
Loading…
Reference in New Issue
Block a user