--- spritz/spritz.h 2015/01/09 23:21:41 1.3 +++ spritz/spritz.h 2015/01/10 04:14:21 1.4 @@ -35,6 +35,8 @@ * provisions above, a recipient may use your version of this file under * either the BSD or the GPL. */ +#ifndef SPRITZ_H +#define SPRITZ_H #include #include @@ -60,7 +62,6 @@ void spritz_whip (spritz_state *s, uint_fast16_t r); void spritz_crush (spritz_state *s); void spritz_shuffle (spritz_state *s); -void spritz_absorb_nibble (spritz_state *s, uint8_t x); void spritz_absorb (spritz_state *s, const void *I, size_t I_len); void spritz_absorb_stop (spritz_state *s); void spritz_absorb_and_stop (spritz_state *s, const void *I, size_t I_len); /* commonly used helper function */ @@ -72,12 +73,12 @@ /* the spritz-xor cipher */ /* no IV is used if IV_len == 0 */ -void spritz_xor_init (spritz_state *s, const void *K, size_t K_len, const void *IV, size_t IV_len); +void spritz_cipher_xor_init (spritz_state *s, const void *K, size_t K_len, const void *IV, size_t IV_len); /* can be called multiple times/incrementally */ /* can work inplace */ /* works for both encryption and decryption */ -void spritz_xor_crypt (spritz_state *s, const void *I, void *O, size_t len); +void spritz_cipher_xor_crypt (spritz_state *s, const void *I, void *O, size_t len); /*******************************************************************************/ /* the spritz hash */ @@ -96,20 +97,20 @@ /*******************************************************************************/ /* spritz authenticated encryption */ - void spritz_aead_init (spritz_state *s, const void *K, size_t K_len); -static void spritz_aead_nonce (spritz_state *s, const void *N, size_t N_len); /* must be called after construction, before associated_data */ -static void spritz_aead_associated_data (spritz_state *s, const void *D, size_t D_len); /* must be called after nonce, before crypt */ - void spritz_aead_crypt (spritz_state *s, const void *I, void *O, size_t len); +static void spritz_aead_xor_init (spritz_state *s, const void *K, size_t K_len); +static void spritz_aead_xor_nonce (spritz_state *s, const void *N, size_t N_len); /* must be called after construction, before associated_data */ +static void spritz_aead_xor_associated_data (spritz_state *s, const void *D, size_t D_len); /* must be called after nonce, before crypt */ + void spritz_aead_xor_crypt (spritz_state *s, const void *I, void *O, size_t len); /* must be called after associated_data, only once, before finish */ /* works for both encryption and decryption */ -static void spritz_aead_finish (spritz_state *s, void *H, size_t H_len); /* must be called at most once at the end */ +static void spritz_aead_xor_finish (spritz_state *s, void *H, size_t H_len); /* must be called at most once at the end */ /*******************************************************************************/ /* the spritz drbg/csprng */ -/* constructor takes a seed if S_len != 0, same add spritz_prng_put */ +/* constructor takes a seed if S_len != 0, same as spritz_prng_add */ void spritz_prng_init (spritz_state *s, const void *S, size_t S_len); -static void spritz_prng_put (spritz_state *s, const void *S, size_t S_len); /* add additional entropy */ +static void spritz_prng_add (spritz_state *s, const void *S, size_t S_len); /* add additional entropy */ static void spritz_prng_get (spritz_state *s, void *R, size_t R_len); /* get random bytes */ /*******************************************************************************/ @@ -146,19 +147,25 @@ /* spritz authenticated encryption inline functions */ static void -spritz_aead_nonce (spritz_state *s, const void *N, size_t N_len) +spritz_aead_xor_init (spritz_state *s, const void *K, size_t K_len) +{ + spritz_mac_init (s, K, K_len); +} + +static void +spritz_aead_xor_nonce (spritz_state *s, const void *N, size_t N_len) { spritz_absorb_and_stop (s, N, N_len); } static void -spritz_aead_associated_data (spritz_state *s, const void *D, size_t D_len) +spritz_aead_xor_associated_data (spritz_state *s, const void *D, size_t D_len) { spritz_absorb_and_stop (s, D, D_len); } static void -spritz_aead_finish (spritz_state *s, void *H, size_t H_len) +spritz_aead_xor_finish (spritz_state *s, void *H, size_t H_len) { spritz_mac_finish (s, H, H_len); } @@ -166,7 +173,7 @@ /* the spritz drbg/csprng inline functions */ static void -spritz_prng_put (spritz_state *s, const void *S, size_t S_len) +spritz_prng_add (spritz_state *s, const void *S, size_t S_len) { spritz_absorb (s, S, S_len); } @@ -178,3 +185,5 @@ spritz_squeeze (s, R, R_len); } +#endif +