+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.
#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;
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);
}
}
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);
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);
}
#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
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. */ \
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);
}
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);
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;
}
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);
}
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);