Using custom time
diff --git a/tests/fuzz/CMakeLists.txt b/tests/fuzz/CMakeLists.txt
index 1392f63..4f37efa 100644
--- a/tests/fuzz/CMakeLists.txt
+++ b/tests/fuzz/CMakeLists.txt
@@ -25,14 +25,14 @@
add_executable(fuzz_pubkey fuzz_pubkey.c onefile.c)
target_link_libraries(fuzz_pubkey ${libs})
-add_executable(fuzz_client fuzz_client.c onefile.c)
+add_executable(fuzz_client fuzz_client.c common.c onefile.c)
target_link_libraries(fuzz_client ${libs})
-add_executable(fuzz_server fuzz_server.c onefile.c)
+add_executable(fuzz_server fuzz_server.c common.c onefile.c)
target_link_libraries(fuzz_server ${libs})
-add_executable(fuzz_dtlsclient fuzz_dtlsclient.c onefile.c)
+add_executable(fuzz_dtlsclient fuzz_dtlsclient.c common.c onefile.c)
target_link_libraries(fuzz_dtlsclient ${libs})
-add_executable(fuzz_dtlsserver fuzz_dtlsserver.c onefile.c)
+add_executable(fuzz_dtlsserver fuzz_dtlsserver.c common.c onefile.c)
target_link_libraries(fuzz_dtlsserver ${libs})
diff --git a/tests/fuzz/common.c b/tests/fuzz/common.c
new file mode 100644
index 0000000..450f74b
--- /dev/null
+++ b/tests/fuzz/common.c
@@ -0,0 +1,14 @@
+#include "common.h"
+
+mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ) {
+ (void) time;
+ return 0x5af2a056;
+}
+
+void dummy_init() {
+#if defined(MBEDTLS_PLATFORM_TIME_ALT)
+ mbedtls_platform_set_time( dummy_constant_time );
+#else
+ fprintf(stderr, "Warning: fuzzing without constant time\n");
+#endif
+}
diff --git a/tests/fuzz/common.h b/tests/fuzz/common.h
new file mode 100644
index 0000000..03dc2a4
--- /dev/null
+++ b/tests/fuzz/common.h
@@ -0,0 +1,4 @@
+#include "mbedtls/platform_time.h"
+
+mbedtls_time_t dummy_constant_time( mbedtls_time_t* time );
+void dummy_init();
diff --git a/tests/fuzz/fuzz_client.c b/tests/fuzz/fuzz_client.c
index b9cdddd..783cd48 100644
--- a/tests/fuzz/fuzz_client.c
+++ b/tests/fuzz/fuzz_client.c
@@ -2,6 +2,7 @@
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
#include "mbedtls/certs.h"
+#include "common.h"
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
@@ -90,7 +91,6 @@
return( 0 );
}
-
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
int ret;
size_t len;
@@ -114,6 +114,8 @@
alpn_list[1] = "fuzzalpn";
alpn_list[2] = NULL;
+ dummy_init();
+
initialized = 1;
}
diff --git a/tests/fuzz/fuzz_dtlsclient.c b/tests/fuzz/fuzz_dtlsclient.c
index 55cd43b..4215313 100644
--- a/tests/fuzz/fuzz_dtlsclient.c
+++ b/tests/fuzz/fuzz_dtlsclient.c
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
+#include "common.h"
#include "mbedtls/ssl.h"
#if defined(MBEDTLS_SSL_PROTO_DTLS)
#include "mbedtls/entropy.h"
@@ -113,6 +114,8 @@
mbedtls_test_cas_pem_len ) != 0)
return 1;
#endif
+ dummy_init();
+
initialized = 1;
}
diff --git a/tests/fuzz/fuzz_dtlsserver.c b/tests/fuzz/fuzz_dtlsserver.c
index d50b0ad..e534b0e 100644
--- a/tests/fuzz/fuzz_dtlsserver.c
+++ b/tests/fuzz/fuzz_dtlsserver.c
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
+#include "common.h"
#include "mbedtls/ssl.h"
#if defined(MBEDTLS_SSL_PROTO_DTLS)
#include "mbedtls/entropy.h"
@@ -120,6 +121,8 @@
mbedtls_test_srv_key_len, NULL, 0 ) != 0)
return 1;
#endif
+ dummy_init();
+
initialized = 1;
}
mbedtls_ssl_init( &ssl );
diff --git a/tests/fuzz/fuzz_server.c b/tests/fuzz/fuzz_server.c
index 8d10c59..0a96028 100644
--- a/tests/fuzz/fuzz_server.c
+++ b/tests/fuzz/fuzz_server.c
@@ -3,6 +3,7 @@
#include "mbedtls/ctr_drbg.h"
#include "mbedtls/certs.h"
#include "mbedtls/ssl_ticket.h"
+#include "common.h"
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
@@ -131,6 +132,8 @@
alpn_list[1] = "fuzzalpn";
alpn_list[2] = NULL;
+ dummy_init();
+
initialized = 1;
}
mbedtls_ssl_init( &ssl );