Commit a9b47a42 authored by Niels Möller's avatar Niels Möller

Define and use nettle_cipher_func, for block ciphers.

parent 6bd43205
2014-03-18 Niels Möller <nisse@lysator.liu.se>
* nettle-types.h (nettle_cipher_func): New typedef, similar to
nettle_crypt_func, but with a const context, intended for block
ciphers.
* nettle-meta.h (struct nettle_cipher): Use the nettle_cipher_func
type.
* Many other files affected: aes*-meta.c, camellia*-meta.c,
cast128-meta.c, serpent-meta.c, twofish-meta.c, cbc.[ch],
ctr.[ch], ctr.[ch], des-compat.c, eax.[ch], gcm*.[ch],
nettle-internal.*, testsuite/aes-test.c,
examples/nettle-benchmark.c, examples/nettle-openssl.c.
2014-03-16 Niels Möller <nisse@lysator.liu.se> 2014-03-16 Niels Möller <nisse@lysator.liu.se>
* chacha-set-key.c: Include string.h. * chacha-set-key.c: Include string.h.
......
...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_aes128 = ...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_aes128 =
AES_BLOCK_SIZE, AES128_KEY_SIZE, AES_BLOCK_SIZE, AES128_KEY_SIZE,
(nettle_set_key_func *) aes128_set_encrypt_key, (nettle_set_key_func *) aes128_set_encrypt_key,
(nettle_set_key_func *) aes128_set_decrypt_key, (nettle_set_key_func *) aes128_set_decrypt_key,
(nettle_crypt_func *) aes128_encrypt, (nettle_cipher_func *) aes128_encrypt,
(nettle_crypt_func *) aes128_decrypt (nettle_cipher_func *) aes128_decrypt
}; };
...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_aes192 = ...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_aes192 =
AES_BLOCK_SIZE, AES192_KEY_SIZE, AES_BLOCK_SIZE, AES192_KEY_SIZE,
(nettle_set_key_func *) aes192_set_encrypt_key, (nettle_set_key_func *) aes192_set_encrypt_key,
(nettle_set_key_func *) aes192_set_decrypt_key, (nettle_set_key_func *) aes192_set_decrypt_key,
(nettle_crypt_func *) aes192_encrypt, (nettle_cipher_func *) aes192_encrypt,
(nettle_crypt_func *) aes192_decrypt (nettle_cipher_func *) aes192_decrypt
}; };
...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_aes256 = ...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_aes256 =
AES_BLOCK_SIZE, AES256_KEY_SIZE, AES_BLOCK_SIZE, AES256_KEY_SIZE,
(nettle_set_key_func *) aes256_set_encrypt_key, (nettle_set_key_func *) aes256_set_encrypt_key,
(nettle_set_key_func *) aes256_set_decrypt_key, (nettle_set_key_func *) aes256_set_decrypt_key,
(nettle_crypt_func *) aes256_encrypt, (nettle_cipher_func *) aes256_encrypt,
(nettle_crypt_func *) aes256_decrypt (nettle_cipher_func *) aes256_decrypt
}; };
...@@ -34,8 +34,8 @@ ...@@ -34,8 +34,8 @@
ARCTWO_BLOCK_SIZE, bits/8, \ ARCTWO_BLOCK_SIZE, bits/8, \
(nettle_set_key_func *) arctwo ## bits ## _set_key, \ (nettle_set_key_func *) arctwo ## bits ## _set_key, \
(nettle_set_key_func *) arctwo ## bits ## _set_key, \ (nettle_set_key_func *) arctwo ## bits ## _set_key, \
(nettle_crypt_func *) arctwo_encrypt, \ (nettle_cipher_func *) arctwo_encrypt, \
(nettle_crypt_func *) arctwo_decrypt, \ (nettle_cipher_func *) arctwo_decrypt, \
} }
const struct nettle_cipher nettle_arctwo40 const struct nettle_cipher nettle_arctwo40
= ARCTWO(40); = ARCTWO(40);
...@@ -51,6 +51,6 @@ const struct nettle_cipher nettle_arctwo_gutmann128 = ...@@ -51,6 +51,6 @@ const struct nettle_cipher nettle_arctwo_gutmann128 =
ARCTWO_BLOCK_SIZE, 16, ARCTWO_BLOCK_SIZE, 16,
(nettle_set_key_func *) arctwo128_set_key_gutmann, (nettle_set_key_func *) arctwo128_set_key_gutmann,
(nettle_set_key_func *) arctwo128_set_key_gutmann, (nettle_set_key_func *) arctwo128_set_key_gutmann,
(nettle_crypt_func *) arctwo_encrypt, (nettle_cipher_func *) arctwo_encrypt,
(nettle_crypt_func *) arctwo_decrypt, (nettle_cipher_func *) arctwo_decrypt,
}; };
...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_camellia128 = ...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_camellia128 =
CAMELLIA_BLOCK_SIZE, CAMELLIA128_KEY_SIZE, CAMELLIA_BLOCK_SIZE, CAMELLIA128_KEY_SIZE,
(nettle_set_key_func *) camellia128_set_encrypt_key, (nettle_set_key_func *) camellia128_set_encrypt_key,
(nettle_set_key_func *) camellia128_set_decrypt_key, (nettle_set_key_func *) camellia128_set_decrypt_key,
(nettle_crypt_func *) camellia128_crypt, (nettle_cipher_func *) camellia128_crypt,
(nettle_crypt_func *) camellia128_crypt (nettle_cipher_func *) camellia128_crypt
}; };
...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_camellia192 = ...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_camellia192 =
CAMELLIA_BLOCK_SIZE, CAMELLIA192_KEY_SIZE, CAMELLIA_BLOCK_SIZE, CAMELLIA192_KEY_SIZE,
(nettle_set_key_func *) camellia192_set_encrypt_key, (nettle_set_key_func *) camellia192_set_encrypt_key,
(nettle_set_key_func *) camellia192_set_decrypt_key, (nettle_set_key_func *) camellia192_set_decrypt_key,
(nettle_crypt_func *) camellia256_crypt, (nettle_cipher_func *) camellia256_crypt,
(nettle_crypt_func *) camellia256_crypt (nettle_cipher_func *) camellia256_crypt
}; };
...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_camellia256 = ...@@ -35,6 +35,6 @@ const struct nettle_cipher nettle_camellia256 =
CAMELLIA_BLOCK_SIZE, CAMELLIA256_KEY_SIZE, CAMELLIA_BLOCK_SIZE, CAMELLIA256_KEY_SIZE,
(nettle_set_key_func *) camellia256_set_encrypt_key, (nettle_set_key_func *) camellia256_set_encrypt_key,
(nettle_set_key_func *) camellia256_set_decrypt_key, (nettle_set_key_func *) camellia256_set_decrypt_key,
(nettle_crypt_func *) camellia256_crypt, (nettle_cipher_func *) camellia256_crypt,
(nettle_crypt_func *) camellia256_crypt (nettle_cipher_func *) camellia256_crypt
}; };
...@@ -33,6 +33,6 @@ const struct nettle_cipher nettle_cast128 = ...@@ -33,6 +33,6 @@ const struct nettle_cipher nettle_cast128 =
CAST128_BLOCK_SIZE, CAST128_KEY_SIZE, CAST128_BLOCK_SIZE, CAST128_KEY_SIZE,
(nettle_set_key_func *) cast128_set_key, (nettle_set_key_func *) cast128_set_key,
(nettle_set_key_func *) cast128_set_key, (nettle_set_key_func *) cast128_set_key,
(nettle_crypt_func *) cast128_encrypt, (nettle_cipher_func *) cast128_encrypt,
(nettle_crypt_func *) cast128_decrypt (nettle_cipher_func *) cast128_decrypt
}; };
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
#include "nettle-internal.h" #include "nettle-internal.h"
void void
cbc_encrypt(void *ctx, nettle_crypt_func *f, cbc_encrypt(const void *ctx, nettle_cipher_func *f,
size_t block_size, uint8_t *iv, size_t block_size, uint8_t *iv,
size_t length, uint8_t *dst, size_t length, uint8_t *dst,
const uint8_t *src) const uint8_t *src)
...@@ -56,7 +56,7 @@ cbc_encrypt(void *ctx, nettle_crypt_func *f, ...@@ -56,7 +56,7 @@ cbc_encrypt(void *ctx, nettle_crypt_func *f,
#define CBC_BUFFER_LIMIT 512 #define CBC_BUFFER_LIMIT 512
void void
cbc_decrypt(void *ctx, nettle_crypt_func *f, cbc_decrypt(const void *ctx, nettle_cipher_func *f,
size_t block_size, uint8_t *iv, size_t block_size, uint8_t *iv,
size_t length, uint8_t *dst, size_t length, uint8_t *dst,
const uint8_t *src) const uint8_t *src)
......
...@@ -37,13 +37,13 @@ extern "C" { ...@@ -37,13 +37,13 @@ extern "C" {
#define cbc_decrypt nettle_cbc_decrypt #define cbc_decrypt nettle_cbc_decrypt
void void
cbc_encrypt(void *ctx, nettle_crypt_func *f, cbc_encrypt(const void *ctx, nettle_cipher_func *f,
size_t block_size, uint8_t *iv, size_t block_size, uint8_t *iv,
size_t length, uint8_t *dst, size_t length, uint8_t *dst,
const uint8_t *src); const uint8_t *src);
void void
cbc_decrypt(void *ctx, nettle_crypt_func *f, cbc_decrypt(const void *ctx, nettle_cipher_func *f,
size_t block_size, uint8_t *iv, size_t block_size, uint8_t *iv,
size_t length, uint8_t *dst, size_t length, uint8_t *dst,
const uint8_t *src); const uint8_t *src);
...@@ -58,16 +58,16 @@ memcpy((ctx)->iv, (data), sizeof((ctx)->iv)) ...@@ -58,16 +58,16 @@ memcpy((ctx)->iv, (data), sizeof((ctx)->iv))
#define CBC_ENCRYPT(self, f, length, dst, src) \ #define CBC_ENCRYPT(self, f, length, dst, src) \
(0 ? ((f)(&(self)->ctx, 0, (void *)0, (void *)0)) \ (0 ? ((f)(&(self)->ctx, 0, (void *)0, (void *)0)) \
: cbc_encrypt((void *) &(self)->ctx, \ : cbc_encrypt((void *) &(self)->ctx, \
(nettle_crypt_func *) (f), \ (nettle_cipher_func *) (f), \
sizeof((self)->iv), (self)->iv, \ sizeof((self)->iv), (self)->iv, \
(length), (dst), (src))) (length), (dst), (src)))
#define CBC_DECRYPT(self, f, length, dst, src) \ #define CBC_DECRYPT(self, f, length, dst, src) \
(0 ? ((f)(&(self)->ctx, 0, (void *)0, (void *)0)) \ (0 ? ((f)(&(self)->ctx, 0, (void *)0, (void *)0)) \
: cbc_decrypt((void *) &(self)->ctx, \ : cbc_decrypt((void *) &(self)->ctx, \
(nettle_crypt_func *) (f), \ (nettle_cipher_func *) (f), \
sizeof((self)->iv), (self)->iv, \ sizeof((self)->iv), (self)->iv, \
(length), (dst), (src))) (length), (dst), (src)))
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#define NBLOCKS 4 #define NBLOCKS 4
void void
ctr_crypt(void *ctx, nettle_crypt_func *f, ctr_crypt(const void *ctx, nettle_cipher_func *f,
size_t block_size, uint8_t *ctr, size_t block_size, uint8_t *ctr,
size_t length, uint8_t *dst, size_t length, uint8_t *dst,
const uint8_t *src) const uint8_t *src)
......
...@@ -37,7 +37,7 @@ extern "C" { ...@@ -37,7 +37,7 @@ extern "C" {
#define ctr_crypt nettle_ctr_crypt #define ctr_crypt nettle_ctr_crypt
void void
ctr_crypt(void *ctx, nettle_crypt_func *f, ctr_crypt(const void *ctx, nettle_cipher_func *f,
size_t block_size, uint8_t *ctr, size_t block_size, uint8_t *ctr,
size_t length, uint8_t *dst, size_t length, uint8_t *dst,
const uint8_t *src); const uint8_t *src);
...@@ -51,9 +51,9 @@ memcpy((ctx)->ctr, (data), sizeof((ctx)->ctr)) ...@@ -51,9 +51,9 @@ memcpy((ctx)->ctr, (data), sizeof((ctx)->ctr))
#define CTR_CRYPT(self, f, length, dst, src) \ #define CTR_CRYPT(self, f, length, dst, src) \
(0 ? ((f)(&(self)->ctx, 0, NULL, NULL)) \ (0 ? ((f)(&(self)->ctx, 0, NULL, NULL)) \
: ctr_crypt((void *) &(self)->ctx, \ : ctr_crypt((void *) &(self)->ctx, \
(nettle_crypt_func *) (f), \ (nettle_cipher_func *) (f), \
sizeof((self)->ctr), (self)->ctr, \ sizeof((self)->ctr), (self)->ctr, \
(length), (dst), (src))) (length), (dst), (src)))
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -113,13 +113,13 @@ des_ncbc_encrypt(const_des_cblock *src, des_cblock *dst, long length, ...@@ -113,13 +113,13 @@ des_ncbc_encrypt(const_des_cblock *src, des_cblock *dst, long length,
switch (enc) switch (enc)
{ {
case DES_ENCRYPT: case DES_ENCRYPT:
nettle_cbc_encrypt(ctx, (nettle_crypt_func *) des_encrypt, nettle_cbc_encrypt(ctx, (nettle_cipher_func *) des_encrypt,
DES_BLOCK_SIZE, *iv, DES_BLOCK_SIZE, *iv,
length, *dst, *src); length, *dst, *src);
break; break;
case DES_DECRYPT: case DES_DECRYPT:
nettle_cbc_decrypt(ctx, nettle_cbc_decrypt(ctx,
(nettle_crypt_func *) des_decrypt, (nettle_cipher_func *) des_decrypt,
DES_BLOCK_SIZE, *iv, DES_BLOCK_SIZE, *iv,
length, *dst, *src); length, *dst, *src);
break; break;
...@@ -166,12 +166,12 @@ des_ede3_cbc_encrypt(const_des_cblock *src, des_cblock *dst, long length, ...@@ -166,12 +166,12 @@ des_ede3_cbc_encrypt(const_des_cblock *src, des_cblock *dst, long length,
switch (enc) switch (enc)
{ {
case DES_ENCRYPT: case DES_ENCRYPT:
nettle_cbc_encrypt(&keys, (nettle_crypt_func *) des_compat_des3_encrypt, nettle_cbc_encrypt(&keys, (nettle_cipher_func *) des_compat_des3_encrypt,
DES_BLOCK_SIZE, *iv, DES_BLOCK_SIZE, *iv,
length, *dst, *src); length, *dst, *src);
break; break;
case DES_DECRYPT: case DES_DECRYPT:
nettle_cbc_decrypt(&keys, (nettle_crypt_func *) des_compat_des3_decrypt, nettle_cbc_decrypt(&keys, (nettle_cipher_func *) des_compat_des3_decrypt,
DES_BLOCK_SIZE, *iv, DES_BLOCK_SIZE, *iv,
length, *dst, *src); length, *dst, *src);
break; break;
......
...@@ -56,7 +56,7 @@ block16_xor (union nettle_block16 *dst, const union nettle_block16 *src) ...@@ -56,7 +56,7 @@ block16_xor (union nettle_block16 *dst, const union nettle_block16 *src)
static void static void
omac_update (union nettle_block16 *state, const struct eax_key *key, omac_update (union nettle_block16 *state, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t length, const uint8_t *data) size_t length, const uint8_t *data)
{ {
for (; length >= EAX_BLOCK_SIZE; for (; length >= EAX_BLOCK_SIZE;
...@@ -79,7 +79,7 @@ omac_update (union nettle_block16 *state, const struct eax_key *key, ...@@ -79,7 +79,7 @@ omac_update (union nettle_block16 *state, const struct eax_key *key,
static void static void
omac_final (union nettle_block16 *state, const struct eax_key *key, omac_final (union nettle_block16 *state, const struct eax_key *key,
void *cipher, nettle_crypt_func *f) const void *cipher, nettle_cipher_func *f)
{ {
block16_xor (state, &key->pad_block); block16_xor (state, &key->pad_block);
f (cipher, EAX_BLOCK_SIZE, state->b, state->b); f (cipher, EAX_BLOCK_SIZE, state->b, state->b);
...@@ -100,7 +100,7 @@ gf2_double (uint8_t *r, const uint8_t *a) ...@@ -100,7 +100,7 @@ gf2_double (uint8_t *r, const uint8_t *a)
} }
void void
eax_set_key (struct eax_key *key, void *cipher, nettle_crypt_func *f) eax_set_key (struct eax_key *key, const void *cipher, nettle_cipher_func *f)
{ {
static const union nettle_block16 zero_block; static const union nettle_block16 zero_block;
f (cipher, EAX_BLOCK_SIZE, key->pad_block.b, zero_block.b); f (cipher, EAX_BLOCK_SIZE, key->pad_block.b, zero_block.b);
...@@ -111,7 +111,7 @@ eax_set_key (struct eax_key *key, void *cipher, nettle_crypt_func *f) ...@@ -111,7 +111,7 @@ eax_set_key (struct eax_key *key, void *cipher, nettle_crypt_func *f)
void void
eax_set_nonce (struct eax_ctx *eax, const struct eax_key *key, eax_set_nonce (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t nonce_length, const uint8_t *nonce) size_t nonce_length, const uint8_t *nonce)
{ {
omac_init (&eax->omac_nonce, 0); omac_init (&eax->omac_nonce, 0);
...@@ -125,7 +125,7 @@ eax_set_nonce (struct eax_ctx *eax, const struct eax_key *key, ...@@ -125,7 +125,7 @@ eax_set_nonce (struct eax_ctx *eax, const struct eax_key *key,
void void
eax_update (struct eax_ctx *eax, const struct eax_key *key, eax_update (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t data_length, const uint8_t *data) size_t data_length, const uint8_t *data)
{ {
omac_update (&eax->omac_data, key, cipher, f, data_length, data); omac_update (&eax->omac_data, key, cipher, f, data_length, data);
...@@ -133,7 +133,7 @@ eax_update (struct eax_ctx *eax, const struct eax_key *key, ...@@ -133,7 +133,7 @@ eax_update (struct eax_ctx *eax, const struct eax_key *key,
void void
eax_encrypt (struct eax_ctx *eax, const struct eax_key *key, eax_encrypt (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t length, uint8_t *dst, const uint8_t *src) size_t length, uint8_t *dst, const uint8_t *src)
{ {
ctr_crypt (cipher, f, EAX_BLOCK_SIZE, eax->ctr.b, length, dst, src); ctr_crypt (cipher, f, EAX_BLOCK_SIZE, eax->ctr.b, length, dst, src);
...@@ -142,7 +142,7 @@ eax_encrypt (struct eax_ctx *eax, const struct eax_key *key, ...@@ -142,7 +142,7 @@ eax_encrypt (struct eax_ctx *eax, const struct eax_key *key,
void void
eax_decrypt (struct eax_ctx *eax, const struct eax_key *key, eax_decrypt (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t length, uint8_t *dst, const uint8_t *src) size_t length, uint8_t *dst, const uint8_t *src)
{ {
omac_update (&eax->omac_message, key, cipher, f, length, src); omac_update (&eax->omac_message, key, cipher, f, length, src);
...@@ -151,7 +151,7 @@ eax_decrypt (struct eax_ctx *eax, const struct eax_key *key, ...@@ -151,7 +151,7 @@ eax_decrypt (struct eax_ctx *eax, const struct eax_key *key,
void void
eax_digest (struct eax_ctx *eax, const struct eax_key *key, eax_digest (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t length, uint8_t *digest) size_t length, uint8_t *digest)
{ {
assert (length > 0); assert (length > 0);
......
...@@ -71,31 +71,31 @@ struct eax_ctx ...@@ -71,31 +71,31 @@ struct eax_ctx
}; };
void void
eax_set_key (struct eax_key *key, void *cipher, nettle_crypt_func *f); eax_set_key (struct eax_key *key, const void *cipher, nettle_cipher_func *f);
void void
eax_set_nonce (struct eax_ctx *eax, const struct eax_key *key, eax_set_nonce (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t nonce_length, const uint8_t *nonce); size_t nonce_length, const uint8_t *nonce);
void void
eax_update (struct eax_ctx *eax, const struct eax_key *key, eax_update (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t data_length, const uint8_t *data); size_t data_length, const uint8_t *data);
void void
eax_encrypt (struct eax_ctx *eax, const struct eax_key *key, eax_encrypt (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t length, uint8_t *dst, const uint8_t *src); size_t length, uint8_t *dst, const uint8_t *src);
void void
eax_decrypt (struct eax_ctx *eax, const struct eax_key *key, eax_decrypt (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t length, uint8_t *dst, const uint8_t *src); size_t length, uint8_t *dst, const uint8_t *src);
void void
eax_digest (struct eax_ctx *eax, const struct eax_key *key, eax_digest (struct eax_ctx *eax, const struct eax_key *key,
void *cipher, nettle_crypt_func *f, const void *cipher, nettle_cipher_func *f,
size_t length, uint8_t *digest); size_t length, uint8_t *digest);
/* Put the cipher last, to get cipher-independent offsets for the EAX /* Put the cipher last, to get cipher-independent offsets for the EAX
...@@ -107,37 +107,37 @@ eax_digest (struct eax_ctx *eax, const struct eax_key *key, ...@@ -107,37 +107,37 @@ eax_digest (struct eax_ctx *eax, const struct eax_key *key,
do { \ do { \
(set_key)(&(ctx)->cipher, (data)); \ (set_key)(&(ctx)->cipher, (data)); \
if (0) (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0); \ if (0) (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0); \
eax_set_key (&(ctx)->key, &(ctx)->cipher, (nettle_crypt_func *) encrypt); \ eax_set_key (&(ctx)->key, &(ctx)->cipher, (nettle_cipher_func *) encrypt); \
} while (0) } while (0)
#define EAX_SET_NONCE(ctx, encrypt, length, nonce) \ #define EAX_SET_NONCE(ctx, encrypt, length, nonce) \
(0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \ (0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \
: eax_set_nonce (&(ctx)->eax, &(ctx)->key, \ : eax_set_nonce (&(ctx)->eax, &(ctx)->key, \
&(ctx)->cipher, (nettle_crypt_func *) (encrypt), \ &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \
(length), (nonce))) (length), (nonce)))
#define EAX_UPDATE(ctx, encrypt, length, data) \ #define EAX_UPDATE(ctx, encrypt, length, data) \
(0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \ (0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \
: eax_update (&(ctx)->eax, &(ctx)->key, \ : eax_update (&(ctx)->eax, &(ctx)->key, \
&(ctx)->cipher, (nettle_crypt_func *) (encrypt), \ &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \
(length), (data))) (length), (data)))
#define EAX_ENCRYPT(ctx, encrypt, length, dst, src) \ #define EAX_ENCRYPT(ctx, encrypt, length, dst, src) \
(0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \ (0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \
: eax_encrypt (&(ctx)->eax, &(ctx)->key, \ : eax_encrypt (&(ctx)->eax, &(ctx)->key, \
&(ctx)->cipher, (nettle_crypt_func *) (encrypt), \ &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \
(length), (dst), (src))) (length), (dst), (src)))
#define EAX_DECRYPT(ctx, encrypt, length, dst, src) \ #define EAX_DECRYPT(ctx, encrypt, length, dst, src) \
(0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \ (0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \
: eax_decrypt (&(ctx)->eax, &(ctx)->key, \ : eax_decrypt (&(ctx)->eax, &(ctx)->key, \
&(ctx)->cipher, (nettle_crypt_func *) (encrypt), \ &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \
(length), (dst), (src))) (length), (dst), (src)))
#define EAX_DIGEST(ctx, encrypt, length, digest) \ #define EAX_DIGEST(ctx, encrypt, length, digest) \
(0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \ (0 ? (encrypt) (&(ctx)->cipher, 0, (void *) 0, (void *) 0) \
: eax_digest (&(ctx)->eax, &(ctx)->key, \ : eax_digest (&(ctx)->eax, &(ctx)->key, \
&(ctx)->cipher, (nettle_crypt_func *) (encrypt), \ &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \
(length), (digest))) (length), (digest)))
struct eax_aes128_ctx EAX_CTX(struct aes128_ctx); struct eax_aes128_ctx EAX_CTX(struct aes128_ctx);
......
...@@ -186,7 +186,7 @@ bench_hash(void *arg) ...@@ -186,7 +186,7 @@ bench_hash(void *arg)
struct bench_cipher_info struct bench_cipher_info
{ {
void *ctx; void *ctx;
nettle_crypt_func *crypt; nettle_cipher_func *crypt;
uint8_t *data; uint8_t *data;
}; };
...@@ -200,7 +200,7 @@ bench_cipher(void *arg) ...@@ -200,7 +200,7 @@ bench_cipher(void *arg)
struct bench_cbc_info struct bench_cbc_info
{ {
void *ctx; void *ctx;
nettle_crypt_func *crypt; nettle_cipher_func *crypt;
uint8_t *data; uint8_t *data;
......
...@@ -89,9 +89,9 @@ openssl_aes256_set_decrypt_key(void *ctx, const uint8_t *key) ...@@ -89,9 +89,9 @@ openssl_aes256_set_decrypt_key(void *ctx, const uint8_t *key)
AES_set_decrypt_key(key, 256, ctx); AES_set_decrypt_key(key, 256, ctx);
} }
static nettle_crypt_func openssl_aes_encrypt; static nettle_cipher_func openssl_aes_encrypt;
static void static void
openssl_aes_encrypt(void *ctx, size_t length, openssl_aes_encrypt(const void *ctx, size_t length,
uint8_t *dst, const uint8_t *src) uint8_t *dst, const uint8_t *src)
{ {
assert (!(length % AES_BLOCK_SIZE)); assert (!(length % AES_BLOCK_SIZE));
...@@ -104,9 +104,9 @@ openssl_aes_encrypt(void *ctx, size_t length, ...@@ -104,9 +104,9 @@ openssl_aes_encrypt(void *ctx, size_t length,
} }
} }
static nettle_crypt_func openssl_aes_decrypt; static nettle_cipher_func openssl_aes_decrypt;
static void static void
openssl_aes_decrypt(void *ctx, size_t length, openssl_aes_decrypt(const void *ctx, size_t length,
uint8_t *dst, const uint8_t *src) uint8_t *dst, const uint8_t *src)
{ {
assert (!(length % AES_BLOCK_SIZE)); assert (!(length % AES_BLOCK_SIZE));
...@@ -157,9 +157,9 @@ openssl_bf128_set_key(void *ctx, const uint8_t *key) ...@@ -157,9 +157,9 @@ openssl_bf128_set_key(void *ctx, const uint8_t *key)
BF_set_key(ctx, 16, key); BF_set_key(ctx, 16, key);
} }
static nettle_crypt_func openssl_bf_encrypt; static nettle_cipher_func openssl_bf_encrypt;
static void static void
openssl_bf_encrypt(void *ctx, size_t length, openssl_bf_encrypt(const void *ctx, size_t length,
uint8_t *dst, const uint8_t *src) uint8_t *dst, const uint8_t *src)
{ {