Commit 31a51477 authored by Niels Möller's avatar Niels Möller

Adapted umac code to use new aes128 interface.

parent ffbcdcb9
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>
* aes-meta.c: Deleted file.
......
......@@ -32,7 +32,7 @@
#include "macros.h"
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];
uint64_t count;
......@@ -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++)
{
WRITE_UINT64 (block + 8, count);
aes_encrypt (aes, AES_BLOCK_SIZE, dst, block);
aes128_encrypt (aes, AES_BLOCK_SIZE, dst, block);
}
if (length > 0)
{
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);
}
}
......@@ -71,12 +71,12 @@ umac_kdf (struct aes_ctx *aes, unsigned index, unsigned length, uint8_t *dst)
void
_umac_set_key (uint32_t *l1_key, uint32_t *l2_key,
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;
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);
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,
umac_kdf (aes, 4, n * sizeof(uint32_t), (uint8_t *) l3_key2);
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" {
#include "nettle-types.h"
#include "aes.h"
#define UMAC_KEY_SIZE 16
#define UMAC_KEY_SIZE AES128_KEY_SIZE
#define UMAC32_DIGEST_SIZE 4
#define UMAC64_DIGEST_SIZE 8
#define UMAC96_DIGEST_SIZE 12
......@@ -76,7 +76,7 @@ extern "C" {
uint64_t l3_key1[8*(n)]; \
uint32_t l3_key2[(n)]; \
/* 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 \
and poly128 hashing, followed by n additional \
uint64_t used as an input buffer. */ \
......@@ -192,7 +192,7 @@ umac128_digest (struct umac128_ctx *ctx,
void
_umac_set_key (uint32_t *l1_key, uint32_t *l2_key,
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
_umac_nh (const uint32_t *key, unsigned length, const uint8_t *msg);
......
......@@ -103,8 +103,8 @@ umac128_digest (struct umac128_ctx *ctx,
}
assert (ctx->count > 0);
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) tag, ctx->nonce);
aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) tag, ctx->nonce);
INCREMENT (ctx->nonce_length, ctx->nonce);
......
......@@ -100,8 +100,8 @@ umac32_digest (struct umac32_ctx *ctx,
assert (ctx->count > 0);
if ( !(ctx->nonce_low & _UMAC_NONCE_CACHED))
{
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) ctx->pad_cache, ctx->nonce);
aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) ctx->pad_cache, ctx->nonce);
ctx->nonce_low |= _UMAC_NONCE_CACHED;
}
......
......@@ -103,8 +103,8 @@ umac64_digest (struct umac64_ctx *ctx,
assert (ctx->count > 0);
if ( !(ctx->nonce_low & _UMAC_NONCE_CACHED))
{
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) ctx->pad_cache, ctx->nonce);
aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) ctx->pad_cache, ctx->nonce);
ctx->nonce_low |= _UMAC_NONCE_CACHED;
}
pad = ctx->pad_cache + 2*(ctx->nonce_low & 1);
......
......@@ -101,8 +101,8 @@ umac96_digest (struct umac96_ctx *ctx,
}
assert (ctx->count > 0);
aes_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) tag, ctx->nonce);
aes128_encrypt (&ctx->pdf_key, AES_BLOCK_SIZE,
(uint8_t *) tag, ctx->nonce);
INCREMENT (ctx->nonce_length, ctx->nonce);
......
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