Skip to content
Snippets Groups Projects
Commit 31a51477 authored by Niels Möller's avatar Niels Möller
Browse files

Adapted umac code to use new aes128 interface.

parent ffbcdcb9
Branches
Tags
No related merge requests found
2013-08-07 Niels Möller <nisse@lysator.liu.se>
* umac.h (_UMAC_STATE): Use struct aes128_ctx, not aes_ctx.
* umac-set-key.c (umac_kdf, _umac_set_key): Use aes128 interface.
* umac32.c (umac32_digest): Likewise.
* umac64.c (umac64_digest): Likewise.
* umac96.c (umac96_digest): Likewise.
* umac128.c (umac128_digest): Likewise.
2013-06-25 Niels Möller <nisse@lysator.liu.se> 2013-06-25 Niels Möller <nisse@lysator.liu.se>
* aes-meta.c: Deleted file. * aes-meta.c: Deleted file.
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#include "macros.h" #include "macros.h"
static void static void
umac_kdf (struct aes_ctx *aes, unsigned index, unsigned length, uint8_t *dst) umac_kdf (struct aes128_ctx *aes, unsigned index, unsigned length, uint8_t *dst)
{ {
uint8_t block[AES_BLOCK_SIZE]; uint8_t block[AES_BLOCK_SIZE];
uint64_t count; uint64_t count;
...@@ -41,12 +41,12 @@ umac_kdf (struct aes_ctx *aes, unsigned index, unsigned length, uint8_t *dst) ...@@ -41,12 +41,12 @@ umac_kdf (struct aes_ctx *aes, unsigned index, unsigned length, uint8_t *dst)
length -= AES_BLOCK_SIZE, dst += AES_BLOCK_SIZE, count++) length -= AES_BLOCK_SIZE, dst += AES_BLOCK_SIZE, count++)
{ {
WRITE_UINT64 (block + 8, count); WRITE_UINT64 (block + 8, count);
aes_encrypt (aes, AES_BLOCK_SIZE, dst, block); aes128_encrypt (aes, AES_BLOCK_SIZE, dst, block);
} }
if (length > 0) if (length > 0)
{ {
WRITE_UINT64 (block + 8, count); WRITE_UINT64 (block + 8, count);
aes_encrypt (aes, AES_BLOCK_SIZE, block, block); aes128_encrypt (aes, AES_BLOCK_SIZE, block, block);
memcpy (dst, block, length); memcpy (dst, block, length);
} }
} }
...@@ -71,12 +71,12 @@ umac_kdf (struct aes_ctx *aes, unsigned index, unsigned length, uint8_t *dst) ...@@ -71,12 +71,12 @@ umac_kdf (struct aes_ctx *aes, unsigned index, unsigned length, uint8_t *dst)
void void
_umac_set_key (uint32_t *l1_key, uint32_t *l2_key, _umac_set_key (uint32_t *l1_key, uint32_t *l2_key,
uint64_t *l3_key1, uint32_t *l3_key2, uint64_t *l3_key1, uint32_t *l3_key2,
struct aes_ctx *aes, const uint8_t *key, unsigned n) struct aes128_ctx *aes, const uint8_t *key, unsigned n)
{ {
unsigned size; unsigned size;
uint8_t buffer[UMAC_KEY_SIZE]; uint8_t buffer[UMAC_KEY_SIZE];
aes_set_encrypt_key (aes, UMAC_KEY_SIZE, key); aes128_set_encrypt_key (aes, key);
size = UMAC_DATA_SIZE / 4 + 4*(n-1); size = UMAC_DATA_SIZE / 4 + 4*(n-1);
umac_kdf (aes, 1, size * sizeof(uint32_t), (uint8_t *) l1_key); umac_kdf (aes, 1, size * sizeof(uint32_t), (uint8_t *) l1_key);
...@@ -94,5 +94,5 @@ _umac_set_key (uint32_t *l1_key, uint32_t *l2_key, ...@@ -94,5 +94,5 @@ _umac_set_key (uint32_t *l1_key, uint32_t *l2_key,
umac_kdf (aes, 4, n * sizeof(uint32_t), (uint8_t *) l3_key2); umac_kdf (aes, 4, n * sizeof(uint32_t), (uint8_t *) l3_key2);
umac_kdf (aes, 0, UMAC_KEY_SIZE, buffer); umac_kdf (aes, 0, UMAC_KEY_SIZE, buffer);
aes_set_encrypt_key (aes, UMAC_KEY_SIZE, buffer); aes128_set_encrypt_key (aes, buffer);
} }
...@@ -61,7 +61,7 @@ extern "C" { ...@@ -61,7 +61,7 @@ extern "C" {
#include "nettle-types.h" #include "nettle-types.h"
#include "aes.h" #include "aes.h"
#define UMAC_KEY_SIZE 16 #define UMAC_KEY_SIZE AES128_KEY_SIZE
#define UMAC32_DIGEST_SIZE 4 #define UMAC32_DIGEST_SIZE 4
#define UMAC64_DIGEST_SIZE 8 #define UMAC64_DIGEST_SIZE 8
#define UMAC96_DIGEST_SIZE 12 #define UMAC96_DIGEST_SIZE 12
...@@ -76,7 +76,7 @@ extern "C" { ...@@ -76,7 +76,7 @@ extern "C" {
uint64_t l3_key1[8*(n)]; \ uint64_t l3_key1[8*(n)]; \
uint32_t l3_key2[(n)]; \ uint32_t l3_key2[(n)]; \
/* AES cipher for encrypting the nonce */ \ /* AES cipher for encrypting the nonce */ \
struct aes_ctx pdf_key; \ struct aes128_ctx pdf_key; \
/* The l2_state consists of 2*n uint64_t, for poly64 \ /* The l2_state consists of 2*n uint64_t, for poly64 \
and poly128 hashing, followed by n additional \ and poly128 hashing, followed by n additional \
uint64_t used as an input buffer. */ \ uint64_t used as an input buffer. */ \
...@@ -192,7 +192,7 @@ umac128_digest (struct umac128_ctx *ctx, ...@@ -192,7 +192,7 @@ umac128_digest (struct umac128_ctx *ctx,
void void
_umac_set_key (uint32_t *l1_key, uint32_t *l2_key, _umac_set_key (uint32_t *l1_key, uint32_t *l2_key,
uint64_t *l3_key1, uint32_t *l3_key2, uint64_t *l3_key1, uint32_t *l3_key2,
struct aes_ctx *pad, const uint8_t *key, unsigned n); struct aes128_ctx *pad, const uint8_t *key, unsigned n);
uint64_t uint64_t
_umac_nh (const uint32_t *key, unsigned length, const uint8_t *msg); _umac_nh (const uint32_t *key, unsigned length, const uint8_t *msg);
......
...@@ -103,7 +103,7 @@ umac128_digest (struct umac128_ctx *ctx, ...@@ -103,7 +103,7 @@ umac128_digest (struct umac128_ctx *ctx,
} }
assert (ctx->count > 0); assert (ctx->count > 0);
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE, aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) tag, ctx->nonce); (uint8_t *) tag, ctx->nonce);
INCREMENT (ctx->nonce_length, ctx->nonce); INCREMENT (ctx->nonce_length, ctx->nonce);
......
...@@ -100,7 +100,7 @@ umac32_digest (struct umac32_ctx *ctx, ...@@ -100,7 +100,7 @@ umac32_digest (struct umac32_ctx *ctx,
assert (ctx->count > 0); assert (ctx->count > 0);
if ( !(ctx->nonce_low & _UMAC_NONCE_CACHED)) if ( !(ctx->nonce_low & _UMAC_NONCE_CACHED))
{ {
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE, aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) ctx->pad_cache, ctx->nonce); (uint8_t *) ctx->pad_cache, ctx->nonce);
ctx->nonce_low |= _UMAC_NONCE_CACHED; ctx->nonce_low |= _UMAC_NONCE_CACHED;
} }
......
...@@ -103,7 +103,7 @@ umac64_digest (struct umac64_ctx *ctx, ...@@ -103,7 +103,7 @@ umac64_digest (struct umac64_ctx *ctx,
assert (ctx->count > 0); assert (ctx->count > 0);
if ( !(ctx->nonce_low & _UMAC_NONCE_CACHED)) if ( !(ctx->nonce_low & _UMAC_NONCE_CACHED))
{ {
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE, aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) ctx->pad_cache, ctx->nonce); (uint8_t *) ctx->pad_cache, ctx->nonce);
ctx->nonce_low |= _UMAC_NONCE_CACHED; ctx->nonce_low |= _UMAC_NONCE_CACHED;
} }
......
...@@ -101,7 +101,7 @@ umac96_digest (struct umac96_ctx *ctx, ...@@ -101,7 +101,7 @@ umac96_digest (struct umac96_ctx *ctx,
} }
assert (ctx->count > 0); assert (ctx->count > 0);
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE, aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) tag, ctx->nonce); (uint8_t *) tag, ctx->nonce);
INCREMENT (ctx->nonce_length, ctx->nonce); INCREMENT (ctx->nonce_length, ctx->nonce);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment