aboutsummaryrefslogtreecommitdiff
path: root/src/util/test_crypto_ksk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/test_crypto_ksk.c')
-rw-r--r--src/util/test_crypto_ksk.c192
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
39testCorrectKey () 39testCorrectKey ()
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}