diff options
Diffstat (limited to 'src/lib/crypto/aes/aeskey.c')
-rw-r--r-- | src/lib/crypto/aes/aeskey.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/crypto/aes/aeskey.c b/src/lib/crypto/aes/aeskey.c index 970a26f..60f766b 100644 --- a/src/lib/crypto/aes/aeskey.c +++ b/src/lib/crypto/aes/aeskey.c @@ -307,17 +307,23 @@ aes_rval aes_dec_key(const unsigned char in_key[], unsigned int klen, aes_ctx cx kd4(cx->k_sch, 6); kd4(cx->k_sch, 7); kd4(cx->k_sch, 8); kdl4(cx->k_sch, 9); cx->n_rnd = 10; break; - case 24: cx->k_sch[4] = ff(ss[4] = word_in(in_key + 16)); - cx->k_sch[5] = ff(ss[5] = word_in(in_key + 20)); + case 24: ss[4] = word_in(in_key + 16); + cx->k_sch[4] = ff(ss[4]); + ss[5] = word_in(in_key + 20); + cx->k_sch[5] = ff(ss[5]); kdf6(cx->k_sch, 0); kd6(cx->k_sch, 1); kd6(cx->k_sch, 2); kd6(cx->k_sch, 3); kd6(cx->k_sch, 4); kd6(cx->k_sch, 5); kd6(cx->k_sch, 6); kdl6(cx->k_sch, 7); cx->n_rnd = 12; break; - case 32: cx->k_sch[4] = ff(ss[4] = word_in(in_key + 16)); - cx->k_sch[5] = ff(ss[5] = word_in(in_key + 20)); - cx->k_sch[6] = ff(ss[6] = word_in(in_key + 24)); - cx->k_sch[7] = ff(ss[7] = word_in(in_key + 28)); + case 32: ss[4] = word_in(in_key + 16); + cx->k_sch[4] = ff(ss[4]); + ss[5] = word_in(in_key + 20); + cx->k_sch[5] = ff(ss[5]); + ss[6] = word_in(in_key + 24); + cx->k_sch[6] = ff(ss[6]); + ss[7] = word_in(in_key + 28); + cx->k_sch[7] = ff(ss[7]); kdf8(cx->k_sch, 0); kd8(cx->k_sch, 1); kd8(cx->k_sch, 2); kd8(cx->k_sch, 3); kd8(cx->k_sch, 4); kd8(cx->k_sch, 5); |