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

Benchmarking of chacha.

parent 93fc1d14
No related branches found
No related tags found
No related merge requests found
2014-01-27 Niels Möller <nisse@lysator.liu.se> 2014-01-27 Niels Möller <nisse@lysator.liu.se>
* examples/nettle-benchmark.c (main): Add benchmarking of chacha.
* nettle-internal.c (nettle_chacha): New const struct, for the
benchmark.
Chacha implementation, based on contribution by Joachim Chacha implementation, based on contribution by Joachim
Strömbergson. Strömbergson.
* chacha.h: New file. * chacha.h: New file.
......
...@@ -680,7 +680,7 @@ main(int argc, char **argv) ...@@ -680,7 +680,7 @@ main(int argc, char **argv)
&nettle_des3, &nettle_des3,
&nettle_serpent256, &nettle_serpent256,
&nettle_twofish128, &nettle_twofish192, &nettle_twofish256, &nettle_twofish128, &nettle_twofish192, &nettle_twofish256,
&nettle_salsa20, &nettle_salsa20r12, &nettle_salsa20, &nettle_salsa20r12, &nettle_chacha,
NULL NULL
}; };
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "des.h" #include "des.h"
#include "eax.h" #include "eax.h"
#include "gcm.h" #include "gcm.h"
#include "chacha.h"
#include "salsa20.h" #include "salsa20.h"
/* DES uses a different signature for the key set function. We ignore /* DES uses a different signature for the key set function. We ignore
...@@ -79,6 +80,25 @@ nettle_des3 = { ...@@ -79,6 +80,25 @@ nettle_des3 = {
const struct nettle_cipher const struct nettle_cipher
nettle_blowfish128 = _NETTLE_CIPHER(blowfish, BLOWFISH, 128); 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),
0, CHACHA_KEY_SIZE,
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. */ /* Sets a fix zero iv. For benchmarking only. */
static void static void
salsa20_set_key_hack(void *ctx, size_t length, const uint8_t *key) salsa20_set_key_hack(void *ctx, size_t length, const uint8_t *key)
......
...@@ -61,6 +61,7 @@ extern const struct nettle_cipher nettle_des3; ...@@ -61,6 +61,7 @@ extern const struct nettle_cipher nettle_des3;
extern const struct nettle_cipher nettle_blowfish128; extern const struct nettle_cipher nettle_blowfish128;
/* For benchmarking only, sets no iv and lies about the block size. */ /* 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_salsa20;
extern const struct nettle_cipher nettle_salsa20r12; extern const struct nettle_cipher nettle_salsa20r12;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment