From a7dada790fd758dd2df2d43eff2059960d3397ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Fri, 29 Mar 2019 07:32:42 +0100 Subject: Redefine struct aes_ctx as a union of key-size specific contexts. --- aes-set-decrypt-key.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'aes-set-decrypt-key.c') diff --git a/aes-set-decrypt-key.c b/aes-set-decrypt-key.c index 20214eab..257ded6d 100644 --- a/aes-set-decrypt-key.c +++ b/aes-set-decrypt-key.c @@ -36,17 +36,32 @@ # include "config.h" #endif +#include + /* This file implements and uses deprecated functions */ #define _NETTLE_ATTRIBUTE_DEPRECATED -#include "aes-internal.h" +#include "aes.h" void aes_invert_key(struct aes_ctx *dst, const struct aes_ctx *src) { - _aes_invert (src->rounds, dst->keys, src->keys); - dst->rounds = src->rounds; + switch (src->key_size) + { + default: abort(); + case AES128_KEY_SIZE: + aes128_invert_key(&dst->u.ctx128, &src->u.ctx128); + break; + case AES192_KEY_SIZE: + aes192_invert_key(&dst->u.ctx192, &src->u.ctx192); + break; + case AES256_KEY_SIZE: + aes256_invert_key(&dst->u.ctx256, &src->u.ctx256); + break; + } + + dst->key_size = src->key_size; } void -- cgit v1.2.1