Rename aead_chacha20_poly1305 to chachapoly

While the old name is explicit and aligned with the RFC, it's also very long,
so with the mbedtls_ prefix prepended we get a 31-char prefix to each
identifier, which quickly conflicts with our 80-column policy.

The new name is shorter, it's what a lot of people use when speaking about
that construction anyway, and hopefully should not introduce confusion at
it seems unlikely that variants other than 20/1305 be standardised in the
foreseeable future.
diff --git a/tests/suites/test_suite_chachapoly.function b/tests/suites/test_suite_chachapoly.function
new file mode 100644
index 0000000..fb1a738
--- /dev/null
+++ b/tests/suites/test_suite_chachapoly.function
@@ -0,0 +1,109 @@
+/* BEGIN_HEADER */
+#include "mbedtls/chachapoly.h"
+/* END_HEADER */
+
+/* BEGIN_DEPENDENCIES
+ * depends_on:MBEDTLS_CHACHAPOLY_C
+ * END_DEPENDENCIES
+ */
+
+/* BEGIN_CASE */
+void mbedtls_chachapoly_enc( char *hex_key_string, char *hex_nonce_string, char *hex_aad_string, char *hex_input_string, char *hex_output_string, char *hex_mac_string )
+{
+    unsigned char key_str[32];
+    unsigned char nonce_str[12];
+    unsigned char aad_str[10000];
+    unsigned char input_str[10000];
+    unsigned char output_str[10000];
+    unsigned char mac_str[16];
+    unsigned char output[10000];
+    unsigned char mac[16];
+    size_t input_len;
+    size_t output_len;
+    size_t aad_len;
+    size_t key_len;
+    size_t nonce_len;
+    size_t mac_len;
+
+    memset( key_str,     0x00, 32    );
+    memset( nonce_str,   0x00, 12    );
+    memset( aad_str,     0x00, 10000 );
+    memset( input_str,   0x00, 10000 );
+    memset( output_str,  0x00, 10000 );
+    memset( mac_str,     0x00, 16    );
+
+    aad_len    = unhexify( aad_str,    hex_aad_string    );
+    input_len  = unhexify( input_str,  hex_input_string  );
+    output_len = unhexify( output_str, hex_output_string );
+    key_len    = unhexify( key_str,    hex_key_string    );
+    nonce_len  = unhexify( nonce_str,  hex_nonce_string  );
+    mac_len    = unhexify( mac_str,    hex_mac_string    );
+
+    TEST_ASSERT( key_len   == 32 );
+    TEST_ASSERT( nonce_len == 12 );
+    TEST_ASSERT( mac_len   == 16 );
+
+    mbedtls_chachapoly_crypt_and_mac( key_str, nonce_str,
+                                      MBEDTLS_CHACHAPOLY_ENCRYPT,
+                                      aad_len, aad_str,
+                                      input_len, input_str, output,
+                                      mac );
+
+    TEST_ASSERT( memcmp( output_str, output, output_len ) == 0 );
+    TEST_ASSERT( memcmp( mac_str, mac, 16U ) == 0 );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
+void mbedtls_chachapoly_dec( char *hex_key_string, char *hex_nonce_string, char *hex_aad_string, char *hex_input_string, char *hex_output_string, char *hex_mac_string )
+{
+    unsigned char key_str[32];
+    unsigned char nonce_str[12];
+    unsigned char aad_str[10000];
+    unsigned char input_str[10000];
+    unsigned char output_str[10000];
+    unsigned char mac_str[16];
+    unsigned char output[10000];
+    unsigned char mac[16];
+    size_t input_len;
+    size_t output_len;
+    size_t aad_len;
+    size_t key_len;
+    size_t nonce_len;
+    size_t mac_len;
+
+    memset( key_str,     0x00, 32    );
+    memset( nonce_str,   0x00, 12    );
+    memset( aad_str,     0x00, 10000 );
+    memset( input_str,   0x00, 10000 );
+    memset( output_str,  0x00, 10000 );
+    memset( mac_str,     0x00, 16    );
+
+    aad_len    = unhexify( aad_str,    hex_aad_string    );
+    input_len  = unhexify( input_str,  hex_input_string  );
+    output_len = unhexify( output_str, hex_output_string );
+    key_len    = unhexify( key_str,    hex_key_string    );
+    nonce_len  = unhexify( nonce_str,  hex_nonce_string  );
+    mac_len    = unhexify( mac_str,    hex_mac_string    );
+
+    TEST_ASSERT( key_len   == 32 );
+    TEST_ASSERT( nonce_len == 12 );
+    TEST_ASSERT( mac_len   == 16 );
+
+    mbedtls_chachapoly_crypt_and_mac( key_str, nonce_str,
+                                      MBEDTLS_CHACHAPOLY_DECRYPT,
+                                      aad_len, aad_str,
+                                      input_len, input_str, output,
+                                      mac );
+
+    TEST_ASSERT( memcmp( output_str, output, output_len ) == 0 );
+    TEST_ASSERT( memcmp( mac_str, mac, 16U ) == 0 );
+}
+/* END_CASE */
+
+/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
+void chachapoly_selftest()
+{
+    TEST_ASSERT( mbedtls_chachapoly_self_test( 1 ) == 0 );
+}
+/* END_CASE */