diff options
-rw-r--r-- | testing/Makefile.inc | 17 | ||||
-rw-r--r-- | testing/crypto_speed_test.c | 143 |
2 files changed, 0 insertions, 160 deletions
diff --git a/testing/Makefile.inc b/testing/Makefile.inc index d29c5d55..236ab19b 100644 --- a/testing/Makefile.inc +++ b/testing/Makefile.inc | |||
@@ -24,7 +24,6 @@ if BUILD_TESTING | |||
24 | 24 | ||
25 | noinst_PROGRAMS += DHT_test \ | 25 | noinst_PROGRAMS += DHT_test \ |
26 | Messenger_test \ | 26 | Messenger_test \ |
27 | crypto_speed_test \ | ||
28 | dns3_test | 27 | dns3_test |
29 | 28 | ||
30 | DHT_test_SOURCES = ../testing/DHT_test.c | 29 | DHT_test_SOURCES = ../testing/DHT_test.c |
@@ -56,22 +55,6 @@ Messenger_test_LDADD = $(LIBSODIUM_LDFLAGS) \ | |||
56 | $(WINSOCK2_LIBS) | 55 | $(WINSOCK2_LIBS) |
57 | 56 | ||
58 | 57 | ||
59 | crypto_speed_test_SOURCES = \ | ||
60 | ../testing/crypto_speed_test.c | ||
61 | |||
62 | crypto_speed_test_CFLAGS = \ | ||
63 | $(LIBSODIUM_CFLAGS) \ | ||
64 | $(NACL_CFLAGS) | ||
65 | |||
66 | crypto_speed_test_LDADD = \ | ||
67 | $(LIBSODIUM_LDFLAGS) \ | ||
68 | $(NACL_LDFLAGS) \ | ||
69 | libtoxcore.la \ | ||
70 | $(LIBSODIUM_LIBS) \ | ||
71 | $(NACL_OBJECTS) \ | ||
72 | $(NACL_LIBS) \ | ||
73 | $(WINSOCK2_LIBS) | ||
74 | |||
75 | 58 | ||
76 | dns3_test_SOURCES = \ | 59 | dns3_test_SOURCES = \ |
77 | ../testing/dns3_test.c | 60 | ../testing/dns3_test.c |
diff --git a/testing/crypto_speed_test.c b/testing/crypto_speed_test.c deleted file mode 100644 index 3e81a46b..00000000 --- a/testing/crypto_speed_test.c +++ /dev/null | |||
@@ -1,143 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | #include "config.h" | ||
3 | #endif | ||
4 | |||
5 | // Hi-resolution timer | ||
6 | #if defined(_WIN32) || defined(__WIN32__) || defined (WIN32) | ||
7 | #ifndef WINVER | ||
8 | //Windows XP | ||
9 | #define WINVER 0x0501 | ||
10 | #endif | ||
11 | |||
12 | #include <winsock2.h> | ||
13 | #include <windows.h> | ||
14 | double get_time() | ||
15 | { | ||
16 | LARGE_INTEGER t, f; | ||
17 | QueryPerformanceCounter(&t); | ||
18 | QueryPerformanceFrequency(&f); | ||
19 | return (double)t.QuadPart / (double)f.QuadPart; | ||
20 | } | ||
21 | |||
22 | #else | ||
23 | |||
24 | #include <sys/time.h> | ||
25 | #include <sys/resource.h> | ||
26 | |||
27 | double get_time() | ||
28 | { | ||
29 | struct timeval t; | ||
30 | struct timezone tzp; | ||
31 | gettimeofday(&t, &tzp); | ||
32 | return t.tv_sec + t.tv_usec * 1e-6; | ||
33 | } | ||
34 | |||
35 | #endif | ||
36 | |||
37 | #include "../toxcore/net_crypto.h" | ||
38 | #include <stdlib.h> | ||
39 | #include <time.h> | ||
40 | |||
41 | void rand_bytes(uint8_t *b, size_t blen) | ||
42 | { | ||
43 | size_t i; | ||
44 | |||
45 | for (i = 0; i < blen; i++) { | ||
46 | b[i] = rand(); | ||
47 | } | ||
48 | } | ||
49 | |||
50 | int main(int argc, char *argv[]) | ||
51 | { | ||
52 | const int numtrials = 10000; | ||
53 | |||
54 | unsigned char pk1[crypto_box_PUBLICKEYBYTES]; | ||
55 | unsigned char sk1[crypto_box_SECRETKEYBYTES]; | ||
56 | unsigned char pk2[crypto_box_PUBLICKEYBYTES]; | ||
57 | unsigned char sk2[crypto_box_SECRETKEYBYTES]; | ||
58 | unsigned char k1[crypto_box_BEFORENMBYTES]; | ||
59 | unsigned char k2[crypto_box_BEFORENMBYTES]; | ||
60 | |||
61 | unsigned char n[crypto_box_NONCEBYTES]; | ||
62 | |||
63 | unsigned char m[500]; | ||
64 | unsigned char c[sizeof(m) + crypto_box_MACBYTES]; | ||
65 | |||
66 | unsigned char k[crypto_box_BEFORENMBYTES]; | ||
67 | |||
68 | int trialno; | ||
69 | |||
70 | double starttime; | ||
71 | double endtime; | ||
72 | double slow_time; | ||
73 | double fast_time; | ||
74 | double keygen_time; | ||
75 | double precompute_time; | ||
76 | |||
77 | // Pregenerate | ||
78 | crypto_box_keypair(pk1, sk1); | ||
79 | crypto_box_keypair(pk2, sk2); | ||
80 | encrypt_precompute(pk1, sk2, k1); | ||
81 | encrypt_precompute(pk2, sk1, k2); | ||
82 | rand_bytes(m, sizeof(m)); | ||
83 | rand_bytes(n, sizeof(n)); | ||
84 | |||
85 | printf("starting slow...\n"); | ||
86 | starttime = get_time(); | ||
87 | |||
88 | for (trialno = 0; trialno < numtrials; trialno++) { | ||
89 | encrypt_data(pk1, sk2, n, m, sizeof(m), c); | ||
90 | decrypt_data(pk2, sk1, n, c, sizeof(c), m); | ||
91 | } | ||
92 | |||
93 | endtime = get_time(); | ||
94 | slow_time = endtime - starttime; | ||
95 | |||
96 | printf("starting fast...\n"); | ||
97 | starttime = get_time(); | ||
98 | |||
99 | for (trialno = 0; trialno < numtrials; trialno++) { | ||
100 | encrypt_data_symmetric(k1, n, m, sizeof(m), c); | ||
101 | decrypt_data_symmetric(k2, n, c, sizeof(c), m); | ||
102 | } | ||
103 | |||
104 | endtime = get_time(); | ||
105 | fast_time = endtime - starttime; | ||
106 | |||
107 | printf("starting keygen...\n"); | ||
108 | starttime = get_time(); | ||
109 | |||
110 | for (trialno = 0; trialno < numtrials; trialno++) { | ||
111 | crypto_box_keypair(pk1, sk1); | ||
112 | crypto_box_keypair(pk2, sk2); | ||
113 | } | ||
114 | |||
115 | endtime = get_time(); | ||
116 | keygen_time = endtime - starttime; | ||
117 | |||
118 | printf("starting precompute...\n"); | ||
119 | starttime = get_time(); | ||
120 | |||
121 | for (trialno = 0; trialno < numtrials; trialno++) { | ||
122 | encrypt_precompute(pk1, sk2, k); | ||
123 | encrypt_precompute(pk2, sk1, k); | ||
124 | } | ||
125 | |||
126 | endtime = get_time(); | ||
127 | precompute_time = endtime - starttime; | ||
128 | |||
129 | printf("\n"); | ||
130 | printf("trials: %i\n", 2 * numtrials); | ||
131 | printf("\n"); | ||
132 | printf("slow time: %f sec\n", slow_time); | ||
133 | printf("fast time: %f sec\n", fast_time); | ||
134 | printf("keygen time: %f sec\n", keygen_time); | ||
135 | printf("precompute time: %f sec\n", precompute_time); | ||
136 | printf("\n"); | ||
137 | printf("Speed boost: %.1f%%\n", slow_time * 100 / fast_time); | ||
138 | printf("\n"); | ||
139 | printf("slow: %.1f per second\n", 2 * numtrials / slow_time); | ||
140 | printf("fast: %.1f per second\n", 2 * numtrials / fast_time); | ||
141 | |||
142 | return 0; | ||
143 | } | ||