diff options
author | Martin Schanzenbach <schanzen@gnunet.org> | 2023-07-03 11:56:33 +0200 |
---|---|---|
committer | Martin Schanzenbach <schanzen@gnunet.org> | 2023-07-03 11:56:33 +0200 |
commit | cefb5c679c9d6673247e77148fed4df1b107463d (patch) | |
tree | e9996a7da6dea304d08f10ee0df3f31ebc1f73fd /src/gnsrecord | |
parent | 97e3f402657fb5b298c66fb92c4a0e2b8892e10b (diff) | |
download | gnunet-cefb5c679c9d6673247e77148fed4df1b107463d.tar.gz gnunet-cefb5c679c9d6673247e77148fed4df1b107463d.zip |
GNS: Also consume a set of test vectors.
Diffstat (limited to 'src/gnsrecord')
-rw-r--r-- | src/gnsrecord/gnunet-gnsrecord-tvg.c | 15 | ||||
-rw-r--r-- | src/gnsrecord/test_gnsrecord_testvectors.c | 299 |
2 files changed, 289 insertions, 25 deletions
diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c b/src/gnsrecord/gnunet-gnsrecord-tvg.c index 588f16b4b..b2a8d1405 100644 --- a/src/gnsrecord/gnunet-gnsrecord-tvg.c +++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c | |||
@@ -116,17 +116,17 @@ print_record (const struct GNUNET_GNSRECORD_Data *rd) | |||
116 | at = GNUNET_TIME_relative_to_absolute (rt); | 116 | at = GNUNET_TIME_relative_to_absolute (rt); |
117 | abs_nbo = GNUNET_htonll (at.abs_value_us); | 117 | abs_nbo = GNUNET_htonll (at.abs_value_us); |
118 | } | 118 | } |
119 | printf ("EXPIRATION: %" PRIu64 " us\n", rd->expiration_time); | 119 | printf (" EXPIRATION: %" PRIu64 " us\n", rd->expiration_time); |
120 | print_bytes (&abs_nbo, sizeof (abs_nbo), 8); | 120 | print_bytes (&abs_nbo, sizeof (abs_nbo), 8); |
121 | printf ("\nDATA_SIZE:\n"); | 121 | printf ("\n DATA_SIZE:\n"); |
122 | print_bytes (&size_nbo, sizeof (size_nbo), 8); | 122 | print_bytes (&size_nbo, sizeof (size_nbo), 8); |
123 | printf ("\nTYPE:\n"); | 123 | printf ("\n TYPE:\n"); |
124 | print_bytes (&type_nbo, sizeof (type_nbo), 8); | 124 | print_bytes (&type_nbo, sizeof (type_nbo), 8); |
125 | printf ("\nFLAGS: "); | 125 | printf ("\n FLAGS: "); |
126 | print_bytes ((void*) &flags, sizeof (flags), 8); | 126 | print_bytes ((void*) &flags, sizeof (flags), 8); |
127 | printf ("\n"); | 127 | printf ("\n"); |
128 | fprintf (stdout, | 128 | fprintf (stdout, |
129 | "DATA:\n"); | 129 | " DATA:\n"); |
130 | print_bytes ((char*) rd->data, rd->data_size, 8); | 130 | print_bytes ((char*) rd->data, rd->data_size, 8); |
131 | printf ("\n"); | 131 | printf ("\n"); |
132 | } | 132 | } |
@@ -241,6 +241,7 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char *label) | |||
241 | &rrblock)); | 241 | &rrblock)); |
242 | struct GNUNET_CRYPTO_EcdsaPublicKey derived_key; | 242 | struct GNUNET_CRYPTO_EcdsaPublicKey derived_key; |
243 | struct GNUNET_CRYPTO_EcdsaPrivateKey *derived_privkey; | 243 | struct GNUNET_CRYPTO_EcdsaPrivateKey *derived_privkey; |
244 | |||
244 | GNUNET_CRYPTO_ecdsa_public_key_derive (&id_pub.ecdsa_key, | 245 | GNUNET_CRYPTO_ecdsa_public_key_derive (&id_pub.ecdsa_key, |
245 | label, | 246 | label, |
246 | "gns", | 247 | "gns", |
@@ -251,8 +252,8 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count, const char *label) | |||
251 | printf ("ZKDF(zkey):\n"); | 252 | printf ("ZKDF(zkey):\n"); |
252 | print_bytes (&derived_key, sizeof (derived_key), 8); | 253 | print_bytes (&derived_key, sizeof (derived_key), 8); |
253 | printf ("\n"); | 254 | printf ("\n"); |
254 | printf ("Derived private key (d'):\n"); | 255 | printf ("Derived private key (d', big-endian):\n"); |
255 | print_bytes (derived_privkey, sizeof (*derived_privkey), 8); | 256 | print_bytes_ (derived_privkey, sizeof (*derived_privkey), 8, 1); |
256 | printf ("\n"); | 257 | printf ("\n"); |
257 | size_t bdata_size = ntohl (rrblock->size) - sizeof (struct | 258 | size_t bdata_size = ntohl (rrblock->size) - sizeof (struct |
258 | GNUNET_GNSRECORD_Block); | 259 | GNUNET_GNSRECORD_Block); |
diff --git a/src/gnsrecord/test_gnsrecord_testvectors.c b/src/gnsrecord/test_gnsrecord_testvectors.c index 2b05c1b5d..60af14b15 100644 --- a/src/gnsrecord/test_gnsrecord_testvectors.c +++ b/src/gnsrecord/test_gnsrecord_testvectors.c | |||
@@ -6,50 +6,293 @@ | |||
6 | 6 | ||
7 | struct GnsTv | 7 | struct GnsTv |
8 | { | 8 | { |
9 | uint32_t expected_rd_count; | ||
10 | struct GNUNET_GNSRECORD_Data expected_rd[2048]; | ||
9 | char *d; | 11 | char *d; |
10 | char *zid; | 12 | char *zid; |
11 | int rrcount; | ||
12 | char *label; | 13 | char *label; |
13 | char *q; | 14 | char *q; |
14 | char *rdata; | 15 | char *rdata; |
15 | char *bdata; | ||
16 | char *rrblock; | 16 | char *rrblock; |
17 | }; | 17 | }; |
18 | 18 | ||
19 | #define TVCOUNT 1 | 19 | #define TVCOUNT 4 |
20 | 20 | ||
21 | struct GnsTv tvs[] = { | 21 | struct GnsTv tvs[] = { |
22 | { .d = "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65\0", | 22 | { .d = |
23 | "50 d7 b6 52 a4 ef ea df" | ||
24 | "f3 73 96 90 97 85 e5 95" | ||
25 | "21 71 a0 21 78 c8 e7 d4" | ||
26 | "50 fa 90 79 25 fa fd 98", | ||
23 | .zid = | 27 | .zid = |
24 | "000100143cf4b924032022f0dc50581453b85d93b047b63d446c5845cb48445ddb96688f\0", | 28 | "00 01 00 00 67 7c 47 7d" |
25 | .rrcount = 1, | 29 | "2d 93 09 7c 85 b1 95 c6" |
26 | .label = "7465737464656c65676174696f6e\0", | 30 | "f9 6d 84 ff 61 f5 98 2c" |
31 | "2c 4f e0 2d 5a 11 fe df" | ||
32 | "b0 c2 90 1f", | ||
33 | .label = "74 65 73 74 64 65 6c 65" | ||
34 | "67 61 74 69 6f 6e", | ||
27 | .q = | 35 | .q = |
28 | "ed76cefdb6a9d73a9e1f10d96717eba3fc89ebe1b37584f6b077c2912e2fc5f312cf74e1b4d4dfca5abaec736d72666f0faa2945217f3b1436aa4e27c14c9732\0", | 36 | "4a dc 67 c5 ec ee 9f 76" |
37 | "98 6a bd 71 c2 22 4a 3d" | ||
38 | "ce 2e 91 70 26 c9 a0 9d" | ||
39 | "fd 44 ce f3 d2 0f 55 a2" | ||
40 | "73 32 72 5a 6c 8a fb bb" | ||
41 | "b0 f7 ec 9a f1 cc 42 64" | ||
42 | "12 99 40 6b 04 fd 9b 5b" | ||
43 | "57 91 f8 6c 4b 08 d5 f4", | ||
29 | .rdata = | 44 | .rdata = |
30 | "0008c06fb9281580002000010001000021e3b30ff93bc6d35ac8c6e0e13afdff794cb7b44bbbc748d259d0a0284dbe84\0", | 45 | "00 1c ee 8b 3a 4e b5 80" |
31 | .bdata = | 46 | "00 20 00 01 00 01 00 00" |
32 | "9cc455a1293319435993cb3d67179ec06ea8d8894e904a0c35e91c5c2ff2ed939cc2f8301231f44e592a4ac87e4998b94625c64af51686a2b36a2b2892d44f2d\0", | 47 | "21 e3 b3 0f f9 3b c6 d3" |
48 | "5a c8 c6 e0 e1 3a fd ff" | ||
49 | "79 4c b7 b4 4b bb c7 48" | ||
50 | "d2 59 d0 a0 28 4d be 84", | ||
33 | .rrblock = | 51 | .rrblock = |
34 | "000000b0000100149bf233198c6d53bbdbac495cabd91049a684af3f4051bacab0dcf21c8cf27a1a44d240d07902f490b7c43ef00758abce8851c18c70ac6df97a88f79211cf875f784885ca3e349ec4ca892b9ff084c5358965b8e74a2315952d4c8c06521c2f0c0008c06fb92815809cc455a1293319435993cb3d67179ec06ea8d8894e904a0c35e91c5c2ff2ed939cc2f8301231f44e592a4ac87e4998b94625c64af51686a2b36a2b2892d44f2d\0"} | 52 | "00 00 00 a0 00 01 00 00" |
53 | "18 2b b6 36 ed a7 9f 79" | ||
54 | "57 11 bc 27 08 ad bb 24" | ||
55 | "2a 60 44 6a d3 c3 08 03" | ||
56 | "12 1d 03 d3 48 b7 ce b6" | ||
57 | "0b af 41 a3 af 96 03 ea" | ||
58 | "be 46 0f 8a f6 7f 10 26" | ||
59 | "6c 14 90 17 2b 27 18 24" | ||
60 | "7f 29 09 99 f0 9f 34 d4" | ||
61 | "02 76 47 47 83 ed 63 39" | ||
62 | "d4 2c 76 80 b1 b2 ec 40" | ||
63 | "46 05 d6 f5 6b b3 f5 e3" | ||
64 | "7a 94 6d 4a 14 83 06 03" | ||
65 | "00 1c ee 8b 3a 4e b5 80" | ||
66 | "6c d1 19 47 8c d9 1c 80" | ||
67 | "dc 67 56 f8 96 83 f1 d5" | ||
68 | "d7 2e 1a a6 d9 bb 2d 14" | ||
69 | "ea 7a 24 9a ce b6 a6 00" | ||
70 | "59 f1 e9 d4 15 1b 0e ce" | ||
71 | "5f e7 fa 58 63 4d 81 c5"}, | ||
72 | { .d = | ||
73 | "50 d7 b6 52 a4 ef ea df" | ||
74 | "f3 73 96 90 97 85 e5 95" | ||
75 | "21 71 a0 21 78 c8 e7 d4" | ||
76 | "50 fa 90 79 25 fa fd 98", | ||
77 | .zid = | ||
78 | "00 01 00 00 67 7c 47 7d" | ||
79 | "2d 93 09 7c 85 b1 95 c6" | ||
80 | "f9 6d 84 ff 61 f5 98 2c" | ||
81 | "2c 4f e0 2d 5a 11 fe df" | ||
82 | "b0 c2 90 1f", | ||
83 | .label = | ||
84 | "e5 a4 a9 e4 b8 8b e7 84" | ||
85 | "a1 e6 95 b5", | ||
86 | .q = | ||
87 | "af f0 ad 6a 44 09 73 68" | ||
88 | "42 9a c4 76 df a1 f3 4b" | ||
89 | "ee 4c 36 e7 47 6d 07 aa" | ||
90 | "64 63 ff 20 91 5b 10 05" | ||
91 | "c0 99 1d ef 91 fc 3e 10" | ||
92 | "90 9f 87 02 c0 be 40 43" | ||
93 | "67 78 c7 11 f2 ca 47 d5" | ||
94 | "5c f0 b5 4d 23 5d a9 77", | ||
95 | .rdata = | ||
96 | "00 1c ee 8b 3a 4e b5 80" | ||
97 | "00 10 00 00 00 00 00 1c" | ||
98 | "00 00 00 00 00 00 00 00" | ||
99 | "00 00 00 00 de ad be ef" | ||
100 | "00 3f f2 aa 54 08 db 40" | ||
101 | "00 06 00 00 00 01 00 01" | ||
102 | "e6 84 9b e7 a7 b0 00 28" | ||
103 | "bb 13 ff 37 19 40 00 0b" | ||
104 | "00 04 00 00 00 10 48 65" | ||
105 | "6c 6c 6f 20 57 6f 72 6c" | ||
106 | "64 00 00 00 00 00 00 00" | ||
107 | "00 00 00 00 00 00 00 00" | ||
108 | "00 00 00 00 00 00 00 00" | ||
109 | "00 00 00 00 00 00 00 00" | ||
110 | "00 00 00 00 00 00 00 00" | ||
111 | "00 00 00 00 00 00 00 00", | ||
112 | .rrblock = | ||
113 | "00 00 00 f0 00 01 00 00" | ||
114 | "a5 12 96 df 75 7e e2 75" | ||
115 | "ca 11 8d 4f 07 fa 7a ae" | ||
116 | "55 08 bc f5 12 aa 41 12" | ||
117 | "14 29 d4 a0 de 9d 05 7e" | ||
118 | "04 85 97 8d 22 64 74 a9" | ||
119 | "22 fe 78 60 49 89 eb 52" | ||
120 | "61 38 0d 16 11 e6 9f 01" | ||
121 | "fc e0 d5 6d fc 53 24 c5" | ||
122 | "08 2a 6b ef 15 7c 9d 27" | ||
123 | "c3 35 4a 39 75 a4 30 98" | ||
124 | "d4 2b 5e d6 12 3c f5 41" | ||
125 | "c4 7c b4 22 16 4c a9 30" | ||
126 | "00 1c ee 8b 3a 4e b5 80" | ||
127 | "03 a3 4a e6 1e 07 1c 08" | ||
128 | "17 fd d4 57 68 e8 c7 cd" | ||
129 | "ab 72 b3 06 61 6e d1 f9" | ||
130 | "3f b5 64 e1 63 4c 64 64" | ||
131 | "29 20 ac 74 eb cd 97 f8" | ||
132 | "1f 8a 93 d4 b0 c8 f7 c2" | ||
133 | "0d ff 38 bb 60 b4 ed 9d" | ||
134 | "cd 02 d7 e3 9f 4b 89 c2" | ||
135 | "95 79 e0 75 dd ba 7b 8d" | ||
136 | "ad 4b 9d cd ef 15 57 4c" | ||
137 | "f3 50 b6 32 b3 93 a4 90" | ||
138 | "fc f4 90 32 be eb 4e 68" | ||
139 | "25 72 70 b1 70 6f c6 1f" | ||
140 | "d4 a4 c9 95 6c 64 f5 9e" | ||
141 | "81 d0 2b 6a 30 f5 8a 48" | ||
142 | "23 58 a1 2a ec 3d 0f 2d"}, | ||
143 | { .d = | ||
144 | "5a f7 02 0e e1 91 60 32" | ||
145 | "88 32 35 2b bc 6a 68 a8" | ||
146 | "d7 1a 7c be 1b 92 99 69" | ||
147 | "a7 c6 6d 41 5a 0d 8f 65", | ||
148 | .zid = | ||
149 | "00 01 00 14 3c f4 b9 24" | ||
150 | "03 20 22 f0 dc 50 58 14" | ||
151 | "53 b8 5d 93 b0 47 b6 3d" | ||
152 | "44 6c 58 45 cb 48 44 5d" | ||
153 | "db 96 68 8f", | ||
154 | .label = | ||
155 | "74 65 73 74 64 65 6c 65" | ||
156 | "67 61 74 69 6f 6e", | ||
157 | .q = | ||
158 | "ab aa ba c0 e1 24 94 59" | ||
159 | "75 98 83 95 aa c0 24 1e" | ||
160 | "55 59 c4 1c 40 74 e2 55" | ||
161 | "7b 9f e6 d1 54 b6 14 fb" | ||
162 | "cd d4 7f c7 f5 1d 78 6d" | ||
163 | "c2 e0 b1 ec e7 60 37 c0" | ||
164 | "a1 57 8c 38 4e c6 1d 44" | ||
165 | "56 36 a9 4e 88 03 29 e9", | ||
166 | .rdata = | ||
167 | "00 1c ee 8b 3a 4e b5 80" | ||
168 | "00 20 00 01 00 01 00 00" | ||
169 | "21 e3 b3 0f f9 3b c6 d3" | ||
170 | "5a c8 c6 e0 e1 3a fd ff" | ||
171 | "79 4c b7 b4 4b bb c7 48" | ||
172 | "d2 59 d0 a0 28 4d be 84", | ||
173 | .rrblock = | ||
174 | "00 00 00 b0 00 01 00 14" | ||
175 | "9b f2 33 19 8c 6d 53 bb" | ||
176 | "db ac 49 5c ab d9 10 49" | ||
177 | "a6 84 af 3f 40 51 ba ca" | ||
178 | "b0 dc f2 1c 8c f2 7a 1a" | ||
179 | "f4 27 a9 98 be 90 91 f3" | ||
180 | "bd 44 19 c2 86 06 81 fa" | ||
181 | "0f c8 46 5c 35 e2 10 91" | ||
182 | "f0 87 fd 8d dc a8 78 51" | ||
183 | "53 d6 d9 bd 73 4f 08 9c" | ||
184 | "26 b6 52 da ea b4 73 25" | ||
185 | "71 e5 d9 2b c9 96 3d ad" | ||
186 | "d8 be 55 31 87 26 52 00" | ||
187 | "00 1c ee 8b 3a 4e b5 80" | ||
188 | "16 c7 0f d2 9a 62 38 9e" | ||
189 | "9b 04 9a 09 31 ba ba 46" | ||
190 | "a1 73 bb 56 f6 bf 56 16" | ||
191 | "18 ba a1 69 0f ae fa 1c" | ||
192 | "c4 24 75 55 4d 47 96 98" | ||
193 | "39 8d f6 f0 42 0b 9e c2" | ||
194 | "6f b0 43 cf 1e fc 34 bd" | ||
195 | "2e a0 c6 4a 7d ef d6 ac"}, | ||
196 | { .d = | ||
197 | "5a f7 02 0e e1 91 60 32" | ||
198 | "88 32 35 2b bc 6a 68 a8" | ||
199 | "d7 1a 7c be 1b 92 99 69" | ||
200 | "a7 c6 6d 41 5a 0d 8f 65", | ||
201 | .zid = | ||
202 | "00 01 00 14 3c f4 b9 24" | ||
203 | "03 20 22 f0 dc 50 58 14" | ||
204 | "53 b8 5d 93 b0 47 b6 3d" | ||
205 | "44 6c 58 45 cb 48 44 5d" | ||
206 | "db 96 68 8f", | ||
207 | .label = | ||
208 | "e5 a4 a9 e4 b8 8b e7 84" | ||
209 | "a1 e6 95 b5", | ||
210 | .q = | ||
211 | "ba f8 21 77 ee c0 81 e0" | ||
212 | "74 a7 da 47 ff c6 48 77" | ||
213 | "58 fb 0d f0 1a 6c 7f bb" | ||
214 | "52 fc 8a 31 be f0 29 af" | ||
215 | "74 aa 0d c1 5a b8 e2 fa" | ||
216 | "7a 54 b4 f5 f6 37 f6 15" | ||
217 | "8f a7 f0 3c 3f ce be 78" | ||
218 | "d3 f9 d6 40 aa c0 d1 ed", | ||
219 | .rdata = | ||
220 | "00 1c ee 8b 3a 4e b5 80" | ||
221 | "00 10 00 00 00 00 00 1c" | ||
222 | "00 00 00 00 00 00 00 00" | ||
223 | "00 00 00 00 de ad be ef" | ||
224 | "00 3f f2 aa 54 08 db 40" | ||
225 | "00 06 00 00 00 01 00 01" | ||
226 | "e6 84 9b e7 a7 b0 00 28" | ||
227 | "bb 13 ff 37 19 40 00 0b" | ||
228 | "00 04 00 00 00 10 48 65" | ||
229 | "6c 6c 6f 20 57 6f 72 6c" | ||
230 | "64 00 00 00 00 00 00 00" | ||
231 | "00 00 00 00 00 00 00 00" | ||
232 | "00 00 00 00 00 00 00 00" | ||
233 | "00 00 00 00 00 00 00 00" | ||
234 | "00 00 00 00 00 00 00 00" | ||
235 | "00 00 00 00 00 00 00 00", | ||
236 | .rrblock = | ||
237 | "00 00 01 00 00 01 00 14" | ||
238 | "74 f9 00 68 f1 67 69 53" | ||
239 | "52 a8 a6 c2 eb 98 48 98" | ||
240 | "c5 3a cc a0 98 04 70 c6" | ||
241 | "c8 12 64 cb dd 78 ad 11" | ||
242 | "36 47 fb d2 27 cb 62 bf" | ||
243 | "bf 28 6a cb 82 fc f3 64" | ||
244 | "67 3c dd 18 a7 a7 1e b3" | ||
245 | "44 8e 71 72 35 89 a6 4a" | ||
246 | "43 59 11 fe 14 f3 26 e9" | ||
247 | "48 48 21 16 78 74 19 dd" | ||
248 | "ce f6 1a c2 2e 66 7a 0b" | ||
249 | "99 4a c4 cb 6d a5 49 05" | ||
250 | "00 1c ee 8b 3a 4e b5 80" | ||
251 | "8e 45 6d e7 7d 37 2f 82" | ||
252 | "f4 0b a0 4c 04 ca ac 4c" | ||
253 | "04 f2 8a 2b 5f 34 1d fc" | ||
254 | "73 59 8c 18 2a 9e 06 5e" | ||
255 | "e1 02 bc 7b a5 f1 cb e2" | ||
256 | "48 a3 d4 6e 56 3c 47 1d" | ||
257 | "8d 10 0b 36 40 9e 37 31" | ||
258 | "89 94 bf fd d4 c8 d0 ff" | ||
259 | "68 00 de a3 1b 81 09 b1" | ||
260 | "eb fb 21 71 f8 77 b8 6d" | ||
261 | "c2 53 1a b2 5e bb 88 62" | ||
262 | "7f 93 74 56 d9 d7 a8 75" | ||
263 | "e5 f4 98 57 da 14 1c 61" | ||
264 | "52 ae 88 d0 6e 9a 47 fb" | ||
265 | "fd f3 b5 f7 db 99 e4 47" | ||
266 | "93 4e 31 66 d1 15 bf 16" | ||
267 | "63 4e 5f 51 b8 87 fb 70" | ||
268 | "3b d4 4a 42 9b d3 32 ab"} | ||
35 | }; | 269 | }; |
36 | 270 | ||
37 | int | 271 | int |
38 | parsehex (char *src, char *dst, size_t dstlen, int invert) | 272 | parsehex (char *src, char *dst, size_t dstlen, int invert) |
39 | { | 273 | { |
40 | char *line = src; | ||
41 | char *data = line; | ||
42 | int off; | 274 | int off; |
43 | int read_byte; | 275 | int read_byte; |
44 | int data_len = 0; | 276 | int data_len = 0; |
277 | char data[strlen (src) + 1]; | ||
278 | char *pos = data; | ||
279 | int i = 0; | ||
280 | int j = 0; | ||
281 | |||
282 | for (i = 0; i < strlen (src); i++) | ||
283 | { | ||
284 | if ((src[i] == ' ') || (src[i] == '\n')) | ||
285 | continue; | ||
286 | data[j++] = src[i]; | ||
287 | } | ||
45 | 288 | ||
46 | while (sscanf (data, " %02x%n", &read_byte, &off) == 1) | 289 | while (sscanf (pos, " %02x%n", &read_byte, &off) == 1) |
47 | { | 290 | { |
48 | if (invert) | 291 | if (invert) |
49 | dst[dstlen - 1 - data_len++] = read_byte; | 292 | dst[dstlen - 1 - data_len++] = read_byte; |
50 | else | 293 | else |
51 | dst[data_len++] = read_byte; | 294 | dst[data_len++] = read_byte; |
52 | data += off; | 295 | pos += off; |
53 | } | 296 | } |
54 | return data_len; | 297 | return data_len; |
55 | } | 298 | } |
@@ -60,8 +303,17 @@ res_checker (void *cls, | |||
60 | unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd) | 303 | unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd) |
61 | { | 304 | { |
62 | struct GnsTv *tv = cls; | 305 | struct GnsTv *tv = cls; |
63 | GNUNET_assert (rd_count == tv->rrcount); | 306 | GNUNET_assert (rd_count == tv->expected_rd_count); |
64 | printf ("RRCOUNT good: %d\n", rd_count); | 307 | printf ("RRCOUNT good: %d\n", rd_count); |
308 | for (int i = 0; i < rd_count; i++) | ||
309 | { | ||
310 | GNUNET_assert (rd[i].record_type == tv->expected_rd[i].record_type); | ||
311 | GNUNET_assert (rd[i].expiration_time == tv->expected_rd[i].expiration_time); | ||
312 | GNUNET_assert (rd[i].flags == tv->expected_rd[i].flags); | ||
313 | GNUNET_assert (rd[i].data_size == tv->expected_rd[i].data_size); | ||
314 | GNUNET_assert (0 == memcmp (rd[i].data, tv->expected_rd[i].data, | ||
315 | rd[i].data_size)); | ||
316 | } | ||
65 | } | 317 | } |
66 | 318 | ||
67 | 319 | ||
@@ -72,8 +324,8 @@ main () | |||
72 | struct GNUNET_IDENTITY_PublicKey pub; | 324 | struct GNUNET_IDENTITY_PublicKey pub; |
73 | struct GNUNET_IDENTITY_PublicKey pub_parsed; | 325 | struct GNUNET_IDENTITY_PublicKey pub_parsed; |
74 | struct GNUNET_GNSRECORD_Block *rrblock; | 326 | struct GNUNET_GNSRECORD_Block *rrblock; |
75 | char *bdata; | ||
76 | char label[128]; | 327 | char label[128]; |
328 | char rdata[8096]; | ||
77 | 329 | ||
78 | for (int i = 0; i < TVCOUNT; i++) | 330 | for (int i = 0; i < TVCOUNT; i++) |
79 | { | 331 | { |
@@ -88,6 +340,17 @@ main () | |||
88 | parsehex (tvs[i].rrblock, (char*) rrblock, 0, 0); | 340 | parsehex (tvs[i].rrblock, (char*) rrblock, 0, 0); |
89 | parsehex (tvs[i].label, (char*) label, 0, 0); | 341 | parsehex (tvs[i].label, (char*) label, 0, 0); |
90 | printf ("Got label: %s\n", label); | 342 | printf ("Got label: %s\n", label); |
343 | int len = parsehex (tvs[i].rdata, (char*) rdata, 0, 0); | ||
344 | tvs[i].expected_rd_count = GNUNET_GNSRECORD_records_deserialize_get_size ( | ||
345 | len, | ||
346 | rdata); | ||
347 | GNUNET_assert (tvs[i].expected_rd_count < 2048); | ||
348 | GNUNET_assert (GNUNET_OK == | ||
349 | GNUNET_GNSRECORD_records_deserialize (len, | ||
350 | rdata, | ||
351 | tvs[i]. | ||
352 | expected_rd_count, | ||
353 | tvs[i].expected_rd)); | ||
91 | GNUNET_GNSRECORD_block_decrypt (rrblock, | 354 | GNUNET_GNSRECORD_block_decrypt (rrblock, |
92 | &pub_parsed, | 355 | &pub_parsed, |
93 | label, | 356 | label, |