diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-02-01 09:31:19 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-02-19 12:43:32 +0100 |
commit | 5b4ac38b55682277269bfe54324c15a6af1bb118 (patch) | |
tree | 3b7e7a1093c3a6890e250bfa9d2b4d35f65f1155 /src/gnsrecord | |
parent | 5e041b56a98c49a944804420ad53e18707c9f823 (diff) | |
download | gnunet-5b4ac38b55682277269bfe54324c15a6af1bb118.tar.gz gnunet-5b4ac38b55682277269bfe54324c15a6af1bb118.zip |
-try to make static analysis happy
Diffstat (limited to 'src/gnsrecord')
-rw-r--r-- | src/gnsrecord/gnunet-gnsrecord-tvg.c | 109 |
1 files changed, 25 insertions, 84 deletions
diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c b/src/gnsrecord/gnunet-gnsrecord-tvg.c index 31a2c5da2..2db301850 100644 --- a/src/gnsrecord/gnunet-gnsrecord-tvg.c +++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c | |||
@@ -40,7 +40,8 @@ static char *d_pkey = | |||
40 | static char *d_edkey = | 40 | static char *d_edkey = |
41 | "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65"; | 41 | "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65"; |
42 | 42 | ||
43 | int parsehex (char *src, char *dst, size_t dstlen, int invert) | 43 | int |
44 | parsehex (char *src, char *dst, size_t dstlen, int invert) | ||
44 | { | 45 | { |
45 | char *line = src; | 46 | char *line = src; |
46 | char *data = line; | 47 | char *data = line; |
@@ -80,6 +81,7 @@ print_bytes_ (void *buf, | |||
80 | printf ("\n"); | 81 | printf ("\n"); |
81 | } | 82 | } |
82 | 83 | ||
84 | |||
83 | static void | 85 | static void |
84 | print_bytes (void *buf, | 86 | print_bytes (void *buf, |
85 | size_t buf_len, | 87 | size_t buf_len, |
@@ -92,7 +94,7 @@ print_bytes (void *buf, | |||
92 | static void | 94 | static void |
93 | print_record (const struct GNUNET_GNSRECORD_Data *rd) | 95 | print_record (const struct GNUNET_GNSRECORD_Data *rd) |
94 | { | 96 | { |
95 | uint16_t flags = htons(rd->flags); | 97 | uint16_t flags = htons (rd->flags); |
96 | fprintf (stdout, | 98 | fprintf (stdout, |
97 | "EXPIRATION: %" PRIu64 "\n", rd->expiration_time); | 99 | "EXPIRATION: %" PRIu64 "\n", rd->expiration_time); |
98 | fprintf (stdout, | 100 | fprintf (stdout, |
@@ -101,7 +103,7 @@ print_record (const struct GNUNET_GNSRECORD_Data *rd) | |||
101 | "TYPE: %d\n", rd->record_type); | 103 | "TYPE: %d\n", rd->record_type); |
102 | fprintf (stdout, | 104 | fprintf (stdout, |
103 | "FLAGS: "); | 105 | "FLAGS: "); |
104 | print_bytes ((void*)&flags, sizeof (flags), 8); | 106 | print_bytes ((void*) &flags, sizeof (flags), 8); |
105 | printf ("\n"); | 107 | printf ("\n"); |
106 | fprintf (stdout, | 108 | fprintf (stdout, |
107 | "DATA:\n"); | 109 | "DATA:\n"); |
@@ -136,12 +138,10 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char *label) | |||
136 | size_t data_size; | 138 | size_t data_size; |
137 | char *rdata; | 139 | char *rdata; |
138 | size_t rdata_size; | 140 | size_t rdata_size; |
139 | uint32_t rd_count_nbo; | ||
140 | char ztld[128]; | 141 | char ztld[128]; |
141 | unsigned char ctr[GNUNET_CRYPTO_AES_KEY_LENGTH / 2]; | 142 | unsigned char ctr[GNUNET_CRYPTO_AES_KEY_LENGTH / 2]; |
142 | unsigned char skey[GNUNET_CRYPTO_AES_KEY_LENGTH]; | 143 | unsigned char skey[GNUNET_CRYPTO_AES_KEY_LENGTH]; |
143 | 144 | ||
144 | |||
145 | id_priv.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY); | 145 | id_priv.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY); |
146 | GNUNET_CRYPTO_ecdsa_key_create (&id_priv.ecdsa_key); | 146 | GNUNET_CRYPTO_ecdsa_key_create (&id_priv.ecdsa_key); |
147 | parsehex (d_pkey, | 147 | parsehex (d_pkey, |
@@ -179,16 +179,17 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char *label) | |||
179 | print_record (&rd[i]); | 179 | print_record (&rd[i]); |
180 | } | 180 | } |
181 | 181 | ||
182 | |||
183 | rdata_size = GNUNET_GNSRECORD_records_get_size (rd_count, | 182 | rdata_size = GNUNET_GNSRECORD_records_get_size (rd_count, |
184 | rd); | 183 | rd); |
185 | rdata = GNUNET_malloc (rdata_size); | 184 | rdata = GNUNET_malloc (rdata_size); |
186 | GNUNET_GNSRECORD_records_serialize (rd_count, | 185 | GNUNET_GNSRECORD_records_serialize (rd_count, |
187 | rd, | 186 | rd, |
188 | rdata_size, | 187 | (size_t) rdata_size, |
189 | rdata); | 188 | rdata); |
190 | fprintf (stdout, "RDATA:\n"); | 189 | fprintf (stdout, "RDATA:\n"); |
191 | print_bytes (rdata, rdata_size, 8); | 190 | print_bytes (rdata, |
191 | (size_t) rdata_size, | ||
192 | 8); | ||
192 | fprintf (stdout, "\n"); | 193 | fprintf (stdout, "\n"); |
193 | expire = GNUNET_GNSRECORD_record_get_expiration_time (rd_count, rd, | 194 | expire = GNUNET_GNSRECORD_record_get_expiration_time (rd_count, rd, |
194 | GNUNET_TIME_UNIT_ZERO_ABS); | 195 | GNUNET_TIME_UNIT_ZERO_ABS); |
@@ -217,14 +218,15 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char *label) | |||
217 | rd, | 218 | rd, |
218 | rd_count, | 219 | rd_count, |
219 | &rrblock)); | 220 | &rrblock)); |
220 | size_t bdata_size = ntohl(rrblock->size) - sizeof (struct GNUNET_GNSRECORD_Block); | 221 | size_t bdata_size = ntohl (rrblock->size) - sizeof (struct |
222 | GNUNET_GNSRECORD_Block); | ||
221 | 223 | ||
222 | bdata = (char*) &(&rrblock->ecdsa_block)[1]; | 224 | bdata = (char*) &(&rrblock->ecdsa_block)[1]; |
223 | fprintf (stdout, "BDATA:\n"); | 225 | fprintf (stdout, "BDATA:\n"); |
224 | print_bytes (bdata, bdata_size, 8); | 226 | print_bytes (bdata, bdata_size, 8); |
225 | fprintf (stdout, "\n"); | 227 | fprintf (stdout, "\n"); |
226 | fprintf (stdout, "RRBLOCK:\n"); | 228 | fprintf (stdout, "RRBLOCK:\n"); |
227 | print_bytes (rrblock, ntohl(rrblock->size), 8); | 229 | print_bytes (rrblock, ntohl (rrblock->size), 8); |
228 | fprintf (stdout, "\n"); | 230 | fprintf (stdout, "\n"); |
229 | GNUNET_free (rdata); | 231 | GNUNET_free (rdata); |
230 | } | 232 | } |
@@ -239,7 +241,7 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char *label) | |||
239 | * @param cfg configuration | 241 | * @param cfg configuration |
240 | */ | 242 | */ |
241 | static void | 243 | static void |
242 | run_edkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char* label) | 244 | run_edkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char*label) |
243 | { | 245 | { |
244 | struct GNUNET_TIME_Absolute expire; | 246 | struct GNUNET_TIME_Absolute expire; |
245 | struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); | 247 | struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); |
@@ -256,7 +258,7 @@ run_edkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char* label) | |||
256 | size_t data_size; | 258 | size_t data_size; |
257 | char *rdata; | 259 | char *rdata; |
258 | size_t rdata_size; | 260 | size_t rdata_size; |
259 | uint32_t rd_count_nbo; | 261 | |
260 | char ztld[128]; | 262 | char ztld[128]; |
261 | unsigned char nonce[crypto_secretbox_NONCEBYTES]; | 263 | unsigned char nonce[crypto_secretbox_NONCEBYTES]; |
262 | unsigned char skey[crypto_secretbox_KEYBYTES]; | 264 | unsigned char skey[crypto_secretbox_KEYBYTES]; |
@@ -307,13 +309,16 @@ run_edkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char* label) | |||
307 | expire = GNUNET_GNSRECORD_record_get_expiration_time (rd_count, | 309 | expire = GNUNET_GNSRECORD_record_get_expiration_time (rd_count, |
308 | rd, | 310 | rd, |
309 | GNUNET_TIME_UNIT_ZERO_ABS); | 311 | GNUNET_TIME_UNIT_ZERO_ABS); |
310 | rdata = GNUNET_malloc (rdata_size); | 312 | GNUNET_assert (0 < rdata_size); |
313 | rdata = GNUNET_malloc ((size_t) rdata_size); | ||
311 | GNUNET_GNSRECORD_records_serialize (rd_count, | 314 | GNUNET_GNSRECORD_records_serialize (rd_count, |
312 | rd, | 315 | rd, |
313 | rdata_size, | 316 | (size_t) rdata_size, |
314 | rdata); | 317 | rdata); |
315 | fprintf (stdout, "RDATA:\n"); | 318 | fprintf (stdout, "RDATA:\n"); |
316 | print_bytes (rdata, rdata_size, 8); | 319 | print_bytes (rdata, |
320 | (size_t) rdata_size, | ||
321 | 8); | ||
317 | fprintf (stdout, "\n"); | 322 | fprintf (stdout, "\n"); |
318 | GNR_derive_block_xsalsa_key (nonce, | 323 | GNR_derive_block_xsalsa_key (nonce, |
319 | skey, | 324 | skey, |
@@ -340,14 +345,15 @@ run_edkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char* label) | |||
340 | rd, | 345 | rd, |
341 | rd_count, | 346 | rd_count, |
342 | &rrblock)); | 347 | &rrblock)); |
343 | size_t bdata_size = ntohl(rrblock->size) - sizeof (struct GNUNET_GNSRECORD_Block); | 348 | size_t bdata_size = ntohl (rrblock->size) - sizeof (struct |
349 | GNUNET_GNSRECORD_Block); | ||
344 | 350 | ||
345 | bdata = (char*) &(&rrblock->eddsa_block)[1]; | 351 | bdata = (char*) &(&rrblock->eddsa_block)[1]; |
346 | fprintf (stdout, "BDATA:\n"); | 352 | fprintf (stdout, "BDATA:\n"); |
347 | print_bytes (bdata, bdata_size, 8); | 353 | print_bytes (bdata, bdata_size, 8); |
348 | fprintf (stdout, "\n"); | 354 | fprintf (stdout, "\n"); |
349 | fprintf (stdout, "RRBLOCK:\n"); | 355 | fprintf (stdout, "RRBLOCK:\n"); |
350 | print_bytes (rrblock, ntohl(rrblock->size), 8); | 356 | print_bytes (rrblock, ntohl (rrblock->size), 8); |
351 | fprintf (stdout, "\n"); | 357 | fprintf (stdout, "\n"); |
352 | GNUNET_free (rdata); | 358 | GNUNET_free (rdata); |
353 | } | 359 | } |
@@ -367,73 +373,8 @@ run (void *cls, | |||
367 | const char *cfgfile, | 373 | const char *cfgfile, |
368 | const struct GNUNET_CONFIGURATION_Handle *cfg) | 374 | const struct GNUNET_CONFIGURATION_Handle *cfg) |
369 | { | 375 | { |
370 | struct GNUNET_GNSRECORD_Data rd_pkey; | 376 | run_pkey (); |
371 | struct GNUNET_GNSRECORD_Data rd[3]; | 377 | run_edkey (); |
372 | struct GNUNET_TIME_Absolute exp1; | ||
373 | struct GNUNET_TIME_Absolute exp2; | ||
374 | struct GNUNET_TIME_Relative exp3; | ||
375 | size_t pkey_data_size; | ||
376 | size_t ip_data_size; | ||
377 | char *pkey_data; | ||
378 | char *ip_data; | ||
379 | |||
380 | |||
381 | /* | ||
382 | * Make different expiration times | ||
383 | */ | ||
384 | GNUNET_STRINGS_fancy_time_to_absolute ("2048-01-23 10:51:34", | ||
385 | &exp1); | ||
386 | GNUNET_STRINGS_fancy_time_to_absolute ("3540-05-22 07:55:01", | ||
387 | &exp2); | ||
388 | GNUNET_STRINGS_fancy_time_to_relative ("100y", | ||
389 | &exp3); | ||
390 | |||
391 | |||
392 | |||
393 | memset (&rd_pkey, 0, sizeof (struct GNUNET_GNSRECORD_Data)); | ||
394 | GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_string_to_value ( | ||
395 | GNUNET_GNSRECORD_TYPE_PKEY, | ||
396 | "000G0011WESGZY9VRV9NNJ66W3GKNZFZF56BFD2BQF3MHMJST2G2GKDYGG", | ||
397 | (void**)&pkey_data, | ||
398 | &pkey_data_size)); | ||
399 | rd_pkey.data = pkey_data; | ||
400 | rd_pkey.data_size = pkey_data_size; | ||
401 | rd_pkey.expiration_time = exp1.abs_value_us; | ||
402 | rd_pkey.record_type = GNUNET_GNSRECORD_TYPE_PKEY; | ||
403 | rd_pkey.flags = GNUNET_GNSRECORD_RF_CRITICAL; | ||
404 | GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_string_to_value ( | ||
405 | GNUNET_DNSPARSER_TYPE_AAAA, | ||
406 | "::dead:beef", | ||
407 | (void**)&ip_data, | ||
408 | &ip_data_size)); | ||
409 | |||
410 | rd[0].data = ip_data; | ||
411 | rd[0].data_size = ip_data_size; | ||
412 | rd[0].expiration_time = exp1.abs_value_us; | ||
413 | rd[0].record_type = GNUNET_DNSPARSER_TYPE_AAAA; | ||
414 | rd[0].flags = GNUNET_GNSRECORD_RF_NONE; | ||
415 | |||
416 | rd[1].data = "\u611b\u79f0"; | ||
417 | rd[1].data_size = strlen (rd[1].data); | ||
418 | rd[1].expiration_time = exp2.abs_value_us; | ||
419 | rd[1].record_type = GNUNET_GNSRECORD_TYPE_NICK; | ||
420 | rd[1].flags = GNUNET_GNSRECORD_RF_PRIVATE; | ||
421 | |||
422 | rd[2].data = "Hello World"; | ||
423 | rd[2].data_size = strlen (rd[2].data); | ||
424 | rd[2].expiration_time = exp3.rel_value_us; | ||
425 | rd[2].record_type = GNUNET_DNSPARSER_TYPE_TXT; | ||
426 | rd[2].flags = GNUNET_GNSRECORD_RF_SUPPLEMENTAL | GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION; | ||
427 | |||
428 | run_pkey (&rd_pkey, 1, "testdelegation"); | ||
429 | run_pkey (rd, 3, "namesystem"); | ||
430 | run_edkey (&rd_pkey, 1, "testdelegation"); | ||
431 | run_edkey (rd, 3, "namesystem"); | ||
432 | /*char *norm_lbl; | ||
433 | norm_lbl = GNUNET_GNSRECORD_string_normalize ("q\u0307\u0323namesysteM"); | ||
434 | print_bytes ("q\u0307\u0323namesysteM", strlen ("q\u0307\u0323namesysteM"), 8); | ||
435 | print_bytes (norm_lbl, strlen (norm_lbl), 8); | ||
436 | printf ("%s\n", norm_lbl);*/ | ||
437 | } | 378 | } |
438 | 379 | ||
439 | 380 | ||