aboutsummaryrefslogtreecommitdiff
path: root/src/gnsrecord/gnunet-gnsrecord-tvg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gnsrecord/gnunet-gnsrecord-tvg.c')
-rw-r--r--src/gnsrecord/gnunet-gnsrecord-tvg.c82
1 files changed, 32 insertions, 50 deletions
diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c b/src/gnsrecord/gnunet-gnsrecord-tvg.c
index 91c6608cd..f9b83e48b 100644
--- a/src/gnsrecord/gnunet-gnsrecord-tvg.c
+++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c
@@ -38,12 +38,12 @@
38#define TEST_RRCOUNT 2 38#define TEST_RRCOUNT 2
39 39
40static char *d_pkey = 40static char *d_pkey =
41"50d7b652a4efeadff37396909785e5952171a02178c8e7d450fa907925fafd98"; 41 "50d7b652a4efeadff37396909785e5952171a02178c8e7d450fa907925fafd98";
42 42
43static char *d_edkey = 43static char *d_edkey =
44"5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65"; 44 "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65";
45 45
46int parsehex(char *src, char *dst, size_t dstlen, int invert) 46int parsehex (char *src, char *dst, size_t dstlen, int invert)
47{ 47{
48 char *line = src; 48 char *line = src;
49 char *data = line; 49 char *data = line;
@@ -51,7 +51,8 @@ int parsehex(char *src, char *dst, size_t dstlen, int invert)
51 int read_byte; 51 int read_byte;
52 int data_len = 0; 52 int data_len = 0;
53 53
54 while (sscanf(data, " %02x%n", &read_byte, &off) == 1) { 54 while (sscanf (data, " %02x%n", &read_byte, &off) == 1)
55 {
55 if (invert) 56 if (invert)
56 dst[dstlen - 1 - data_len++] = read_byte; 57 dst[dstlen - 1 - data_len++] = read_byte;
57 else 58 else
@@ -155,9 +156,9 @@ run_pkey (void)
155 156
156 id_priv.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY); 157 id_priv.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
157 GNUNET_CRYPTO_ecdsa_key_create (&id_priv.ecdsa_key); 158 GNUNET_CRYPTO_ecdsa_key_create (&id_priv.ecdsa_key);
158 parsehex(d_pkey, 159 parsehex (d_pkey,
159 (char*)&id_priv.ecdsa_key, 160 (char*) &id_priv.ecdsa_key,
160 sizeof (id_priv.ecdsa_key), 1); 161 sizeof (id_priv.ecdsa_key), 1);
161 162
162 GNUNET_IDENTITY_key_get_public (&id_priv, 163 GNUNET_IDENTITY_key_get_public (&id_priv,
163 &id_pub); 164 &id_pub);
@@ -204,16 +205,12 @@ run_pkey (void)
204 rdata_size = GNUNET_GNSRECORD_records_get_size (TEST_RRCOUNT, 205 rdata_size = GNUNET_GNSRECORD_records_get_size (TEST_RRCOUNT,
205 rd); 206 rd);
206 rdata = GNUNET_malloc (rdata_size); 207 rdata = GNUNET_malloc (rdata_size);
207 rd_count_nbo = htonl (2);
208 GNUNET_memcpy (rdata,
209 &rd_count_nbo,
210 sizeof (uint32_t));
211 GNUNET_GNSRECORD_records_serialize (2, 208 GNUNET_GNSRECORD_records_serialize (2,
212 rd, 209 rd,
213 rdata_size, 210 rdata_size,
214 rdata + sizeof (uint32_t)); 211 rdata);
215 fprintf (stdout, "RDATA:\n"); 212 fprintf (stdout, "RDATA:\n");
216 print_bytes (rdata, rdata_size + sizeof (uint32_t), 8); 213 print_bytes (rdata, rdata_size, 8);
217 fprintf (stdout, "\n"); 214 fprintf (stdout, "\n");
218 expire = GNUNET_GNSRECORD_record_get_expiration_time (TEST_RRCOUNT, rd); 215 expire = GNUNET_GNSRECORD_record_get_expiration_time (TEST_RRCOUNT, rd);
219 GNR_derive_block_aes_key (ctr, 216 GNR_derive_block_aes_key (ctr,
@@ -235,26 +232,20 @@ run_pkey (void)
235 fprintf (stdout, "Storage key (q):\n"); 232 fprintf (stdout, "Storage key (q):\n");
236 print_bytes (&query, sizeof (query), 8); 233 print_bytes (&query, sizeof (query), 8);
237 fprintf (stdout, "\n"); 234 fprintf (stdout, "\n");
238 235 GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create (&id_priv,
239 rrblock = GNUNET_GNSRECORD_block_create (&id_priv, 236 expire,
240 expire, 237 TEST_RECORD_LABEL,
241 TEST_RECORD_LABEL, 238 rd,
242 rd, 239 TEST_RRCOUNT,
243 TEST_RRCOUNT); 240 &rrblock));
244 size_t bdata_size = ntohl (rrblock->ecdsa_block.purpose.size) 241 size_t bdata_size = ntohl(rrblock->size) - sizeof (struct GNUNET_GNSRECORD_Block);
245 - sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose)
246 - sizeof(struct GNUNET_TIME_AbsoluteNBO);
247 size_t ecblock_size = ntohl (rrblock->ecdsa_block.purpose.size)
248 + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)
249 + sizeof(struct GNUNET_CRYPTO_EcdsaSignature);
250 size_t block_size = ecblock_size + sizeof (uint32_t);
251 242
252 bdata = (char*) &(&rrblock->ecdsa_block)[1]; 243 bdata = (char*) &(&rrblock->ecdsa_block)[1];
253 fprintf (stdout, "BDATA:\n"); 244 fprintf (stdout, "BDATA:\n");
254 print_bytes (bdata, bdata_size, 8); 245 print_bytes (bdata, bdata_size, 8);
255 fprintf (stdout, "\n"); 246 fprintf (stdout, "\n");
256 fprintf (stdout, "RRBLOCK:\n"); 247 fprintf (stdout, "RRBLOCK:\n");
257 print_bytes (rrblock, block_size, 8); 248 print_bytes (rrblock, ntohl(rrblock->size), 8);
258 fprintf (stdout, "\n"); 249 fprintf (stdout, "\n");
259 GNUNET_free (rdata); 250 GNUNET_free (rdata);
260} 251}
@@ -309,9 +300,9 @@ run_edkey (void)
309 300
310 id_priv.type = htonl (GNUNET_IDENTITY_TYPE_EDDSA); 301 id_priv.type = htonl (GNUNET_IDENTITY_TYPE_EDDSA);
311 GNUNET_CRYPTO_eddsa_key_create (&id_priv.eddsa_key); 302 GNUNET_CRYPTO_eddsa_key_create (&id_priv.eddsa_key);
312 parsehex(d_edkey, 303 parsehex (d_edkey,
313 (char*)&id_priv.eddsa_key, 304 (char*) &id_priv.eddsa_key,
314 sizeof (id_priv.eddsa_key), 0); 305 sizeof (id_priv.eddsa_key), 0);
315 GNUNET_IDENTITY_key_get_public (&id_priv, 306 GNUNET_IDENTITY_key_get_public (&id_priv,
316 &id_pub); 307 &id_pub);
317 fprintf (stdout, 308 fprintf (stdout,
@@ -358,17 +349,13 @@ run_edkey (void)
358 rd); 349 rd);
359 expire = GNUNET_GNSRECORD_record_get_expiration_time (TEST_RRCOUNT, 350 expire = GNUNET_GNSRECORD_record_get_expiration_time (TEST_RRCOUNT,
360 rd); 351 rd);
361 rdata = GNUNET_malloc (sizeof (uint32_t) + rdata_size); 352 rdata = GNUNET_malloc (rdata_size);
362 rd_count_nbo = htonl (2);
363 GNUNET_memcpy (rdata,
364 &rd_count_nbo,
365 sizeof (uint32_t));
366 GNUNET_GNSRECORD_records_serialize (2, 353 GNUNET_GNSRECORD_records_serialize (2,
367 rd, 354 rd,
368 rdata_size, 355 rdata_size,
369 rdata + sizeof (uint32_t)); 356 rdata);
370 fprintf (stdout, "RDATA:\n"); 357 fprintf (stdout, "RDATA:\n");
371 print_bytes (rdata, rdata_size + sizeof (uint32_t), 8); 358 print_bytes (rdata, rdata_size, 8);
372 fprintf (stdout, "\n"); 359 fprintf (stdout, "\n");
373 GNR_derive_block_xsalsa_key (nonce, 360 GNR_derive_block_xsalsa_key (nonce,
374 skey, 361 skey,
@@ -389,25 +376,20 @@ run_edkey (void)
389 print_bytes (&query, sizeof (query), 8); 376 print_bytes (&query, sizeof (query), 8);
390 fprintf (stdout, "\n"); 377 fprintf (stdout, "\n");
391 378
392 rrblock = GNUNET_GNSRECORD_block_create (&id_priv, 379 GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create (&id_priv,
393 expire, 380 expire,
394 TEST_RECORD_LABEL, 381 TEST_RECORD_LABEL,
395 rd, 382 rd,
396 TEST_RRCOUNT); 383 TEST_RRCOUNT,
397 size_t bdata_size = ntohl (rrblock->eddsa_block.purpose.size) 384 &rrblock));
398 - sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) 385 size_t bdata_size = ntohl(rrblock->size) - sizeof (struct GNUNET_GNSRECORD_Block);
399 - sizeof(struct GNUNET_TIME_AbsoluteNBO);
400 size_t ecblock_size = ntohl (rrblock->eddsa_block.purpose.size)
401 + sizeof(struct GNUNET_CRYPTO_EddsaPublicKey)
402 + sizeof(struct GNUNET_CRYPTO_EddsaSignature);
403 size_t block_size = ecblock_size + sizeof (uint32_t);
404 386
405 bdata = (char*) &(&rrblock->eddsa_block)[1]; 387 bdata = (char*) &(&rrblock->eddsa_block)[1];
406 fprintf (stdout, "BDATA:\n"); 388 fprintf (stdout, "BDATA:\n");
407 print_bytes (bdata, bdata_size, 8); 389 print_bytes (bdata, bdata_size, 8);
408 fprintf (stdout, "\n"); 390 fprintf (stdout, "\n");
409 fprintf (stdout, "RRBLOCK:\n"); 391 fprintf (stdout, "RRBLOCK:\n");
410 print_bytes (rrblock, block_size, 8); 392 print_bytes (rrblock, ntohl(rrblock->size), 8);
411 fprintf (stdout, "\n"); 393 fprintf (stdout, "\n");
412 GNUNET_free (rdata); 394 GNUNET_free (rdata);
413} 395}