Add ChaCha20 test vectors from RFC 7539
diff --git a/tests/suites/test_suite_chacha20.function b/tests/suites/test_suite_chacha20.function
index 2825a61..75d2d0f 100644
--- a/tests/suites/test_suite_chacha20.function
+++ b/tests/suites/test_suite_chacha20.function
@@ -6,6 +6,47 @@
  * depends_on:MBEDTLS_CHACHA20_C
  * END_DEPENDENCIES
  */
+
+/* BEGIN_CASE */
+void chacha20_crypt( char *hex_key_string,
+                     char *hex_nonce_string,
+                     int counter,
+                     char *hex_src_string,
+                     char *hex_dst_string )
+{
+    unsigned char key_str[100];
+    unsigned char nonce_str[100];
+    unsigned char src_str[10000];
+    unsigned char dst_str[10000];
+    unsigned char output[10000];
+    size_t key_len;
+    size_t nonce_len;
+    size_t src_len;
+    size_t dst_len;
+
+    memset(key_str, 0x00, 100);
+    memset(nonce_str, 0x00, 100);
+    memset(src_str, 0x00, 10000);
+    memset(dst_str, 0x00, 10000);
+    memset(output, 0x00, 10000);
+
+    key_len   = unhexify( key_str, hex_key_string );
+    nonce_len = unhexify( nonce_str, hex_nonce_string );
+    src_len   = unhexify( src_str, hex_src_string );
+    dst_len   = unhexify( dst_str, hex_dst_string );
+
+    TEST_ASSERT( src_len   == dst_len );
+    TEST_ASSERT( key_len   == 32U );
+    TEST_ASSERT( nonce_len == 12U );
+
+    TEST_ASSERT( mbedtls_chacha20_crypt( key_str, nonce_str, counter, src_len, src_str, output ) == 0 );
+
+    hexify( dst_str, output, src_len );
+
+    TEST_ASSERT( strcmp( (char*) dst_str, hex_dst_string ) == 0);
+}
+/* END_CASE */
+
 /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
 void chacha20_self_test()
 {