mbed TLS Build

Dependents:   Slave-prot-prod

Revision:
0:cdf462088d13
diff -r 000000000000 -r cdf462088d13 tests/suites/test_suite_ssl.function
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/suites/test_suite_ssl.function	Thu Jan 05 00:18:44 2017 +0000
@@ -0,0 +1,42 @@
+/* BEGIN_HEADER */
+#include <mbedtls/ssl.h>
+#include <mbedtls/ssl_internal.h>
+/* END_HEADER */
+
+/* BEGIN_DEPENDENCIES
+ * depends_on:MBEDTLS_SSL_TLS_C
+ * END_DEPENDENCIES
+ */
+
+/* BEGIN_CASE depends_on:MBEDTLS_SSL_DTLS_ANTI_REPLAY */
+void ssl_dtls_replay( char *prevs, char *new, int ret )
+{
+    mbedtls_ssl_context ssl;
+    mbedtls_ssl_config conf;
+    char *end_prevs = prevs + strlen( prevs ) + 1;
+
+    mbedtls_ssl_init( &ssl );
+    mbedtls_ssl_config_init( &conf );
+
+    TEST_ASSERT( mbedtls_ssl_config_defaults( &conf,
+                 MBEDTLS_SSL_IS_CLIENT,
+                 MBEDTLS_SSL_TRANSPORT_DATAGRAM,
+                 MBEDTLS_SSL_PRESET_DEFAULT ) == 0 );
+    TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
+
+    /* Read previous record numbers */
+    for( ; end_prevs - prevs >= 13; prevs += 13 )
+    {
+        prevs[12] = '\0';
+        unhexify( ssl.in_ctr + 2, prevs );
+        mbedtls_ssl_dtls_replay_update( &ssl );
+    }
+
+    /* Check new number */
+    unhexify( ssl.in_ctr + 2, new );
+    TEST_ASSERT( mbedtls_ssl_dtls_replay_check( &ssl ) == ret );
+
+    mbedtls_ssl_free( &ssl );
+    mbedtls_ssl_config_free( &conf );
+}
+/* END_CASE */