diff options
Diffstat (limited to 'src/util/test_crypto_ksk.c')
-rw-r--r-- | src/util/test_crypto_ksk.c | 192 |
1 files changed, 97 insertions, 95 deletions
diff --git a/src/util/test_crypto_ksk.c b/src/util/test_crypto_ksk.c index 2789f5edb..55d2dffcb 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,27 +50,29 @@ 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); i++) | 60 | for (i = 0; i < sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded); |
61 | i++) | ||
61 | printf ("%02x", ((unsigned char *) &pkey)[i]); | 62 | printf ("%02x", ((unsigned char *) &pkey)[i]); |
62 | printf ("\n"); | 63 | printf ("\n"); |
63 | #endif | 64 | #endif |
64 | for (i = 0; i < sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded); i++) | 65 | for (i = 0; i < sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded); |
65 | { | 66 | i++) |
66 | snprintf (out, sizeof (out), "%02x", ((unsigned char *) &pkey)[i]); | ||
67 | if (0 != strncmp (out, &want[i * 2], 2)) | ||
68 | { | 67 | { |
69 | fprintf (stderr, " Failed! Wanted %.2s but got %2s at %d\n", &want[i * 2], | 68 | snprintf (out, sizeof (out), "%02x", ((unsigned char *) &pkey)[i]); |
70 | out, i); | 69 | if (0 != strncmp (out, &want[i * 2], 2)) |
71 | return GNUNET_SYSERR; | 70 | { |
71 | fprintf (stderr, " Failed! Wanted %.2s but got %2s at %d\n", | ||
72 | &want[i * 2], out, i); | ||
73 | return GNUNET_SYSERR; | ||
74 | } | ||
72 | } | 75 | } |
73 | } | ||
74 | fprintf (stderr, " OK\n"); | 76 | fprintf (stderr, " OK\n"); |
75 | return GNUNET_OK; | 77 | return GNUNET_OK; |
76 | } | 78 | } |
@@ -89,10 +91,10 @@ testMultiKey (const char *word) | |||
89 | GNUNET_CRYPTO_hash (word, strlen (word), &in); | 91 | GNUNET_CRYPTO_hash (word, strlen (word), &in); |
90 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); | 92 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); |
91 | if (hostkey == NULL) | 93 | if (hostkey == NULL) |
92 | { | 94 | { |
93 | GNUNET_break (0); | 95 | GNUNET_break (0); |
94 | return GNUNET_SYSERR; | 96 | return GNUNET_SYSERR; |
95 | } | 97 | } |
96 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey); | 98 | GNUNET_CRYPTO_rsa_key_get_public (hostkey, &pkey); |
97 | /* | 99 | /* |
98 | * for (i=0;i<sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded);i++) | 100 | * for (i=0;i<sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded);i++) |
@@ -100,26 +102,26 @@ testMultiKey (const char *word) | |||
100 | * printf("\n"); */ | 102 | * printf("\n"); */ |
101 | GNUNET_CRYPTO_rsa_key_free (hostkey); | 103 | GNUNET_CRYPTO_rsa_key_free (hostkey); |
102 | for (i = 0; i < UNIQUE_ITER; i++) | 104 | 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) | ||
107 | { | 105 | { |
108 | GNUNET_break (0); | 106 | fprintf (stderr, "."); |
109 | fprintf (stderr, " ERROR\n"); | 107 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); |
110 | return GNUNET_SYSERR; | 108 | if (hostkey == NULL) |
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 | } | ||
111 | } | 124 | } |
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 | } | ||
123 | fprintf (stderr, " OK\n"); | 125 | fprintf (stderr, " OK\n"); |
124 | return GNUNET_OK; | 126 | return GNUNET_OK; |
125 | } | 127 | } |
@@ -141,35 +143,35 @@ testEncryptDecrypt (struct GNUNET_CRYPTO_RsaPrivateKey *hostkey) | |||
141 | ok = 0; | 143 | ok = 0; |
142 | start = GNUNET_TIME_absolute_get (); | 144 | start = GNUNET_TIME_absolute_get (); |
143 | for (i = 0; i < ITER; i++) | 145 | 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)) | ||
157 | { | 146 | { |
158 | fprintf (stderr, "GNUNET_CRYPTO_rsa_decrypt returned SYSERR\n"); | 147 | fprintf (stderr, "."); |
159 | ok++; | 148 | if (GNUNET_SYSERR == |
160 | continue; | 149 | GNUNET_CRYPTO_rsa_encrypt (TESTSTRING, strlen (TESTSTRING) + 1, |
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 | } | ||
161 | } | 171 | } |
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 | } | ||
170 | printf ("%d RSA encrypt/decrypt operations %llums (%d failures)\n", ITER, | 172 | printf ("%d RSA encrypt/decrypt operations %llums (%d failures)\n", ITER, |
171 | (unsigned long long) | 173 | (unsigned long long) |
172 | GNUNET_TIME_absolute_get_duration (start).rel_value, ok); | 174 | GNUNET_TIME_absolute_get_duration (start).rel_value, ok); |
173 | if (ok == 0) | 175 | if (ok == 0) |
174 | return GNUNET_OK; | 176 | return GNUNET_OK; |
175 | else | 177 | else |
@@ -192,34 +194,34 @@ testSignVerify (struct GNUNET_CRYPTO_RsaPrivateKey *hostkey) | |||
192 | purp.size = htonl (sizeof (struct GNUNET_CRYPTO_RsaSignaturePurpose)); | 194 | purp.size = htonl (sizeof (struct GNUNET_CRYPTO_RsaSignaturePurpose)); |
193 | purp.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_TEST); | 195 | purp.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_TEST); |
194 | for (i = 0; i < ITER; i++) | 196 | 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)) | ||
214 | { | 197 | { |
215 | printf ("GNUNET_CRYPTO_rsa_verify failed to fail!\n"); | 198 | fprintf (stderr, "."); |
216 | ok = GNUNET_SYSERR; | 199 | if (GNUNET_SYSERR == GNUNET_CRYPTO_rsa_sign (hostkey, &purp, &sig)) |
217 | continue; | 200 | { |
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 | } | ||
218 | } | 221 | } |
219 | } | ||
220 | printf ("%d RSA sign/verify operations %llums\n", ITER, | 222 | printf ("%d RSA sign/verify operations %llums\n", ITER, |
221 | (unsigned long long) | 223 | (unsigned long long) |
222 | GNUNET_TIME_absolute_get_duration (start).rel_value); | 224 | GNUNET_TIME_absolute_get_duration (start).rel_value); |
223 | return ok; | 225 | return ok; |
224 | } | 226 | } |
225 | 227 | ||
@@ -237,10 +239,10 @@ main (int argc, char *argv[]) | |||
237 | GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &in); | 239 | GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &in); |
238 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); | 240 | hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); |
239 | if (hostkey == NULL) | 241 | if (hostkey == NULL) |
240 | { | 242 | { |
241 | printf ("\nGNUNET_CRYPTO_rsa_key_create_from_hash failed!\n"); | 243 | printf ("\nGNUNET_CRYPTO_rsa_key_create_from_hash failed!\n"); |
242 | return 1; | 244 | return 1; |
243 | } | 245 | } |
244 | if (GNUNET_OK != testMultiKey ("foo")) | 246 | if (GNUNET_OK != testMultiKey ("foo")) |
245 | failureCount++; | 247 | failureCount++; |
246 | if (GNUNET_OK != testMultiKey ("bar")) | 248 | if (GNUNET_OK != testMultiKey ("bar")) |
@@ -252,9 +254,9 @@ main (int argc, char *argv[]) | |||
252 | GNUNET_CRYPTO_rsa_key_free (hostkey); | 254 | GNUNET_CRYPTO_rsa_key_free (hostkey); |
253 | 255 | ||
254 | if (failureCount != 0) | 256 | if (failureCount != 0) |
255 | { | 257 | { |
256 | printf ("\n\n%d TESTS FAILED!\n\n", failureCount); | 258 | printf ("\n\n%d TESTS FAILED!\n\n", failureCount); |
257 | return -1; | 259 | return -1; |
258 | } | 260 | } |
259 | return 0; | 261 | return 0; |
260 | } | 262 | } |