From ff5b02d3711d19e5d1d47067364e5e4df25b25a6 Mon Sep 17 00:00:00 2001 From: Karel Miko Date: Thu, 30 Mar 2017 20:44:39 +0200 Subject: [PATCH] LTC_CHACHA vs. LTC_CHACHA20_PRNG --- src/headers/tomcrypt_custom.h | 7 +++++++ src/headers/tomcrypt_prng.h | 6 +++--- src/misc/crypt/crypt.c | 3 +++ src/misc/crypt/crypt_sizes.c | 2 +- src/prngs/chacha.c | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/headers/tomcrypt_custom.h b/src/headers/tomcrypt_custom.h index 1d55322..5039113 100644 --- a/src/headers/tomcrypt_custom.h +++ b/src/headers/tomcrypt_custom.h @@ -294,6 +294,9 @@ /* The LTC_RC4 stream cipher */ #define LTC_RC4 +/* The ChaCha20 stream cipher based PRNG */ +#define LTC_CHACHA20_PRNG + /* Fortuna PRNG */ #define LTC_FORTUNA @@ -512,6 +515,10 @@ #error LTC_CHACHA20POLY1305_MODE requires LTC_CHACHA + LTC_POLY1305 #endif +#if defined(LTC_CHACHA20_PRNG) && !defined(LTC_CHACHA) + #error LTC_CHACHA20_PRNG requires LTC_CHACHA +#endif + /* THREAD management */ #ifdef LTC_PTHREAD diff --git a/src/headers/tomcrypt_prng.h b/src/headers/tomcrypt_prng.h index 7661d3f..93ae366 100644 --- a/src/headers/tomcrypt_prng.h +++ b/src/headers/tomcrypt_prng.h @@ -15,7 +15,7 @@ struct rc4_prng { }; #endif -#ifdef LTC_CHACHA +#ifdef LTC_CHACHA20_PRNG struct chacha20_prng { chacha_state s; /* chacha state */ unsigned char ent[40]; /* entropy buffer */ @@ -64,7 +64,7 @@ typedef union Prng_state { #ifdef LTC_RC4 struct rc4_prng rc4; #endif -#ifdef LTC_CHACHA +#ifdef LTC_CHACHA20_PRNG struct chacha20_prng chacha; #endif #ifdef LTC_FORTUNA @@ -166,7 +166,7 @@ int rc4_test(void); extern const struct ltc_prng_descriptor rc4_desc; #endif -#ifdef LTC_CHACHA +#ifdef LTC_CHACHA20_PRNG int chacha_prng_start(prng_state *prng); int chacha_prng_add_entropy(const unsigned char *in, unsigned long inlen, prng_state *prng); int chacha_prng_ready(prng_state *prng); diff --git a/src/misc/crypt/crypt.c b/src/misc/crypt/crypt.c index d97d101..7cca541 100644 --- a/src/misc/crypt/crypt.c +++ b/src/misc/crypt/crypt.c @@ -274,6 +274,9 @@ const char *crypt_build_settings = #if defined(LTC_RC4) " RC4\n" #endif +#if defined(LTC_CHACHA20_PRNG) + " ChaCha20\n" +#endif #if defined(LTC_FORTUNA) " Fortuna (" NAME_VALUE(LTC_FORTUNA_POOLS) ", " NAME_VALUE(LTC_FORTUNA_WD) ")\n" #endif diff --git a/src/misc/crypt/crypt_sizes.c b/src/misc/crypt/crypt_sizes.c index 65265d3..ae5b308 100755 --- a/src/misc/crypt/crypt_sizes.c +++ b/src/misc/crypt/crypt_sizes.c @@ -223,7 +223,7 @@ static const crypt_size _crypt_sizes[] = { #ifdef LTC_FORTUNA _SZ_STRINGIFY_S(fortuna_prng), #endif -#ifdef LTC_CHACHA +#ifdef LTC_CHACHA20_PRNG _SZ_STRINGIFY_S(chacha20_prng), #endif #ifdef LTC_RC4 diff --git a/src/prngs/chacha.c b/src/prngs/chacha.c index 5a2ad55..4ce6747 100644 --- a/src/prngs/chacha.c +++ b/src/prngs/chacha.c @@ -9,7 +9,7 @@ #include "tomcrypt.h" -#ifdef LTC_CHACHA +#ifdef LTC_CHACHA20_PRNG const struct ltc_prng_descriptor chacha_prng_desc = {