summaryrefslogtreecommitdiff
path: root/aes-set-decrypt-key.c
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2019-03-29 07:32:42 +0100
committerNiels Möller <nisse@lysator.liu.se>2019-03-29 07:32:42 +0100
commita7dada790fd758dd2df2d43eff2059960d3397ae (patch)
tree321b20e9557b306189ebd61783aafebae5f27872 /aes-set-decrypt-key.c
parentb87ec212616765f920000b72d57b7a317e1a0c24 (diff)
downloadnettle-a7dada790fd758dd2df2d43eff2059960d3397ae.tar.gz
Redefine struct aes_ctx as a union of key-size specific contexts.aes-struct-layout
Diffstat (limited to 'aes-set-decrypt-key.c')
-rw-r--r--aes-set-decrypt-key.c21
1 files changed, 18 insertions, 3 deletions
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 <stdlib.h>
+
/* 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