diff options
Diffstat (limited to 'src/gnsrecord/gnunet-gnsrecord-tvg.c')
-rw-r--r-- | src/gnsrecord/gnunet-gnsrecord-tvg.c | 82 |
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 | ||
40 | static char *d_pkey = | 40 | static char *d_pkey = |
41 | "50d7b652a4efeadff37396909785e5952171a02178c8e7d450fa907925fafd98"; | 41 | "50d7b652a4efeadff37396909785e5952171a02178c8e7d450fa907925fafd98"; |
42 | 42 | ||
43 | static char *d_edkey = | 43 | static char *d_edkey = |
44 | "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65"; | 44 | "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65"; |
45 | 45 | ||
46 | int parsehex(char *src, char *dst, size_t dstlen, int invert) | 46 | int 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 | } |