diff options
Diffstat (limited to 'src/util/test_crypto_ksk.c')
-rw-r--r-- | src/util/test_crypto_ksk.c | 192 |
1 files changed, 95 insertions, 97 deletions
diff --git a/src/util/test_crypto_ksk.c b/src/util/test_crypto_ksk.c index 55d2dffcb..2789f5edb 100644 --- a/src/util/test_crypto_ksk.c +++ b/src/util/test_crypto_ksk.c | |||
@@ -39,7 +39,7 @@ static int | |||
39 | testCorrectKey () | 39 | testCorrectKey () |
40 | { | 40 | { |
41 | const char *want = | 41 | const char *want = |
42 | "010601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b73c215f7a5e6b09bec55713c901786c09324a150980e014bdb0d04426934929c3b4971a9711af5455536cd6eeb8bfa004ee904972a737455f53c752987d8c82b755bc02882b44950c4acdc1672ba74c3b94d81a4c1ea3d74e7700ae5594c3a4f3c559e4bff2df6844fac302e4b66175e14dc8bad3ce44281d2fec1a1abef06301010000"; | 42 | "010601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b73c215f7a5e6b09bec55713c901786c09324a150980e014bdb0d04426934929c3b4971a9711af5455536cd6eeb8bfa004ee904972a737455f53c752987d8c82b755bc02882b44950c4acdc1672ba74c3b94d81a4c1ea3d74e7700ae5594c3a4f3c559e4bff2df6844fac302e4b66175e14dc8bad3ce44281d2fec1a1abef06301010000"; |
43 | GNUNET_HashCode in; | 43 | GNUNET_HashCode in; |
44 | struct GNUNET_CRYPTO_RsaPrivateKey *hostkey; | 44 | struct GNUNET_CRYPTO_RsaPrivateKey *hostkey; |
45 | struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pkey; | 45 | struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pkey; |
@@ -50,29 +50,27 @@ testCorrectKey () | |||
50 | GNUNET_CRYPTO_hash ("X", strlen ("X"), &in); | 50 | GNUNET_CRYPTO_hash ("X", strlen ("X"), &in); |
51 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); | 51 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); |
52 | if (hostkey == NULL) | 52 | if (hostkey == NULL) |
53 | { | 53 | { |
54 | GNUNET_break (0); | 54 | GNUNET_break (0); |
55 | return GNUNET_SYSERR; | 55 | return GNUNET_SYSERR; |
56 | } | 56 | } |
57 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey); | 57 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey); |
58 | GNUNET_CRYPTO_rsa_key_free (hostkey); | 58 | GNUNET_CRYPTO_rsa_key_free (hostkey); |
59 | #if 0 | 59 | #if 0 |
60 | for (i = 0; i < sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded); | 60 | for (i = 0; i < sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded); i++) |
61 | i++) | ||
62 | printf ("%02x", ((unsigned char *) &pkey)[i]); | 61 | printf ("%02x", ((unsigned char *) &pkey)[i]); |
63 | printf ("\n"); | 62 | printf ("\n"); |
64 | #endif | 63 | #endif |
65 | for (i = 0; i < sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded); | 64 | for (i = 0; i < sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded); i++) |
66 | i++) | 65 | { |
66 | snprintf (out, sizeof (out), "%02x", ((unsigned char *) &pkey)[i]); | ||
67 | if (0 != strncmp (out, &want[i * 2], 2)) | ||
67 | { | 68 | { |
68 | snprintf (out, sizeof (out), "%02x", ((unsigned char *) &pkey)[i]); | 69 | fprintf (stderr, " Failed! Wanted %.2s but got %2s at %d\n", &want[i * 2], |
69 | if (0 != strncmp (out, &want[i * 2], 2)) | 70 | out, i); |
70 | { | 71 | return GNUNET_SYSERR; |
71 | fprintf (stderr, " Failed! Wanted %.2s but got %2s at %d\n", | ||
72 | &want[i * 2], out, i); | ||
73 | return GNUNET_SYSERR; | ||
74 | } | ||
75 | } | 72 | } |
73 | } | ||
76 | fprintf (stderr, " OK\n"); | 74 | fprintf (stderr, " OK\n"); |
77 | return GNUNET_OK; | 75 | return GNUNET_OK; |
78 | } | 76 | } |
@@ -91,10 +89,10 @@ testMultiKey (const char *word) | |||
91 | GNUNET_CRYPTO_hash (word, strlen (word), &in); | 89 | GNUNET_CRYPTO_hash (word, strlen (word), &in); |
92 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); | 90 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); |
93 | if (hostkey == NULL) | 91 | if (hostkey == NULL) |
94 | { | 92 | { |
95 | GNUNET_break (0); | 93 | GNUNET_break (0); |
96 | return GNUNET_SYSERR; | 94 | return GNUNET_SYSERR; |
97 | } | 95 | } |
98 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey); | 96 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey); |
99 | /* | 97 | /* |
100 | * for (i=0;i<sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded);i++) | 98 | * for (i=0;i<sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded);i++) |
@@ -102,26 +100,26 @@ testMultiKey (const char *word) | |||
102 | * printf("\n"); */ | 100 | * printf("\n"); */ |
103 | GNUNET_CRYPTO_rsa_key_free (hostkey); | 101 | GNUNET_CRYPTO_rsa_key_free (hostkey); |
104 | for (i = 0; i < UNIQUE_ITER; i++) | 102 | for (i = 0; i < UNIQUE_ITER; i++) |
103 | { | ||
104 | fprintf (stderr, "."); | ||
105 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); | ||
106 | if (hostkey == NULL) | ||
105 | { | 107 | { |
106 | fprintf (stderr, "."); | 108 | GNUNET_break (0); |
107 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); | 109 | fprintf (stderr, " ERROR\n"); |
108 | if (hostkey == NULL) | 110 | return GNUNET_SYSERR; |
109 | { | ||
110 | GNUNET_break (0); | ||
111 | fprintf (stderr, " ERROR\n"); | ||
112 | return GNUNET_SYSERR; | ||
113 | } | ||
114 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey1); | ||
115 | GNUNET_CRYPTO_rsa_key_free (hostkey); | ||
116 | if (0 != | ||
117 | memcmp (&pkey, &pkey1, | ||
118 | sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded))) | ||
119 | { | ||
120 | GNUNET_break (0); | ||
121 | fprintf (stderr, " ERROR\n"); | ||
122 | return GNUNET_SYSERR; | ||
123 | } | ||
124 | } | 111 | } |
112 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey1); | ||
113 | GNUNET_CRYPTO_rsa_key_free (hostkey); | ||
114 | if (0 != | ||
115 | memcmp (&pkey, &pkey1, | ||
116 | sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded))) | ||
117 | { | ||
118 | GNUNET_break (0); | ||
119 | fprintf (stderr, " ERROR\n"); | ||
120 | return GNUNET_SYSERR; | ||
121 | } | ||
122 | } | ||
125 | fprintf (stderr, " OK\n"); | 123 | fprintf (stderr, " OK\n"); |
126 | return GNUNET_OK; | 124 | return GNUNET_OK; |
127 | } | 125 | } |
@@ -143,35 +141,35 @@ testEncryptDecrypt (struct GNUNET_CRYPTO_RsaPrivateKey *hostkey) | |||
143 | ok = 0; | 141 | ok = 0; |
144 | start = GNUNET_TIME_absolute_get (); | 142 | start = GNUNET_TIME_absolute_get (); |
145 | for (i = 0; i < ITER; i++) | 143 | for (i = 0; i < ITER; i++) |
144 | { | ||
145 | fprintf (stderr, "."); | ||
146 | if (GNUNET_SYSERR == | ||
147 | GNUNET_CRYPTO_rsa_encrypt (TESTSTRING, strlen (TESTSTRING) + 1, &pkey, | ||
148 | &target)) | ||
149 | { | ||
150 | fprintf (stderr, "GNUNET_CRYPTO_rsa_encrypt returned SYSERR\n"); | ||
151 | ok++; | ||
152 | continue; | ||
153 | } | ||
154 | if (-1 == | ||
155 | GNUNET_CRYPTO_rsa_decrypt (hostkey, &target, result, | ||
156 | strlen (TESTSTRING) + 1)) | ||
146 | { | 157 | { |
147 | fprintf (stderr, "."); | 158 | fprintf (stderr, "GNUNET_CRYPTO_rsa_decrypt returned SYSERR\n"); |
148 | if (GNUNET_SYSERR == | 159 | ok++; |
149 | GNUNET_CRYPTO_rsa_encrypt (TESTSTRING, strlen (TESTSTRING) + 1, | 160 | continue; |
150 | &pkey, &target)) | ||
151 | { | ||
152 | fprintf (stderr, "GNUNET_CRYPTO_rsa_encrypt returned SYSERR\n"); | ||
153 | ok++; | ||
154 | continue; | ||
155 | } | ||
156 | if (-1 == | ||
157 | GNUNET_CRYPTO_rsa_decrypt (hostkey, &target, result, | ||
158 | strlen (TESTSTRING) + 1)) | ||
159 | { | ||
160 | fprintf (stderr, "GNUNET_CRYPTO_rsa_decrypt returned SYSERR\n"); | ||
161 | ok++; | ||
162 | continue; | ||
163 | } | ||
164 | if (strncmp (TESTSTRING, result, strlen (TESTSTRING)) != 0) | ||
165 | { | ||
166 | printf ("%s != %.*s - testEncryptDecrypt failed!\n", TESTSTRING, | ||
167 | MAX_TESTVAL, result); | ||
168 | ok++; | ||
169 | continue; | ||
170 | } | ||
171 | } | 161 | } |
162 | if (strncmp (TESTSTRING, result, strlen (TESTSTRING)) != 0) | ||
163 | { | ||
164 | printf ("%s != %.*s - testEncryptDecrypt failed!\n", TESTSTRING, | ||
165 | MAX_TESTVAL, result); | ||
166 | ok++; | ||
167 | continue; | ||
168 | } | ||
169 | } | ||
172 | printf ("%d RSA encrypt/decrypt operations %llums (%d failures)\n", ITER, | 170 | printf ("%d RSA encrypt/decrypt operations %llums (%d failures)\n", ITER, |
173 | (unsigned long long) | 171 | (unsigned long long) |
174 | GNUNET_TIME_absolute_get_duration (start).rel_value, ok); | 172 | GNUNET_TIME_absolute_get_duration (start).rel_value, ok); |
175 | if (ok == 0) | 173 | if (ok == 0) |
176 | return GNUNET_OK; | 174 | return GNUNET_OK; |
177 | else | 175 | else |
@@ -194,34 +192,34 @@ testSignVerify (struct GNUNET_CRYPTO_RsaPrivateKey *hostkey) | |||
194 | purp.size = htonl (sizeof (struct GNUNET_CRYPTO_RsaSignaturePurpose)); | 192 | purp.size = htonl (sizeof (struct GNUNET_CRYPTO_RsaSignaturePurpose)); |
195 | purp.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_TEST); | 193 | purp.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_TEST); |
196 | for (i = 0; i < ITER; i++) | 194 | for (i = 0; i < ITER; i++) |
195 | { | ||
196 | fprintf (stderr, "."); | ||
197 | if (GNUNET_SYSERR == GNUNET_CRYPTO_rsa_sign (hostkey, &purp, &sig)) | ||
198 | { | ||
199 | fprintf (stderr, "GNUNET_CRYPTO_rsa_sign returned SYSERR\n"); | ||
200 | ok = GNUNET_SYSERR; | ||
201 | continue; | ||
202 | } | ||
203 | if (GNUNET_SYSERR == | ||
204 | GNUNET_CRYPTO_rsa_verify (GNUNET_SIGNATURE_PURPOSE_TEST, &purp, &sig, | ||
205 | &pkey)) | ||
206 | { | ||
207 | printf ("GNUNET_CRYPTO_rsa_verify failed!\n"); | ||
208 | ok = GNUNET_SYSERR; | ||
209 | continue; | ||
210 | } | ||
211 | if (GNUNET_SYSERR != | ||
212 | GNUNET_CRYPTO_rsa_verify (GNUNET_SIGNATURE_PURPOSE_TRANSPORT_PONG_OWN, | ||
213 | &purp, &sig, &pkey)) | ||
197 | { | 214 | { |
198 | fprintf (stderr, "."); | 215 | printf ("GNUNET_CRYPTO_rsa_verify failed to fail!\n"); |
199 | if (GNUNET_SYSERR == GNUNET_CRYPTO_rsa_sign (hostkey, &purp, &sig)) | 216 | ok = GNUNET_SYSERR; |
200 | { | 217 | continue; |
201 | fprintf (stderr, "GNUNET_CRYPTO_rsa_sign returned SYSERR\n"); | ||
202 | ok = GNUNET_SYSERR; | ||
203 | continue; | ||
204 | } | ||
205 | if (GNUNET_SYSERR == | ||
206 | GNUNET_CRYPTO_rsa_verify (GNUNET_SIGNATURE_PURPOSE_TEST, &purp, | ||
207 | &sig, &pkey)) | ||
208 | { | ||
209 | printf ("GNUNET_CRYPTO_rsa_verify failed!\n"); | ||
210 | ok = GNUNET_SYSERR; | ||
211 | continue; | ||
212 | } | ||
213 | if (GNUNET_SYSERR != | ||
214 | GNUNET_CRYPTO_rsa_verify | ||
215 | (GNUNET_SIGNATURE_PURPOSE_TRANSPORT_PONG_OWN, &purp, &sig, &pkey)) | ||
216 | { | ||
217 | printf ("GNUNET_CRYPTO_rsa_verify failed to fail!\n"); | ||
218 | ok = GNUNET_SYSERR; | ||
219 | continue; | ||
220 | } | ||
221 | } | 218 | } |
219 | } | ||
222 | printf ("%d RSA sign/verify operations %llums\n", ITER, | 220 | printf ("%d RSA sign/verify operations %llums\n", ITER, |
223 | (unsigned long long) | 221 | (unsigned long long) |
224 | GNUNET_TIME_absolute_get_duration (start).rel_value); | 222 | GNUNET_TIME_absolute_get_duration (start).rel_value); |
225 | return ok; | 223 | return ok; |
226 | } | 224 | } |
227 | 225 | ||
@@ -239,10 +237,10 @@ main (int argc, char *argv[]) | |||
239 | GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &in); | 237 | GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &in); |
240 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); | 238 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); |
241 | if (hostkey == NULL) | 239 | if (hostkey == NULL) |
242 | { | 240 | { |
243 | printf ("\nGNUNET_CRYPTO_rsa_key_create_from_hash failed!\n"); | 241 | printf ("\nGNUNET_CRYPTO_rsa_key_create_from_hash failed!\n"); |
244 | return 1; | 242 | return 1; |
245 | } | 243 | } |
246 | if (GNUNET_OK != testMultiKey ("foo")) | 244 | if (GNUNET_OK != testMultiKey ("foo")) |
247 | failureCount++; | 245 | failureCount++; |
248 | if (GNUNET_OK != testMultiKey ("bar")) | 246 | if (GNUNET_OK != testMultiKey ("bar")) |
@@ -254,9 +252,9 @@ main (int argc, char *argv[]) | |||
254 | GNUNET_CRYPTO_rsa_key_free (hostkey); | 252 | GNUNET_CRYPTO_rsa_key_free (hostkey); |
255 | 253 | ||
256 | if (failureCount != 0) | 254 | if (failureCount != 0) |
257 | { | 255 | { |
258 | printf ("\n\n%d TESTS FAILED!\n\n", failureCount); | 256 | printf ("\n\n%d TESTS FAILED!\n\n", failureCount); |
259 | return -1; | 257 | return -1; |
260 | } | 258 | } |
261 | return 0; | 259 | return 0; |
262 | } | 260 | } |