Adapt the _ALT style to our new standard
- in .h files: only put the context declaration inside the #ifdef _ALT
(this was changed in 2.9.0, ie after the original PR)
- in .c file: only leave selftest out of _ALT: even though some function are
trivial to build from other parts, alt implementors might want to go another
way about them (for efficiency or other reasons)
diff --git a/include/mbedtls/aead_chacha20_poly1305.h b/include/mbedtls/aead_chacha20_poly1305.h
index 6c8e420..6f7ab6f 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 @@
}
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 @@
}
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_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 ccce122..a2856a7 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 <stdint.h>
#include <stddef.h>
#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 @@
}
mbedtls_chacha20_context;
+#else /* MBEDTLS_CHACHA20_ALT */
+#include "chacha20_alt.h"
+#endif /* MBEDTLS_CHACHA20_ALT */
+
/**
* \brief Initialize ChaCha20 context
*
@@ -149,10 +153,6 @@
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 ea9364a..915f8ab 100644
--- a/include/mbedtls/poly1305.h
+++ b/include/mbedtls/poly1305.h
@@ -32,10 +32,10 @@
#include <stdint.h>
#include <stddef.h>
-#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 @@
}
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_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.
*