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, 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
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,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}