Commit 4b7d469f authored by Niels Möller's avatar Niels Möller
Browse files

Benchmarking of chacha.

parent 93fc1d14
2014-01-27 Niels Möller <>
* examples/nettle-benchmark.c (main): Add benchmarking of chacha.
* nettle-internal.c (nettle_chacha): New const struct, for the
Chacha implementation, based on contribution by Joachim
* chacha.h: New file.
......@@ -680,7 +680,7 @@ main(int argc, char **argv)
&nettle_twofish128, &nettle_twofish192, &nettle_twofish256,
&nettle_salsa20, &nettle_salsa20r12,
&nettle_salsa20, &nettle_salsa20r12, &nettle_chacha,
......@@ -36,6 +36,7 @@
#include "des.h"
#include "eax.h"
#include "gcm.h"
#include "chacha.h"
#include "salsa20.h"
/* DES uses a different signature for the key set function. We ignore
......@@ -79,6 +80,25 @@ nettle_des3 = {
const struct nettle_cipher
nettle_blowfish128 = _NETTLE_CIPHER(blowfish, BLOWFISH, 128);
/* Sets a fix zero iv. For benchmarking only. */
static void
chacha_set_key_hack(void *ctx, size_t length, const uint8_t *key)
static const uint8_t iv[CHACHA_IV_SIZE];
chacha_set_key (ctx, length, key);
chacha_set_iv (ctx, iv);
/* Claim zero block size, to classify as a stream cipher. */
const struct nettle_cipher
nettle_chacha = {
"chacha", sizeof(struct chacha_ctx),
chacha_set_key_hack, chacha_set_key_hack,
(nettle_crypt_func *) chacha_crypt,
(nettle_crypt_func *) chacha_crypt
/* Sets a fix zero iv. For benchmarking only. */
static void
salsa20_set_key_hack(void *ctx, size_t length, const uint8_t *key)
......@@ -61,6 +61,7 @@ extern const struct nettle_cipher nettle_des3;
extern const struct nettle_cipher nettle_blowfish128;
/* For benchmarking only, sets no iv and lies about the block size. */
extern const struct nettle_cipher nettle_chacha;
extern const struct nettle_cipher nettle_salsa20;
extern const struct nettle_cipher nettle_salsa20r12;
Supports Markdown
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