aboutsummaryrefslogtreecommitdiff
path: root/src/gnsrecord
diff options
context:
space:
mode:
authorMartin Schanzenbach <schanzen@gnunet.org>2023-07-04 13:14:18 +0200
committerMartin Schanzenbach <schanzen@gnunet.org>2023-07-04 13:14:18 +0200
commitb195b613458c987787f7a0ec4de7e1cbabe02fa4 (patch)
treebb182694f6efa1b5bbfde33ca6ada96ab0c5deec /src/gnsrecord
parent203fc41d39ce7e5823a0ca6f2621ebfc2d95747c (diff)
downloadgnunet-b195b613458c987787f7a0ec4de7e1cbabe02fa4.tar.gz
gnunet-b195b613458c987787f7a0ec4de7e1cbabe02fa4.zip
GNS: Use test vector from current spec.
Diffstat (limited to 'src/gnsrecord')
-rw-r--r--src/gnsrecord/test_gnsrecord_testvectors.c321
1 files changed, 166 insertions, 155 deletions
diff --git a/src/gnsrecord/test_gnsrecord_testvectors.c b/src/gnsrecord/test_gnsrecord_testvectors.c
index cdfe83d76..139eda58c 100644
--- a/src/gnsrecord/test_gnsrecord_testvectors.c
+++ b/src/gnsrecord/test_gnsrecord_testvectors.c
@@ -4,6 +4,8 @@
4#include "gnunet_gnsrecord_lib.h" 4#include "gnunet_gnsrecord_lib.h"
5#include <inttypes.h> 5#include <inttypes.h>
6 6
7int res;
8
7struct GnsTv 9struct GnsTv
8{ 10{
9 uint32_t expected_rd_count; 11 uint32_t expected_rd_count;
@@ -56,14 +58,14 @@ struct GnsTv tvs[] = {
56 "57 11 bc 27 08 ad bb 24" 58 "57 11 bc 27 08 ad bb 24"
57 "2a 60 44 6a d3 c3 08 03" 59 "2a 60 44 6a d3 c3 08 03"
58 "12 1d 03 d3 48 b7 ce b6" 60 "12 1d 03 d3 48 b7 ce b6"
59 "0e 17 29 10 c3 07 30 84" 61 "0a d1 0b c1 3b 40 3b 5b"
60 "d0 2b 4f 7b 46 ab c8 fd" 62 "25 61 26 b2 14 5a 6f 60"
61 "f2 0f db e7 62 d5 a0 ac" 63 "c5 14 f9 51 ff a7 66 f7"
62 "77 75 dc a3 50 0a 06 2c" 64 "a3 fd 4b ac 4a 4e 19 90"
63 "05 15 fb 6d 44 61 1f ed" 65 "05 5c b8 7e 8d 1b fd 19"
64 "e4 c7 99 aa d0 05 5c 0d" 66 "aa 09 a4 29 f7 29 e9 f5"
65 "22 cc 42 11 7b f7 32 78" 67 "c6 ee c2 47 0a ce e2 22"
66 "bd ad 0d 00 65 2c 2b 17" 68 "07 59 e9 e3 6c 88 6f 35"
67 "00 1c ee 8c 10 e2 59 80" 69 "00 1c ee 8c 10 e2 59 80"
68 "0c 1e da 5c c0 94 a1 c7" 70 "0c 1e da 5c c0 94 a1 c7"
69 "a8 88 64 9d 25 fa ee bd" 71 "a8 88 64 9d 25 fa ee bd"
@@ -82,56 +84,6 @@ struct GnsTv tvs[] = {
82 "f9 6d 84 ff 61 f5 98 2c" 84 "f9 6d 84 ff 61 f5 98 2c"
83 "2c 4f e0 2d 5a 11 fe df" 85 "2c 4f e0 2d 5a 11 fe df"
84 "b0 c2 90 1f", 86 "b0 c2 90 1f",
85 .label = "74 65 73 74 64 65 6c 65"
86 "67 61 74 69 6f 6e",
87 .q =
88 "4a dc 67 c5 ec ee 9f 76"
89 "98 6a bd 71 c2 22 4a 3d"
90 "ce 2e 91 70 26 c9 a0 9d"
91 "fd 44 ce f3 d2 0f 55 a2"
92 "73 32 72 5a 6c 8a fb bb"
93 "b0 f7 ec 9a f1 cc 42 64"
94 "12 99 40 6b 04 fd 9b 5b"
95 "57 91 f8 6c 4b 08 d5 f4",
96 .rdata =
97 "00 1c ee 8b 3a 4e b5 80"
98 "00 20 00 01 00 01 00 00"
99 "21 e3 b3 0f f9 3b c6 d3"
100 "5a c8 c6 e0 e1 3a fd ff"
101 "79 4c b7 b4 4b bb c7 48"
102 "d2 59 d0 a0 28 4d be 84",
103 .rrblock =
104 "00 00 00 a0 00 01 00 00"
105 "18 2b b6 36 ed a7 9f 79"
106 "57 11 bc 27 08 ad bb 24"
107 "2a 60 44 6a d3 c3 08 03"
108 "12 1d 03 d3 48 b7 ce b6"
109 "0b af 41 a3 af 96 03 ea"
110 "be 46 0f 8a f6 7f 10 26"
111 "6c 14 90 17 2b 27 18 24"
112 "7f 29 09 99 f0 9f 34 d4"
113 "02 76 47 47 83 ed 63 39"
114 "d4 2c 76 80 b1 b2 ec 40"
115 "46 05 d6 f5 6b b3 f5 e3"
116 "7a 94 6d 4a 14 83 06 03"
117 "00 1c ee 8b 3a 4e b5 80"
118 "6c d1 19 47 8c d9 1c 80"
119 "dc 67 56 f8 96 83 f1 d5"
120 "d7 2e 1a a6 d9 bb 2d 14"
121 "ea 7a 24 9a ce b6 a6 00"
122 "59 f1 e9 d4 15 1b 0e ce"
123 "5f e7 fa 58 63 4d 81 c5"},
124 { .d =
125 "50 d7 b6 52 a4 ef ea df"
126 "f3 73 96 90 97 85 e5 95"
127 "21 71 a0 21 78 c8 e7 d4"
128 "50 fa 90 79 25 fa fd 98",
129 .zid =
130 "00 01 00 00 67 7c 47 7d"
131 "2d 93 09 7c 85 b1 95 c6"
132 "f9 6d 84 ff 61 f5 98 2c"
133 "2c 4f e0 2d 5a 11 fe df"
134 "b0 c2 90 1f",
135 .label = 87 .label =
136 "e5 a4 a9 e4 b8 8b e7 84" 88 "e5 a4 a9 e4 b8 8b e7 84"
137 "a1 e6 95 b5", 89 "a1 e6 95 b5",
@@ -145,7 +97,7 @@ struct GnsTv tvs[] = {
145 "67 78 c7 11 f2 ca 47 d5" 97 "67 78 c7 11 f2 ca 47 d5"
146 "5c f0 b5 4d 23 5d a9 77", 98 "5c f0 b5 4d 23 5d a9 77",
147 .rdata = 99 .rdata =
148 "00 1c ee 8b 3a 4e b5 80" 100 "00 1c ee 8c 10 e2 59 80"
149 "00 10 00 00 00 00 00 1c" 101 "00 10 00 00 00 00 00 1c"
150 "00 00 00 00 00 00 00 00" 102 "00 00 00 00 00 00 00 00"
151 "00 00 00 00 de ad be ef" 103 "00 00 00 00 de ad be ef"
@@ -167,31 +119,31 @@ struct GnsTv tvs[] = {
167 "ca 11 8d 4f 07 fa 7a ae" 119 "ca 11 8d 4f 07 fa 7a ae"
168 "55 08 bc f5 12 aa 41 12" 120 "55 08 bc f5 12 aa 41 12"
169 "14 29 d4 a0 de 9d 05 7e" 121 "14 29 d4 a0 de 9d 05 7e"
170 "04 85 97 8d 22 64 74 a9" 122 "08 5b d6 5f d4 85 10 51"
171 "22 fe 78 60 49 89 eb 52" 123 "ba ce 2a 45 2a fc 8a 7e"
172 "61 38 0d 16 11 e6 9f 01" 124 "4f 6b 2c 1f 74 f0 20 35"
173 "fc e0 d5 6d fc 53 24 c5" 125 "d9 64 1a cd ba a4 66 e0"
174 "08 2a 6b ef 15 7c 9d 27" 126 "00 ce d6 f2 d2 3b 63 1c"
175 "c3 35 4a 39 75 a4 30 98" 127 "8e 8a 0b 38 e2 ba e7 9a"
176 "d4 2b 5e d6 12 3c f5 41" 128 "22 ca d8 1d 4c 50 d2 25"
177 "c4 7c b4 22 16 4c a9 30" 129 "35 8e bc 17 ac 0f 89 9e"
178 "00 1c ee 8b 3a 4e b5 80" 130 "00 1c ee 8c 10 e2 59 80"
179 "03 a3 4a e6 1e 07 1c 08" 131 "d8 c2 8d 2f d6 96 7d 1a"
180 "17 fd d4 57 68 e8 c7 cd" 132 "b7 22 53 f2 10 98 b8 14"
181 "ab 72 b3 06 61 6e d1 f9" 133 "a4 10 be 1f 59 98 de 03"
182 "3f b5 64 e1 63 4c 64 64" 134 "f5 8f 7e 7c db 7f 08 a6"
183 "29 20 ac 74 eb cd 97 f8" 135 "16 51 be 4d 0b 6f 8a 61"
184 "1f 8a 93 d4 b0 c8 f7 c2" 136 "df 15 30 44 0b d7 47 dc"
185 "0d ff 38 bb 60 b4 ed 9d" 137 "f0 d7 10 4f 6b 8d 24 c2"
186 "cd 02 d7 e3 9f 4b 89 c2" 138 "ac 9b c1 3d 9c 6f e8 29"
187 "95 79 e0 75 dd ba 7b 8d" 139 "05 25 d2 a6 d0 f8 84 42"
188 "ad 4b 9d cd ef 15 57 4c" 140 "67 a1 57 0e 8e 29 4d c9"
189 "f3 50 b6 32 b3 93 a4 90" 141 "3a 31 9f cf c0 3e a2 70"
190 "fc f4 90 32 be eb 4e 68" 142 "17 d6 fd a3 47 b4 a7 94"
191 "25 72 70 b1 70 6f c6 1f" 143 "97 d7 f6 b1 42 2d 4e dd"
192 "d4 a4 c9 95 6c 64 f5 9e" 144 "82 1c 19 93 4e 96 c1 aa"
193 "81 d0 2b 6a 30 f5 8a 48" 145 "87 76 57 25 d4 94 c7 64"
194 "23 58 a1 2a ec 3d 0f 2d"}, 146 "b1 55 dc 6d 13 26 91 74"},
195 { .d = 147 { .d =
196 "5a f7 02 0e e1 91 60 32" 148 "5a f7 02 0e e1 91 60 32"
197 "88 32 35 2b bc 6a 68 a8" 149 "88 32 35 2b bc 6a 68 a8"
@@ -216,7 +168,7 @@ struct GnsTv tvs[] = {
216 "a1 57 8c 38 4e c6 1d 44" 168 "a1 57 8c 38 4e c6 1d 44"
217 "56 36 a9 4e 88 03 29 e9", 169 "56 36 a9 4e 88 03 29 e9",
218 .rdata = 170 .rdata =
219 "00 1c ee 8b 3a 4e b5 80" 171 "00 1c ee 8c 10 e2 59 80"
220 "00 20 00 01 00 01 00 00" 172 "00 20 00 01 00 01 00 00"
221 "21 e3 b3 0f f9 3b c6 d3" 173 "21 e3 b3 0f f9 3b c6 d3"
222 "5a c8 c6 e0 e1 3a fd ff" 174 "5a c8 c6 e0 e1 3a fd ff"
@@ -228,23 +180,23 @@ struct GnsTv tvs[] = {
228 "db ac 49 5c ab d9 10 49" 180 "db ac 49 5c ab d9 10 49"
229 "a6 84 af 3f 40 51 ba ca" 181 "a6 84 af 3f 40 51 ba ca"
230 "b0 dc f2 1c 8c f2 7a 1a" 182 "b0 dc f2 1c 8c f2 7a 1a"
231 "f4 27 a9 98 be 90 91 f3" 183 "9f 56 a8 86 ea 73 9d 59"
232 "bd 44 19 c2 86 06 81 fa" 184 "17 50 8f 9b 75 56 39 f3"
233 "0f c8 46 5c 35 e2 10 91" 185 "a9 ac fa ed ed ca 7f bf"
234 "f0 87 fd 8d dc a8 78 51" 186 "a7 94 b1 92 e0 8b f9 ed"
235 "53 d6 d9 bd 73 4f 08 9c" 187 "4c 7e c8 59 4c 9f 7b 4e"
236 "26 b6 52 da ea b4 73 25" 188 "19 77 4f f8 38 ec 38 7a"
237 "71 e5 d9 2b c9 96 3d ad" 189 "8f 34 23 da ac 44 9f 59"
238 "d8 be 55 31 87 26 52 00" 190 "db 4e 83 94 3f 90 72 00"
239 "00 1c ee 8b 3a 4e b5 80" 191 "00 1c ee 8c 10 e2 59 80"
240 "16 c7 0f d2 9a 62 38 9e" 192 "57 7c c6 c9 5a 14 e7 04"
241 "9b 04 9a 09 31 ba ba 46" 193 "09 f2 0b 01 67 e6 36 d0"
242 "a1 73 bb 56 f6 bf 56 16" 194 "10 80 7c 4f 00 37 2d 69"
243 "18 ba a1 69 0f ae fa 1c" 195 "8c 82 6b d9 2b c2 2b d6"
244 "c4 24 75 55 4d 47 96 98" 196 "bb 45 e5 27 7c 01 88 1d"
245 "39 8d f6 f0 42 0b 9e c2" 197 "6a 43 60 68 e4 dd f1 c6"
246 "6f b0 43 cf 1e fc 34 bd" 198 "b7 d1 41 6f af a6 69 7c"
247 "2e a0 c6 4a 7d ef d6 ac"}, 199 "25 ed d9 ea e9 91 67 c3"},
248 { .d = 200 { .d =
249 "5a f7 02 0e e1 91 60 32" 201 "5a f7 02 0e e1 91 60 32"
250 "88 32 35 2b bc 6a 68 a8" 202 "88 32 35 2b bc 6a 68 a8"
@@ -269,7 +221,7 @@ struct GnsTv tvs[] = {
269 "8f a7 f0 3c 3f ce be 78" 221 "8f a7 f0 3c 3f ce be 78"
270 "d3 f9 d6 40 aa c0 d1 ed", 222 "d3 f9 d6 40 aa c0 d1 ed",
271 .rdata = 223 .rdata =
272 "00 1c ee 8b 3a 4e b5 80" 224 "00 1c ee 8c 10 e2 59 80"
273 "00 10 00 00 00 00 00 1c" 225 "00 10 00 00 00 00 00 1c"
274 "00 00 00 00 00 00 00 00" 226 "00 00 00 00 00 00 00 00"
275 "00 00 00 00 de ad be ef" 227 "00 00 00 00 de ad be ef"
@@ -291,33 +243,33 @@ struct GnsTv tvs[] = {
291 "52 a8 a6 c2 eb 98 48 98" 243 "52 a8 a6 c2 eb 98 48 98"
292 "c5 3a cc a0 98 04 70 c6" 244 "c5 3a cc a0 98 04 70 c6"
293 "c8 12 64 cb dd 78 ad 11" 245 "c8 12 64 cb dd 78 ad 11"
294 "36 47 fb d2 27 cb 62 bf" 246 "75 6d 2c 15 7a d2 ea 4f"
295 "bf 28 6a cb 82 fc f3 64" 247 "c0 b1 b9 1c 08 03 79 44"
296 "67 3c dd 18 a7 a7 1e b3" 248 "61 d3 de f2 0d d1 63 6c"
297 "44 8e 71 72 35 89 a6 4a" 249 "fe dc 03 89 c5 49 d1 43"
298 "43 59 11 fe 14 f3 26 e9" 250 "6c c3 5b 4e 1b f8 89 5a"
299 "48 48 21 16 78 74 19 dd" 251 "64 6b d9 a6 f4 6b 83 48"
300 "ce f6 1a c2 2e 66 7a 0b" 252 "1d 9c 0e 91 d4 e1 be bb"
301 "99 4a c4 cb 6d a5 49 05" 253 "6a 83 52 6f b7 25 2a 06"
302 "00 1c ee 8b 3a 4e b5 80" 254 "00 1c ee 8c 10 e2 59 80"
303 "8e 45 6d e7 7d 37 2f 82" 255 "4e b3 5a 50 d4 0f e1 a4"
304 "f4 0b a0 4c 04 ca ac 4c" 256 "29 c7 f4 b2 67 a0 59 de"
305 "04 f2 8a 2b 5f 34 1d fc" 257 "4e 2c 8a 89 a5 ed 53 d3"
306 "73 59 8c 18 2a 9e 06 5e" 258 "d4 92 58 59 d2 94 9f 7f"
307 "e1 02 bc 7b a5 f1 cb e2" 259 "30 d8 a2 0c aa 96 f8 81"
308 "48 a3 d4 6e 56 3c 47 1d" 260 "45 05 2d 1c da 04 12 49"
309 "8d 10 0b 36 40 9e 37 31" 261 "8f f2 5f f2 81 6e f0 ce"
310 "89 94 bf fd d4 c8 d0 ff" 262 "61 fe 69 9b fa c7 2c 15"
311 "68 00 de a3 1b 81 09 b1" 263 "dc 83 0e a9 b0 36 17 1c"
312 "eb fb 21 71 f8 77 b8 6d" 264 "cf ca bb dd a8 de 3c 86"
313 "c2 53 1a b2 5e bb 88 62" 265 "ed e2 95 70 d0 17 4b 82"
314 "7f 93 74 56 d9 d7 a8 75" 266 "82 09 48 a9 28 b7 f0 0e"
315 "e5 f4 98 57 da 14 1c 61" 267 "fb 40 1c 10 fe 80 bb bb"
316 "52 ae 88 d0 6e 9a 47 fb" 268 "02 76 33 1b f7 f5 1b 8d"
317 "fd f3 b5 f7 db 99 e4 47" 269 "74 57 9c 14 14 f2 2d 50"
318 "93 4e 31 66 d1 15 bf 16" 270 "1a d2 5a e2 49 f5 bb f2"
319 "63 4e 5f 51 b8 87 fb 70" 271 "a6 c3 72 59 d1 75 e4 40"
320 "3b d4 4a 42 9b d3 32 ab"}, 272 "b2 94 39 c6 05 19 cb b1"},
321 {.d = NULL} 273 {.d = NULL}
322}; 274};
323 275
@@ -395,16 +347,54 @@ res_checker (void *cls,
395 unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd) 347 unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd)
396{ 348{
397 struct GnsTv *tv = cls; 349 struct GnsTv *tv = cls;
398 GNUNET_assert (rd_count == tv->expected_rd_count); 350 if (rd_count != tv->expected_rd_count)
399 printf ("RRCOUNT good: %d\n", rd_count); 351 {
352 printf ("FAIL: Record count expected: %u, was: %u\n", tv->expected_rd_count,
353 rd_count);
354 res = 1;
355 return;
356 }
400 for (int i = 0; i < rd_count; i++) 357 for (int i = 0; i < rd_count; i++)
401 { 358 {
402 GNUNET_assert (rd[i].record_type == tv->expected_rd[i].record_type); 359 if (rd[i].record_type != tv->expected_rd[i].record_type)
403 GNUNET_assert (rd[i].expiration_time == tv->expected_rd[i].expiration_time); 360 {
404 GNUNET_assert (rd[i].flags == tv->expected_rd[i].flags); 361 printf ("FAIL: Record type expected: %u, was: %u\n",
405 GNUNET_assert (rd[i].data_size == tv->expected_rd[i].data_size); 362 tv->expected_rd[i].record_type,
406 GNUNET_assert (0 == memcmp (rd[i].data, tv->expected_rd[i].data, 363 rd[i].record_type);
407 rd[i].data_size)); 364 res = 1;
365 return;
366 }
367 if (rd[i].expiration_time != tv->expected_rd[i].expiration_time)
368 {
369 printf ("FAIL: Expiration expected: %" PRIu64 ", was: %" PRIu64 "\n",
370 tv->expected_rd[i].expiration_time,
371 rd[i].expiration_time);
372 res = 1;
373 return;
374 }
375 if (rd[i].flags != tv->expected_rd[i].flags)
376 {
377 printf ("FAIL: Record flags expected: %u, was: %u\n",
378 tv->expected_rd[i].flags,
379 rd[i].flags);
380 res = 1;
381 return;
382 }
383 if (rd[i].data_size != tv->expected_rd[i].data_size)
384 {
385 printf ("FAIL: Record data size expected: %lu, was: %lu\n",
386 tv->expected_rd[i].data_size,
387 rd[i].data_size);
388 res = 1;
389 return;
390 }
391 if (0 != memcmp (rd[i].data, tv->expected_rd[i].data,
392 rd[i].data_size))
393 {
394 printf ("FAIL: Record data does not match\n");
395 res = 1;
396 return;
397 }
408 } 398 }
409} 399}
410 400
@@ -420,9 +410,11 @@ main ()
420 struct GNUNET_HashCode expected_query; 410 struct GNUNET_HashCode expected_query;
421 char label[128]; 411 char label[128];
422 char rdata[8096]; 412 char rdata[8096];
413 res = 0;
423 414
424 for (int i = 0; NULL != tvs[i].d; i++) 415 for (int i = 0; NULL != tvs[i].d; i++)
425 { 416 {
417 printf ("Test vector #%d\n", i);
426 memset (label, 0, sizeof (label)); 418 memset (label, 0, sizeof (label));
427 parsehex (tvs[i].zid,(char*) &pub_parsed, 36, 0); 419 parsehex (tvs[i].zid,(char*) &pub_parsed, 36, 0);
428 parsehex (tvs[i].d,(char*) &priv.ecdsa_key, sizeof (priv.ecdsa_key), 420 parsehex (tvs[i].d,(char*) &priv.ecdsa_key, sizeof (priv.ecdsa_key),
@@ -439,28 +431,47 @@ main ()
439 rrblock = GNUNET_malloc (strlen (tvs[i].rrblock)); 431 rrblock = GNUNET_malloc (strlen (tvs[i].rrblock));
440 parsehex (tvs[i].rrblock, (char*) rrblock, 0, 0); 432 parsehex (tvs[i].rrblock, (char*) rrblock, 0, 0);
441 parsehex (tvs[i].label, (char*) label, 0, 0); 433 parsehex (tvs[i].label, (char*) label, 0, 0);
442 printf ("Got label: %s\n", label);
443 parsehex (tvs[i].q, (char*) &query, 0, 0); 434 parsehex (tvs[i].q, (char*) &query, 0, 0);
444 GNUNET_GNSRECORD_query_from_public_key (&pub_parsed, 435 GNUNET_GNSRECORD_query_from_public_key (&pub_parsed,
445 label, 436 label,
446 &expected_query); 437 &expected_query);
447 GNUNET_assert (0 == GNUNET_memcmp (&query, &expected_query)); 438 if (0 != GNUNET_memcmp (&query, &expected_query))
439 {
440 printf ("FAIL: query does not match:");
441 printf (" expected: %s", GNUNET_h2s (&expected_query));
442 printf (", was: %s\n", GNUNET_h2s (&query));
443 res = 1;
444 goto finish;
445 }
448 int len = parsehex (tvs[i].rdata, (char*) rdata, 0, 0); 446 int len = parsehex (tvs[i].rdata, (char*) rdata, 0, 0);
449 tvs[i].expected_rd_count = GNUNET_GNSRECORD_records_deserialize_get_size ( 447 tvs[i].expected_rd_count =
450 len, 448 GNUNET_GNSRECORD_records_deserialize_get_size (len,
451 rdata); 449 rdata);
452 GNUNET_assert (tvs[i].expected_rd_count < 2048); 450 GNUNET_assert (tvs[i].expected_rd_count < 2048);
453 GNUNET_assert (GNUNET_OK == 451 if (GNUNET_OK !=
454 GNUNET_GNSRECORD_records_deserialize (len, 452 GNUNET_GNSRECORD_records_deserialize (len,
455 rdata, 453 rdata,
456 tvs[i]. 454 tvs[i].
457 expected_rd_count, 455 expected_rd_count,
458 tvs[i].expected_rd)); 456 tvs[i].expected_rd))
459 GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_decrypt (rrblock, 457 {
460 &pub_parsed, 458 printf ("FAIL: Deserialization of RDATA failed\n");
461 label, 459 res = 1;
462 &res_checker, 460 goto finish;
463 &tvs[i])); 461 }
462 if (GNUNET_OK != GNUNET_GNSRECORD_block_decrypt (rrblock,
463 &pub_parsed,
464 label,
465 &res_checker,
466 &tvs[i]))
467 {
468 printf ("FAIL: Decryption of RRBLOCK failed\n");
469 res = 1;
470 }
471 if (0 != res)
472 break;
473 printf ("Good.\n");
464 } 474 }
465 return 0; 475finish:
476 return res;
466} 477}