diff --git a/include/mbedtls/aead_chacha20_poly1305.h b/include/mbedtls/aead_chacha20_poly1305.h index 6c8e420b5..6f7ab6f7f 100644 --- a/include/mbedtls/aead_chacha20_poly1305.h +++ b/include/mbedtls/aead_chacha20_poly1305.h @@ -29,11 +29,6 @@ #include MBEDTLS_CONFIG_FILE #endif -#if !defined(MBEDTLS_AEAD_CHACHA20_POLY1305_ALT) - -#include "chacha20.h" -#include "poly1305.h" - #define MBEDTLS_ERR_AEAD_CHACHA20_POLY1305_BAD_INPUT_DATA -0x00047 /**< Invalid input parameter(s). */ #define MBEDTLS_ERR_AEAD_CHACHA20_POLY1305_BAD_STATE -0x00049 /**< The requested operation is not permitted in the current state */ @@ -44,6 +39,11 @@ typedef enum } mbedtls_aead_chacha20_poly1305_mode_t; +#if !defined(MBEDTLS_AEAD_CHACHA20_POLY1305_ALT) + +#include "chacha20.h" +#include "poly1305.h" + typedef struct { mbedtls_chacha20_context chacha20_ctx; /** ChaCha20 context */ @@ -55,6 +55,10 @@ typedef struct } mbedtls_aead_chacha20_poly1305_context; +#else /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */ +#include "aead_chacha20_poly1305_alt.h" +#endif /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */ + /** * \brief Initialize ChaCha20-Poly1305 context * @@ -183,10 +187,6 @@ int mbedtls_aead_chacha20_poly1305_update( mbedtls_aead_chacha20_poly1305_contex int mbedtls_aead_chacha20_poly1305_finish( mbedtls_aead_chacha20_poly1305_context *ctx, unsigned char mac[16] ); -#else /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */ -#include "aead_chacha20_poly1305_alt.h" -#endif /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */ - /** * \brief Encrypt or decrypt data, and produce a MAC with ChaCha20-Poly1305. * diff --git a/include/mbedtls/chacha20.h b/include/mbedtls/chacha20.h index ccce12270..a2856a7e4 100644 --- a/include/mbedtls/chacha20.h +++ b/include/mbedtls/chacha20.h @@ -31,13 +31,13 @@ #include MBEDTLS_CONFIG_FILE #endif -#if !defined(MBEDTLS_CHACHA20_ALT) - #include #include #define MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA -0x003B /**< Invalid input parameter(s). */ +#if !defined(MBEDTLS_CHACHA20_ALT) + typedef struct { uint32_t initial_state[16]; /*! Holds the initial state (before round operations) */ @@ -47,6 +47,10 @@ typedef struct } mbedtls_chacha20_context; +#else /* MBEDTLS_CHACHA20_ALT */ +#include "chacha20_alt.h" +#endif /* MBEDTLS_CHACHA20_ALT */ + /** * \brief Initialize ChaCha20 context * @@ -149,10 +153,6 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, const unsigned char *input, unsigned char *output ); -#else /* MBEDTLS_CHACHA20_ALT */ -#include "chacha20_alt.h" -#endif /* MBEDTLS_CHACHA20_ALT */ - /** * \brief Encrypt or decrypt a message using ChaCha20. * diff --git a/include/mbedtls/poly1305.h b/include/mbedtls/poly1305.h index ea9364a3c..915f8ab0d 100644 --- a/include/mbedtls/poly1305.h +++ b/include/mbedtls/poly1305.h @@ -32,10 +32,10 @@ #include #include -#if !defined(MBEDTLS_POLY1305_ALT) - #define MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA -0x0041 /**< Invalid input parameter(s). */ +#if !defined(MBEDTLS_POLY1305_ALT) + typedef struct { uint32_t r[4]; /** Stores the value for 'r' (low 128 bits of the key) */ @@ -46,6 +46,10 @@ typedef struct } mbedtls_poly1305_context; +#else /* MBEDTLS_POLY1305_ALT */ +#include "poly1305_alt.h" +#endif /* MBEDTLS_POLY1305_ALT */ + /** * \brief Initialize a Poly1305 context * @@ -109,10 +113,6 @@ int mbedtls_poly1305_update( mbedtls_poly1305_context *ctx, int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx, unsigned char mac[16] ); -#else /* MBEDTLS_POLY1305_ALT */ -#include "poly1305_alt.h" -#endif /* MBEDTLS_POLY1305_ALT */ - /** * \brief Generate the Poly1305 MAC of some data with the given key. * diff --git a/library/aead_chacha20_poly1305.c b/library/aead_chacha20_poly1305.c index 8d7b63a70..2e07f1ed4 100644 --- a/library/aead_chacha20_poly1305.c +++ b/library/aead_chacha20_poly1305.c @@ -291,8 +291,6 @@ int mbedtls_aead_chacha20_poly1305_finish( mbedtls_aead_chacha20_poly1305_contex return( 0 ); } -#endif /* MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */ - int mbedtls_aead_chacha20_poly1305_crypt_and_mac ( const unsigned char key[32], const unsigned char nonce[12], mbedtls_aead_chacha20_poly1305_mode_t mode, @@ -331,6 +329,8 @@ cleanup: return( result ); } +#endif /* MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */ + #if defined(MBEDTLS_SELF_TEST) static const unsigned char test_key[1][32] = diff --git a/library/chacha20.c b/library/chacha20.c index 4c2d8ef9a..5d2c3e5bf 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -354,8 +354,6 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, return( 0 ); } -#endif /* !MBEDTLS_CHACHA20_ALT */ - int mbedtls_chacha20_crypt( const unsigned char key[32], const unsigned char nonce[12], uint32_t counter, @@ -383,6 +381,8 @@ cleanup: return( result ); } +#endif /* !MBEDTLS_CHACHA20_ALT */ + #if defined(MBEDTLS_SELF_TEST) static const unsigned char test_keys[2][32] = diff --git a/library/poly1305.c b/library/poly1305.c index 842a4d464..6acbc7fa5 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -390,8 +390,6 @@ int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx, return( 0 ); } -#endif /* MBEDTLS_POLY1305_ALT */ - int mbedtls_poly1305_mac( const unsigned char key[32], size_t ilen, const unsigned char *input, @@ -417,6 +415,8 @@ cleanup: return( 0 ); } +#endif /* MBEDTLS_POLY1305_ALT */ + #if defined(MBEDTLS_SELF_TEST) static const unsigned char test_keys[2][32] =