Commit c9e5ac33 authored by Alex Converse's avatar Alex Converse

aes: Avoid illegal read and don't generate more key than we use.

parent 88b24369
...@@ -222,11 +222,9 @@ int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt) ...@@ -222,11 +222,9 @@ int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt)
a->rounds = rounds; a->rounds = rounds;
memcpy(tk, key, KC * 4); memcpy(tk, key, KC * 4);
memcpy(a->round_key[0].u8, key, KC * 4);
for (t = 0; t < (rounds + 1) * 16;) { for (t = KC * 4; t < (rounds + 1) * 16; t += KC * 4) {
memcpy(a->round_key[0].u8 + t, tk, KC * 4);
t += KC * 4;
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
tk[0][i] ^= sbox[tk[KC - 1][(i + 1) & 3]]; tk[0][i] ^= sbox[tk[KC - 1][(i + 1) & 3]];
tk[0][0] ^= rcon[rconpointer++]; tk[0][0] ^= rcon[rconpointer++];
...@@ -239,6 +237,8 @@ int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt) ...@@ -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++) for (i = 0; i < 4; i++)
tk[j][i] ^= sbox[tk[j - 1][i]]; tk[j][i] ^= sbox[tk[j - 1][i]];
} }
memcpy(a->round_key[0].u8 + t, tk, KC * 4);
} }
if (decrypt) { if (decrypt) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment