diff options
m--------- | contrib/gana | 0 | ||||
-rw-r--r-- | po/POTFILES.in | 100 | ||||
-rw-r--r-- | src/gnsrecord/gnsrecord_crypto.c | 39 | ||||
-rw-r--r-- | src/include/gnunet_crypto_lib.h | 46 | ||||
-rw-r--r-- | src/include/gnunet_namestore_plugin.h | 65 | ||||
-rw-r--r-- | src/util/crypto_ecc_gnsrecord.c | 55 | ||||
-rw-r--r-- | src/util/test_crypto_eddsa.c | 8 |
7 files changed, 206 insertions, 107 deletions
diff --git a/contrib/gana b/contrib/gana | |||
Subproject 0958add542378a6ca9c411e2dc19527834e9f64 | Subproject e12bcee063df61ed4b9acbe819443672364eb4d | ||
diff --git a/po/POTFILES.in b/po/POTFILES.in index 64df0a13b..5c1152e7c 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in | |||
@@ -10,13 +10,14 @@ src/arm/arm_monitor_api.c | |||
10 | src/arm/gnunet-arm.c | 10 | src/arm/gnunet-arm.c |
11 | src/arm/gnunet-service-arm.c | 11 | src/arm/gnunet-service-arm.c |
12 | src/arm/mockup-service.c | 12 | src/arm/mockup-service.c |
13 | src/ats-tool/gnunet-ats.c | ||
13 | src/ats/ats_api_connectivity.c | 14 | src/ats/ats_api_connectivity.c |
14 | src/ats/ats_api_performance.c | 15 | src/ats/ats_api_performance.c |
15 | src/ats/ats_api_scanner.c | 16 | src/ats/ats_api_scanner.c |
16 | src/ats/ats_api_scheduling.c | 17 | src/ats/ats_api_scheduling.c |
17 | src/ats/gnunet-ats-solver-eval.c | 18 | src/ats/gnunet-ats-solver-eval.c |
18 | src/ats/gnunet-service-ats_addresses.c | ||
19 | src/ats/gnunet-service-ats.c | 19 | src/ats/gnunet-service-ats.c |
20 | src/ats/gnunet-service-ats_addresses.c | ||
20 | src/ats/gnunet-service-ats_connectivity.c | 21 | src/ats/gnunet-service-ats_connectivity.c |
21 | src/ats/gnunet-service-ats_normalization.c | 22 | src/ats/gnunet-service-ats_normalization.c |
22 | src/ats/gnunet-service-ats_performance.c | 23 | src/ats/gnunet-service-ats_performance.c |
@@ -25,7 +26,6 @@ src/ats/gnunet-service-ats_preferences.c | |||
25 | src/ats/gnunet-service-ats_reservations.c | 26 | src/ats/gnunet-service-ats_reservations.c |
26 | src/ats/gnunet-service-ats_scheduling.c | 27 | src/ats/gnunet-service-ats_scheduling.c |
27 | src/ats/plugin_ats_proportional.c | 28 | src/ats/plugin_ats_proportional.c |
28 | src/ats-tool/gnunet-ats.c | ||
29 | src/auction/gnunet-auction-create.c | 29 | src/auction/gnunet-auction-create.c |
30 | src/auction/gnunet-auction-info.c | 30 | src/auction/gnunet-auction-info.c |
31 | src/auction/gnunet-auction-join.c | 31 | src/auction/gnunet-auction-join.c |
@@ -43,8 +43,8 @@ src/cadet/cadet_api_list_peers.c | |||
43 | src/cadet/cadet_api_list_tunnels.c | 43 | src/cadet/cadet_api_list_tunnels.c |
44 | src/cadet/cadet_test_lib.c | 44 | src/cadet/cadet_test_lib.c |
45 | src/cadet/desirability_table.c | 45 | src/cadet/desirability_table.c |
46 | src/cadet/gnunet-cadet.c | ||
47 | src/cadet/gnunet-cadet-profiler.c | 46 | src/cadet/gnunet-cadet-profiler.c |
47 | src/cadet/gnunet-cadet.c | ||
48 | src/cadet/gnunet-service-cadet.c | 48 | src/cadet/gnunet-service-cadet.c |
49 | src/cadet/gnunet-service-cadet_channel.c | 49 | src/cadet/gnunet-service-cadet_channel.c |
50 | src/cadet/gnunet-service-cadet_connection.c | 50 | src/cadet/gnunet-service-cadet_connection.c |
@@ -60,15 +60,15 @@ src/consensus/gnunet-service-consensus.c | |||
60 | src/consensus/plugin_block_consensus.c | 60 | src/consensus/plugin_block_consensus.c |
61 | src/conversation/conversation_api.c | 61 | src/conversation/conversation_api.c |
62 | src/conversation/conversation_api_call.c | 62 | src/conversation/conversation_api_call.c |
63 | src/conversation/gnunet-conversation.c | ||
64 | src/conversation/gnunet-conversation-test.c | 63 | src/conversation/gnunet-conversation-test.c |
65 | src/conversation/gnunet_gst.c | 64 | src/conversation/gnunet-conversation.c |
66 | src/conversation/gnunet_gst_test.c | ||
67 | src/conversation/gnunet-helper-audio-playback.c | ||
68 | src/conversation/gnunet-helper-audio-playback-gst.c | 65 | src/conversation/gnunet-helper-audio-playback-gst.c |
69 | src/conversation/gnunet-helper-audio-record.c | 66 | src/conversation/gnunet-helper-audio-playback.c |
70 | src/conversation/gnunet-helper-audio-record-gst.c | 67 | src/conversation/gnunet-helper-audio-record-gst.c |
68 | src/conversation/gnunet-helper-audio-record.c | ||
71 | src/conversation/gnunet-service-conversation.c | 69 | src/conversation/gnunet-service-conversation.c |
70 | src/conversation/gnunet_gst.c | ||
71 | src/conversation/gnunet_gst_test.c | ||
72 | src/conversation/microphone.c | 72 | src/conversation/microphone.c |
73 | src/conversation/plugin_gnsrecord_conversation.c | 73 | src/conversation/plugin_gnsrecord_conversation.c |
74 | src/conversation/speaker.c | 74 | src/conversation/speaker.c |
@@ -99,13 +99,13 @@ src/dht/dht_test_lib.c | |||
99 | src/dht/gnunet-dht-get.c | 99 | src/dht/gnunet-dht-get.c |
100 | src/dht/gnunet-dht-hello.c | 100 | src/dht/gnunet-dht-hello.c |
101 | src/dht/gnunet-dht-monitor.c | 101 | src/dht/gnunet-dht-monitor.c |
102 | src/dht/gnunet_dht_profiler.c | ||
103 | src/dht/gnunet-dht-put.c | 102 | src/dht/gnunet-dht-put.c |
104 | src/dht/gnunet-service-dht.c | 103 | src/dht/gnunet-service-dht.c |
105 | src/dht/gnunet-service-dht_clients.c | 104 | src/dht/gnunet-service-dht_clients.c |
106 | src/dht/gnunet-service-dht_datacache.c | 105 | src/dht/gnunet-service-dht_datacache.c |
107 | src/dht/gnunet-service-dht_neighbours.c | 106 | src/dht/gnunet-service-dht_neighbours.c |
108 | src/dht/gnunet-service-dht_routing.c | 107 | src/dht/gnunet-service-dht_routing.c |
108 | src/dht/gnunet_dht_profiler.c | ||
109 | src/dht/plugin_block_dht.c | 109 | src/dht/plugin_block_dht.c |
110 | src/dhtu/plugin_dhtu_gnunet.c | 110 | src/dhtu/plugin_dhtu_gnunet.c |
111 | src/dhtu/plugin_dhtu_ip.c | 111 | src/dhtu/plugin_dhtu_ip.c |
@@ -143,8 +143,8 @@ src/fs/gnunet-auto-share.c | |||
143 | src/fs/gnunet-daemon-fsprofiler.c | 143 | src/fs/gnunet-daemon-fsprofiler.c |
144 | src/fs/gnunet-directory.c | 144 | src/fs/gnunet-directory.c |
145 | src/fs/gnunet-download.c | 145 | src/fs/gnunet-download.c |
146 | src/fs/gnunet-fs.c | ||
147 | src/fs/gnunet-fs-profiler.c | 146 | src/fs/gnunet-fs-profiler.c |
147 | src/fs/gnunet-fs.c | ||
148 | src/fs/gnunet-helper-fs-publish.c | 148 | src/fs/gnunet-helper-fs-publish.c |
149 | src/fs/gnunet-publish.c | 149 | src/fs/gnunet-publish.c |
150 | src/fs/gnunet-search.c | 150 | src/fs/gnunet-search.c |
@@ -164,9 +164,9 @@ src/gns/gns_tld_api.c | |||
164 | src/gns/gnunet-bcd.c | 164 | src/gns/gnunet-bcd.c |
165 | src/gns/gnunet-dns2gns.c | 165 | src/gns/gnunet-dns2gns.c |
166 | src/gns/gnunet-gns-benchmark.c | 166 | src/gns/gnunet-gns-benchmark.c |
167 | src/gns/gnunet-gns.c | ||
168 | src/gns/gnunet-gns-import.c | 167 | src/gns/gnunet-gns-import.c |
169 | src/gns/gnunet-gns-proxy.c | 168 | src/gns/gnunet-gns-proxy.c |
169 | src/gns/gnunet-gns.c | ||
170 | src/gns/gnunet-service-gns.c | 170 | src/gns/gnunet-service-gns.c |
171 | src/gns/gnunet-service-gns_interceptor.c | 171 | src/gns/gnunet-service-gns_interceptor.c |
172 | src/gns/gnunet-service-gns_resolver.c | 172 | src/gns/gnunet-service-gns_resolver.c |
@@ -184,9 +184,9 @@ src/gnsrecord/json_gnsrecord.c | |||
184 | src/gnsrecord/plugin_gnsrecord_dns.c | 184 | src/gnsrecord/plugin_gnsrecord_dns.c |
185 | src/hello/address.c | 185 | src/hello/address.c |
186 | src/hello/gnunet-hello.c | 186 | src/hello/gnunet-hello.c |
187 | src/hello/hello.c | ||
188 | src/hello/hello-ng.c | 187 | src/hello/hello-ng.c |
189 | src/hello/hello-uri.c | 188 | src/hello/hello-uri.c |
189 | src/hello/hello.c | ||
190 | src/hostlist/gnunet-daemon-hostlist.c | 190 | src/hostlist/gnunet-daemon-hostlist.c |
191 | src/hostlist/gnunet-daemon-hostlist_client.c | 191 | src/hostlist/gnunet-daemon-hostlist_client.c |
192 | src/hostlist/gnunet-daemon-hostlist_server.c | 192 | src/hostlist/gnunet-daemon-hostlist_server.c |
@@ -202,8 +202,8 @@ src/json/json_helper.c | |||
202 | src/json/json_mhd.c | 202 | src/json/json_mhd.c |
203 | src/json/json_pack.c | 203 | src/json/json_pack.c |
204 | src/messenger/gnunet-messenger.c | 204 | src/messenger/gnunet-messenger.c |
205 | src/messenger/gnunet-service-messenger_basement.c | ||
206 | src/messenger/gnunet-service-messenger.c | 205 | src/messenger/gnunet-service-messenger.c |
206 | src/messenger/gnunet-service-messenger_basement.c | ||
207 | src/messenger/gnunet-service-messenger_ego_store.c | 207 | src/messenger/gnunet-service-messenger_ego_store.c |
208 | src/messenger/gnunet-service-messenger_handle.c | 208 | src/messenger/gnunet-service-messenger_handle.c |
209 | src/messenger/gnunet-service-messenger_list_handles.c | 209 | src/messenger/gnunet-service-messenger_list_handles.c |
@@ -243,8 +243,8 @@ src/namecache/namecache_api.c | |||
243 | src/namecache/plugin_namecache_flat.c | 243 | src/namecache/plugin_namecache_flat.c |
244 | src/namecache/plugin_namecache_postgres.c | 244 | src/namecache/plugin_namecache_postgres.c |
245 | src/namecache/plugin_namecache_sqlite.c | 245 | src/namecache/plugin_namecache_sqlite.c |
246 | src/namestore/gnunet-namestore.c | ||
247 | src/namestore/gnunet-namestore-fcfsd.c | 246 | src/namestore/gnunet-namestore-fcfsd.c |
247 | src/namestore/gnunet-namestore.c | ||
248 | src/namestore/gnunet-service-namestore.c | 248 | src/namestore/gnunet-service-namestore.c |
249 | src/namestore/gnunet-zoneimport.c | 249 | src/namestore/gnunet-zoneimport.c |
250 | src/namestore/namestore_api.c | 250 | src/namestore/namestore_api.c |
@@ -270,17 +270,17 @@ src/nat/gnunet-service-nat_mini.c | |||
270 | src/nat/gnunet-service-nat_stun.c | 270 | src/nat/gnunet-service-nat_stun.c |
271 | src/nat/nat_api.c | 271 | src/nat/nat_api.c |
272 | src/nat/nat_api_stun.c | 272 | src/nat/nat_api_stun.c |
273 | src/nse/gnunet-nse.c | ||
274 | src/nse/gnunet-nse-profiler.c | 273 | src/nse/gnunet-nse-profiler.c |
274 | src/nse/gnunet-nse.c | ||
275 | src/nse/gnunet-service-nse.c | 275 | src/nse/gnunet-service-nse.c |
276 | src/nse/nse_api.c | 276 | src/nse/nse_api.c |
277 | src/nt/nt.c | 277 | src/nt/nt.c |
278 | src/peerinfo/gnunet-service-peerinfo.c | ||
279 | src/peerinfo/peerinfo_api.c | ||
280 | src/peerinfo/peerinfo_api_notify.c | ||
281 | src/peerinfo-tool/gnunet-peerinfo.c | 278 | src/peerinfo-tool/gnunet-peerinfo.c |
282 | src/peerinfo-tool/gnunet-peerinfo_plugins.c | 279 | src/peerinfo-tool/gnunet-peerinfo_plugins.c |
283 | src/peerinfo-tool/plugin_rest_peerinfo.c | 280 | src/peerinfo-tool/plugin_rest_peerinfo.c |
281 | src/peerinfo/gnunet-service-peerinfo.c | ||
282 | src/peerinfo/peerinfo_api.c | ||
283 | src/peerinfo/peerinfo_api_notify.c | ||
284 | src/peerstore/gnunet-peerstore.c | 284 | src/peerstore/gnunet-peerstore.c |
285 | src/peerstore/gnunet-service-peerstore.c | 285 | src/peerstore/gnunet-service-peerstore.c |
286 | src/peerstore/peerstore_api.c | 286 | src/peerstore/peerstore_api.c |
@@ -332,27 +332,27 @@ src/rest/gnunet-rest-server.c | |||
332 | src/rest/plugin_rest_config.c | 332 | src/rest/plugin_rest_config.c |
333 | src/rest/plugin_rest_copying.c | 333 | src/rest/plugin_rest_copying.c |
334 | src/rest/rest.c | 334 | src/rest/rest.c |
335 | src/revocation/gnunet-revocation.c | ||
336 | src/revocation/gnunet-revocation-tvg.c | 335 | src/revocation/gnunet-revocation-tvg.c |
336 | src/revocation/gnunet-revocation.c | ||
337 | src/revocation/gnunet-service-revocation.c | 337 | src/revocation/gnunet-service-revocation.c |
338 | src/revocation/plugin_block_revocation.c | 338 | src/revocation/plugin_block_revocation.c |
339 | src/revocation/revocation_api.c | 339 | src/revocation/revocation_api.c |
340 | src/rps/gnunet-rps.c | ||
341 | src/rps/gnunet-rps-profiler.c | 340 | src/rps/gnunet-rps-profiler.c |
341 | src/rps/gnunet-rps.c | ||
342 | src/rps/gnunet-service-rps.c | 342 | src/rps/gnunet-service-rps.c |
343 | src/rps/gnunet-service-rps_custommap.c | 343 | src/rps/gnunet-service-rps_custommap.c |
344 | src/rps/gnunet-service-rps_sampler.c | 344 | src/rps/gnunet-service-rps_sampler.c |
345 | src/rps/gnunet-service-rps_sampler_elem.c | 345 | src/rps/gnunet-service-rps_sampler_elem.c |
346 | src/rps/gnunet-service-rps_view.c | 346 | src/rps/gnunet-service-rps_view.c |
347 | src/rps/rps_api.c | ||
348 | src/rps/rps-sampler_client.c | 347 | src/rps/rps-sampler_client.c |
349 | src/rps/rps-sampler_common.c | 348 | src/rps/rps-sampler_common.c |
350 | src/rps/rps-test_util.c | 349 | src/rps/rps-test_util.c |
350 | src/rps/rps_api.c | ||
351 | src/scalarproduct/gnunet-scalarproduct.c | 351 | src/scalarproduct/gnunet-scalarproduct.c |
352 | src/scalarproduct/gnunet-service-scalarproduct_alice.c | ||
353 | src/scalarproduct/gnunet-service-scalarproduct_bob.c | ||
354 | src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c | 352 | src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c |
355 | src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c | 353 | src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c |
354 | src/scalarproduct/gnunet-service-scalarproduct_alice.c | ||
355 | src/scalarproduct/gnunet-service-scalarproduct_bob.c | ||
356 | src/scalarproduct/scalarproduct_api.c | 356 | src/scalarproduct/scalarproduct_api.c |
357 | src/secretsharing/gnunet-secretsharing-profiler.c | 357 | src/secretsharing/gnunet-secretsharing-profiler.c |
358 | src/secretsharing/gnunet-service-secretsharing.c | 358 | src/secretsharing/gnunet-service-secretsharing.c |
@@ -366,12 +366,12 @@ src/set/gnunet-set-ibf-profiler.c | |||
366 | src/set/gnunet-set-profiler.c | 366 | src/set/gnunet-set-profiler.c |
367 | src/set/ibf.c | 367 | src/set/ibf.c |
368 | src/set/ibf_sim.c | 368 | src/set/ibf_sim.c |
369 | src/set/plugin_block_set_test.c | ||
370 | src/set/set_api.c | ||
369 | src/seti/gnunet-service-seti.c | 371 | src/seti/gnunet-service-seti.c |
370 | src/seti/gnunet-seti-profiler.c | 372 | src/seti/gnunet-seti-profiler.c |
371 | src/seti/plugin_block_seti_test.c | 373 | src/seti/plugin_block_seti_test.c |
372 | src/seti/seti_api.c | 374 | src/seti/seti_api.c |
373 | src/set/plugin_block_set_test.c | ||
374 | src/set/set_api.c | ||
375 | src/setu/gnunet-service-setu.c | 375 | src/setu/gnunet-service-setu.c |
376 | src/setu/gnunet-service-setu_strata_estimator.c | 376 | src/setu/gnunet-service-setu_strata_estimator.c |
377 | src/setu/gnunet-setu-ibf-profiler.c | 377 | src/setu/gnunet-setu-ibf-profiler.c |
@@ -390,15 +390,16 @@ src/statistics/gnunet-statistics.c | |||
390 | src/statistics/statistics_api.c | 390 | src/statistics/statistics_api.c |
391 | src/template/gnunet-service-template.c | 391 | src/template/gnunet-service-template.c |
392 | src/template/gnunet-template.c | 392 | src/template/gnunet-template.c |
393 | src/testbed-logger/gnunet-service-testbed-logger.c | ||
394 | src/testbed-logger/testbed_logger_api.c | ||
393 | src/testbed/generate-underlay-topology.c | 395 | src/testbed/generate-underlay-topology.c |
394 | src/testbed/gnunet-daemon-latency-logger.c | 396 | src/testbed/gnunet-daemon-latency-logger.c |
395 | src/testbed/gnunet-daemon-testbed-blacklist.c | 397 | src/testbed/gnunet-daemon-testbed-blacklist.c |
396 | src/testbed/gnunet-daemon-testbed-underlay.c | 398 | src/testbed/gnunet-daemon-testbed-underlay.c |
397 | src/testbed/gnunet-helper-testbed.c | 399 | src/testbed/gnunet-helper-testbed.c |
398 | src/testbed/gnunet_mpi_test.c | ||
399 | src/testbed/gnunet-service-test-barriers.c | 400 | src/testbed/gnunet-service-test-barriers.c |
400 | src/testbed/gnunet-service-testbed_barriers.c | ||
401 | src/testbed/gnunet-service-testbed.c | 401 | src/testbed/gnunet-service-testbed.c |
402 | src/testbed/gnunet-service-testbed_barriers.c | ||
402 | src/testbed/gnunet-service-testbed_cache.c | 403 | src/testbed/gnunet-service-testbed_cache.c |
403 | src/testbed/gnunet-service-testbed_connectionpool.c | 404 | src/testbed/gnunet-service-testbed_connectionpool.c |
404 | src/testbed/gnunet-service-testbed_cpustatus.c | 405 | src/testbed/gnunet-service-testbed_cpustatus.c |
@@ -407,23 +408,23 @@ src/testbed/gnunet-service-testbed_meminfo.c | |||
407 | src/testbed/gnunet-service-testbed_oc.c | 408 | src/testbed/gnunet-service-testbed_oc.c |
408 | src/testbed/gnunet-service-testbed_peers.c | 409 | src/testbed/gnunet-service-testbed_peers.c |
409 | src/testbed/gnunet-testbed-profiler.c | 410 | src/testbed/gnunet-testbed-profiler.c |
410 | src/testbed-logger/gnunet-service-testbed-logger.c | 411 | src/testbed/gnunet_mpi_test.c |
411 | src/testbed-logger/testbed_logger_api.c | ||
412 | src/testbed/testbed_api_barriers.c | ||
413 | src/testbed/testbed_api.c | 412 | src/testbed/testbed_api.c |
413 | src/testbed/testbed_api_barriers.c | ||
414 | src/testbed/testbed_api_hosts.c | 414 | src/testbed/testbed_api_hosts.c |
415 | src/testbed/testbed_api_operations.c | 415 | src/testbed/testbed_api_operations.c |
416 | src/testbed/testbed_api_peers.c | 416 | src/testbed/testbed_api_peers.c |
417 | src/testbed/testbed_api_sd.c | 417 | src/testbed/testbed_api_sd.c |
418 | src/testbed/testbed_api_services.c | 418 | src/testbed/testbed_api_services.c |
419 | src/testbed/testbed_api_statistics.c | 419 | src/testbed/testbed_api_statistics.c |
420 | src/testbed/testbed_api_testbed.c | ||
421 | src/testbed/testbed_api_test.c | 420 | src/testbed/testbed_api_test.c |
421 | src/testbed/testbed_api_testbed.c | ||
422 | src/testbed/testbed_api_topology.c | 422 | src/testbed/testbed_api_topology.c |
423 | src/testbed/testbed_api_underlay.c | 423 | src/testbed/testbed_api_underlay.c |
424 | src/testing/gnunet-cmds-helper.c | 424 | src/testing/gnunet-cmds-helper.c |
425 | src/testing/gnunet-testing.c | 425 | src/testing/gnunet-testing.c |
426 | src/testing/list-keys.c | 426 | src/testing/list-keys.c |
427 | src/testing/testing.c | ||
427 | src/testing/testing_api_cmd_batch.c | 428 | src/testing/testing_api_cmd_batch.c |
428 | src/testing/testing_api_cmd_block_until_external_trigger.c | 429 | src/testing/testing_api_cmd_block_until_external_trigger.c |
429 | src/testing/testing_api_cmd_end.c | 430 | src/testing/testing_api_cmd_end.c |
@@ -439,41 +440,51 @@ src/testing/testing_api_cmd_system_create.c | |||
439 | src/testing/testing_api_cmd_system_destroy.c | 440 | src/testing/testing_api_cmd_system_destroy.c |
440 | src/testing/testing_api_loop.c | 441 | src/testing/testing_api_loop.c |
441 | src/testing/testing_api_traits.c | 442 | src/testing/testing_api_traits.c |
442 | src/testing/testing.c | ||
443 | src/topology/friends.c | 443 | src/topology/friends.c |
444 | src/topology/gnunet-daemon-topology.c | 444 | src/topology/gnunet-daemon-topology.c |
445 | src/transport/gnunet-communicator-tcp.c | 445 | src/transport/gnunet-communicator-tcp.c |
446 | src/transport/gnunet-communicator-udp.c | 446 | src/transport/gnunet-communicator-udp.c |
447 | src/transport/gnunet-communicator-unix.c | 447 | src/transport/gnunet-communicator-unix.c |
448 | src/transport/gnunet-helper-transport-bluetooth.c | 448 | src/transport/gnunet-helper-transport-bluetooth.c |
449 | src/transport/gnunet-helper-transport-wlan.c | ||
450 | src/transport/gnunet-helper-transport-wlan-dummy.c | 449 | src/transport/gnunet-helper-transport-wlan-dummy.c |
450 | src/transport/gnunet-helper-transport-wlan.c | ||
451 | src/transport/gnunet-service-tng.c | 451 | src/transport/gnunet-service-tng.c |
452 | src/transport/gnunet-service-transport_ats.c | ||
453 | src/transport/gnunet-service-transport.c | 452 | src/transport/gnunet-service-transport.c |
453 | src/transport/gnunet-service-transport_ats.c | ||
454 | src/transport/gnunet-service-transport_hello.c | 454 | src/transport/gnunet-service-transport_hello.c |
455 | src/transport/gnunet-service-transport_manipulation.c | 455 | src/transport/gnunet-service-transport_manipulation.c |
456 | src/transport/gnunet-service-transport_neighbours.c | 456 | src/transport/gnunet-service-transport_neighbours.c |
457 | src/transport/gnunet-service-transport_plugins.c | 457 | src/transport/gnunet-service-transport_plugins.c |
458 | src/transport/gnunet-service-transport_validation.c | 458 | src/transport/gnunet-service-transport_validation.c |
459 | src/transport/gnunet-transport.c | ||
460 | src/transport/gnunet-transport-profiler.c | 459 | src/transport/gnunet-transport-profiler.c |
461 | src/transport/gnunet-transport-wlan-receiver.c | 460 | src/transport/gnunet-transport-wlan-receiver.c |
462 | src/transport/gnunet-transport-wlan-sender.c | 461 | src/transport/gnunet-transport-wlan-sender.c |
462 | src/transport/gnunet-transport.c | ||
463 | src/transport/plugin_transport_http_client.c | 463 | src/transport/plugin_transport_http_client.c |
464 | src/transport/plugin_transport_http_common.c | 464 | src/transport/plugin_transport_http_common.c |
465 | src/transport/plugin_transport_http_server.c | 465 | src/transport/plugin_transport_http_server.c |
466 | src/transport/plugin_transport_smtp.c | 466 | src/transport/plugin_transport_smtp.c |
467 | src/transport/plugin_transport_tcp.c | 467 | src/transport/plugin_transport_tcp.c |
468 | src/transport/plugin_transport_template.c | 468 | src/transport/plugin_transport_template.c |
469 | src/transport/plugin_transport_udp_broadcasting.c | ||
470 | src/transport/plugin_transport_udp.c | 469 | src/transport/plugin_transport_udp.c |
470 | src/transport/plugin_transport_udp_broadcasting.c | ||
471 | src/transport/plugin_transport_unix.c | 471 | src/transport/plugin_transport_unix.c |
472 | src/transport/plugin_transport_wlan.c | 472 | src/transport/plugin_transport_wlan.c |
473 | src/transport/tcp_connection_legacy.c | 473 | src/transport/tcp_connection_legacy.c |
474 | src/transport/tcp_server_legacy.c | 474 | src/transport/tcp_server_legacy.c |
475 | src/transport/tcp_server_mst_legacy.c | 475 | src/transport/tcp_server_mst_legacy.c |
476 | src/transport/tcp_service_legacy.c | 476 | src/transport/tcp_service_legacy.c |
477 | src/transport/transport-testing-communicator.c | ||
478 | src/transport/transport-testing-filenames.c | ||
479 | src/transport/transport-testing-filenames2.c | ||
480 | src/transport/transport-testing-loggers.c | ||
481 | src/transport/transport-testing-loggers2.c | ||
482 | src/transport/transport-testing-main.c | ||
483 | src/transport/transport-testing-main2.c | ||
484 | src/transport/transport-testing-send.c | ||
485 | src/transport/transport-testing-send2.c | ||
486 | src/transport/transport-testing.c | ||
487 | src/transport/transport-testing2.c | ||
477 | src/transport/transport_api2_application.c | 488 | src/transport/transport_api2_application.c |
478 | src/transport/transport_api2_communication.c | 489 | src/transport/transport_api2_communication.c |
479 | src/transport/transport_api2_core.c | 490 | src/transport/transport_api2_core.c |
@@ -492,17 +503,6 @@ src/transport/transport_api_monitor_peers.c | |||
492 | src/transport/transport_api_monitor_plugins.c | 503 | src/transport/transport_api_monitor_plugins.c |
493 | src/transport/transport_api_offer_hello.c | 504 | src/transport/transport_api_offer_hello.c |
494 | src/transport/transport_api_traits.c | 505 | src/transport/transport_api_traits.c |
495 | src/transport/transport-testing2.c | ||
496 | src/transport/transport-testing.c | ||
497 | src/transport/transport-testing-communicator.c | ||
498 | src/transport/transport-testing-filenames2.c | ||
499 | src/transport/transport-testing-filenames.c | ||
500 | src/transport/transport-testing-loggers2.c | ||
501 | src/transport/transport-testing-loggers.c | ||
502 | src/transport/transport-testing-main2.c | ||
503 | src/transport/transport-testing-main.c | ||
504 | src/transport/transport-testing-send2.c | ||
505 | src/transport/transport-testing-send.c | ||
506 | src/util/bandwidth.c | 506 | src/util/bandwidth.c |
507 | src/util/benchmark.c | 507 | src/util/benchmark.c |
508 | src/util/bio.c | 508 | src/util/bio.c |
@@ -518,8 +518,8 @@ src/util/consttime_memcmp.c | |||
518 | src/util/container_bloomfilter.c | 518 | src/util/container_bloomfilter.c |
519 | src/util/container_heap.c | 519 | src/util/container_heap.c |
520 | src/util/container_meta_data.c | 520 | src/util/container_meta_data.c |
521 | src/util/container_multihashmap32.c | ||
522 | src/util/container_multihashmap.c | 521 | src/util/container_multihashmap.c |
522 | src/util/container_multihashmap32.c | ||
523 | src/util/container_multipeermap.c | 523 | src/util/container_multipeermap.c |
524 | src/util/container_multishortmap.c | 524 | src/util/container_multishortmap.c |
525 | src/util/container_multiuuidmap.c | 525 | src/util/container_multiuuidmap.c |
@@ -546,8 +546,8 @@ src/util/dnsstub.c | |||
546 | src/util/getopt.c | 546 | src/util/getopt.c |
547 | src/util/getopt_helpers.c | 547 | src/util/getopt_helpers.c |
548 | src/util/gnunet-base32.c | 548 | src/util/gnunet-base32.c |
549 | src/util/gnunet-config.c | ||
550 | src/util/gnunet-config-diff.c | 549 | src/util/gnunet-config-diff.c |
550 | src/util/gnunet-config.c | ||
551 | src/util/gnunet-crypto-tvg.c | 551 | src/util/gnunet-crypto-tvg.c |
552 | src/util/gnunet-ecc.c | 552 | src/util/gnunet-ecc.c |
553 | src/util/gnunet-qr.c | 553 | src/util/gnunet-qr.c |
@@ -585,8 +585,8 @@ src/vpn/gnunet-helper-vpn.c | |||
585 | src/vpn/gnunet-service-vpn.c | 585 | src/vpn/gnunet-service-vpn.c |
586 | src/vpn/gnunet-vpn.c | 586 | src/vpn/gnunet-vpn.c |
587 | src/vpn/vpn_api.c | 587 | src/vpn/vpn_api.c |
588 | src/zonemaster/gnunet-service-zonemaster.c | ||
589 | src/zonemaster/gnunet-service-zonemaster-monitor.c | 588 | src/zonemaster/gnunet-service-zonemaster-monitor.c |
589 | src/zonemaster/gnunet-service-zonemaster.c | ||
590 | src/fs/fs_api.h | 590 | src/fs/fs_api.h |
591 | src/include/gnunet_json_lib.h | 591 | src/include/gnunet_json_lib.h |
592 | src/testbed/testbed_api.h | 592 | src/testbed/testbed_api.h |
diff --git a/src/gnsrecord/gnsrecord_crypto.c b/src/gnsrecord/gnsrecord_crypto.c index ff92911de..b5e8be82b 100644 --- a/src/gnsrecord/gnsrecord_crypto.c +++ b/src/gnsrecord/gnsrecord_crypto.c | |||
@@ -219,7 +219,6 @@ block_create_ecdsa (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, | |||
219 | rd); | 219 | rd); |
220 | struct GNUNET_GNSRECORD_EcdsaBlock *ecblock; | 220 | struct GNUNET_GNSRECORD_EcdsaBlock *ecblock; |
221 | struct GNRBlockPS *gnr_block; | 221 | struct GNRBlockPS *gnr_block; |
222 | struct GNUNET_CRYPTO_EcdsaPrivateKey *dkey; | ||
223 | unsigned char ctr[GNUNET_CRYPTO_AES_KEY_LENGTH / 2]; | 222 | unsigned char ctr[GNUNET_CRYPTO_AES_KEY_LENGTH / 2]; |
224 | unsigned char skey[GNUNET_CRYPTO_AES_KEY_LENGTH]; | 223 | unsigned char skey[GNUNET_CRYPTO_AES_KEY_LENGTH]; |
225 | struct GNUNET_GNSRECORD_Data rdc[GNUNET_NZL (rd_count)]; | 224 | struct GNUNET_GNSRECORD_Data rdc[GNUNET_NZL (rd_count)]; |
@@ -270,11 +269,10 @@ block_create_ecdsa (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, | |||
270 | gnr_block->expiration_time = GNUNET_TIME_absolute_hton (expire); | 269 | gnr_block->expiration_time = GNUNET_TIME_absolute_hton (expire); |
271 | ecblock->expiration_time = gnr_block->expiration_time; | 270 | ecblock->expiration_time = gnr_block->expiration_time; |
272 | /* encrypt and sign */ | 271 | /* encrypt and sign */ |
273 | dkey = GNUNET_CRYPTO_ecdsa_private_key_derive (key, | 272 | GNUNET_CRYPTO_ecdsa_public_key_derive (pkey, |
274 | label, | 273 | label, |
275 | "gns"); | 274 | "gns", |
276 | GNUNET_CRYPTO_ecdsa_key_get_public (dkey, | 275 | &ecblock->derived_key); |
277 | &ecblock->derived_key); | ||
278 | GNR_derive_block_aes_key (ctr, | 276 | GNR_derive_block_aes_key (ctr, |
279 | skey, | 277 | skey, |
280 | label, | 278 | label, |
@@ -289,18 +287,18 @@ block_create_ecdsa (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, | |||
289 | GNUNET_memcpy (&gnr_block[1], &ecblock[1], payload_len); | 287 | GNUNET_memcpy (&gnr_block[1], &ecblock[1], payload_len); |
290 | } | 288 | } |
291 | if (GNUNET_OK != | 289 | if (GNUNET_OK != |
292 | GNUNET_CRYPTO_ecdsa_sign_ (dkey, | 290 | GNUNET_CRYPTO_ecdsa_sign_derived (key, |
293 | &gnr_block->purpose, | 291 | label, |
294 | &ecblock->signature)) | 292 | "gns", |
293 | &gnr_block->purpose, | ||
294 | &ecblock->signature)) | ||
295 | { | 295 | { |
296 | GNUNET_break (0); | 296 | GNUNET_break (0); |
297 | GNUNET_free (*block); | 297 | GNUNET_free (*block); |
298 | GNUNET_free (dkey); | ||
299 | GNUNET_free (gnr_block); | 298 | GNUNET_free (gnr_block); |
300 | return GNUNET_SYSERR; | 299 | return GNUNET_SYSERR; |
301 | } | 300 | } |
302 | GNUNET_free (gnr_block); | 301 | GNUNET_free (gnr_block); |
303 | GNUNET_free (dkey); | ||
304 | return GNUNET_OK; | 302 | return GNUNET_OK; |
305 | } | 303 | } |
306 | 304 | ||
@@ -344,7 +342,6 @@ block_create_eddsa (const struct GNUNET_CRYPTO_EddsaPrivateKey *key, | |||
344 | rd); | 342 | rd); |
345 | struct GNUNET_GNSRECORD_EddsaBlock *edblock; | 343 | struct GNUNET_GNSRECORD_EddsaBlock *edblock; |
346 | struct GNRBlockPS *gnr_block; | 344 | struct GNRBlockPS *gnr_block; |
347 | struct GNUNET_CRYPTO_EddsaPrivateScalar dkey; | ||
348 | unsigned char nonce[crypto_secretbox_NONCEBYTES]; | 345 | unsigned char nonce[crypto_secretbox_NONCEBYTES]; |
349 | unsigned char skey[crypto_secretbox_KEYBYTES]; | 346 | unsigned char skey[crypto_secretbox_KEYBYTES]; |
350 | struct GNUNET_GNSRECORD_Data rdc[GNUNET_NZL (rd_count)]; | 347 | struct GNUNET_GNSRECORD_Data rdc[GNUNET_NZL (rd_count)]; |
@@ -402,12 +399,10 @@ block_create_eddsa (const struct GNUNET_CRYPTO_EddsaPrivateKey *key, | |||
402 | gnr_block->expiration_time = GNUNET_TIME_absolute_hton (expire); | 399 | gnr_block->expiration_time = GNUNET_TIME_absolute_hton (expire); |
403 | edblock->expiration_time = gnr_block->expiration_time; | 400 | edblock->expiration_time = gnr_block->expiration_time; |
404 | /* encrypt and sign */ | 401 | /* encrypt and sign */ |
405 | GNUNET_CRYPTO_eddsa_private_key_derive (key, | 402 | GNUNET_CRYPTO_eddsa_public_key_derive (pkey, |
406 | label, | 403 | label, |
407 | "gns", | 404 | "gns", |
408 | &dkey); | 405 | &edblock->derived_key); |
409 | GNUNET_CRYPTO_eddsa_key_get_public_from_scalar (&dkey, | ||
410 | &edblock->derived_key); | ||
411 | GNR_derive_block_xsalsa_key (nonce, | 406 | GNR_derive_block_xsalsa_key (nonce, |
412 | skey, | 407 | skey, |
413 | label, | 408 | label, |
@@ -422,9 +417,11 @@ block_create_eddsa (const struct GNUNET_CRYPTO_EddsaPrivateKey *key, | |||
422 | GNUNET_memcpy (&gnr_block[1], &edblock[1], | 417 | GNUNET_memcpy (&gnr_block[1], &edblock[1], |
423 | payload_len + crypto_secretbox_MACBYTES); | 418 | payload_len + crypto_secretbox_MACBYTES); |
424 | 419 | ||
425 | GNUNET_CRYPTO_eddsa_sign_with_scalar (&dkey, | 420 | GNUNET_CRYPTO_eddsa_sign_derived (key, |
426 | &gnr_block->purpose, | 421 | label, |
427 | &edblock->signature); | 422 | "gns", |
423 | &gnr_block->purpose, | ||
424 | &edblock->signature); | ||
428 | } | 425 | } |
429 | return GNUNET_OK; | 426 | return GNUNET_OK; |
430 | } | 427 | } |
diff --git a/src/include/gnunet_crypto_lib.h b/src/include/gnunet_crypto_lib.h index 72d783148..77abab45d 100644 --- a/src/include/gnunet_crypto_lib.h +++ b/src/include/gnunet_crypto_lib.h | |||
@@ -2018,6 +2018,26 @@ GNUNET_CRYPTO_ecdsa_public_key_derive ( | |||
2018 | const char *context, | 2018 | const char *context, |
2019 | struct GNUNET_CRYPTO_EcdsaPublicKey *result); | 2019 | struct GNUNET_CRYPTO_EcdsaPublicKey *result); |
2020 | 2020 | ||
2021 | /** | ||
2022 | * This is a signature function for ECDSA which takes a | ||
2023 | * private key, derives/blinds it and signs the message. | ||
2024 | * | ||
2025 | * @param pkey original private key | ||
2026 | * @param label label to use for key deriviation | ||
2027 | * @param context additional context to use for HKDF of 'h'; | ||
2028 | * typically the name of the subsystem/application | ||
2029 | * @param purp the signature purpose | ||
2030 | * @param sig the resulting signature | ||
2031 | * @return GNUNET_OK on success | ||
2032 | */ | ||
2033 | enum GNUNET_GenericReturnValue | ||
2034 | GNUNET_CRYPTO_ecdsa_sign_derived ( | ||
2035 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *pkey, | ||
2036 | const char *label, | ||
2037 | const char *context, | ||
2038 | const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose, | ||
2039 | struct GNUNET_CRYPTO_EcdsaSignature *sig); | ||
2040 | |||
2021 | 2041 | ||
2022 | /** | 2042 | /** |
2023 | * @ingroup crypto | 2043 | * @ingroup crypto |
@@ -2063,23 +2083,23 @@ GNUNET_CRYPTO_eddsa_public_key_derive ( | |||
2063 | 2083 | ||
2064 | 2084 | ||
2065 | /** | 2085 | /** |
2066 | * This is a signature function for EdDSA which takes the | 2086 | * This is a signature function for EdDSA which takes a |
2067 | * secret scalar sk instead of the private seed which is | 2087 | * private key and derives it using the label and context |
2068 | * usually the case for crypto APIs. We require this functionality | 2088 | * before signing. |
2069 | * in order to use derived private keys for signatures we | ||
2070 | * cannot calculate the inverse of a sk to find the seed | ||
2071 | * efficiently. | ||
2072 | * | 2089 | * |
2073 | * The resulting signature is a standard EdDSA signature | 2090 | * @param pkey original private key |
2074 | * which can be verified using the usual APIs. | 2091 | * @param label label to use for key deriviation |
2075 | * | 2092 | * @param context additional context to use for HKDF of 'h'; |
2076 | * @param sk the secret scalar | 2093 | * typically the name of the subsystem/application |
2077 | * @param purp the signature purpose | 2094 | * @param purp the signature purpose |
2078 | * @param sig the resulting signature | 2095 | * @param sig the resulting signature |
2096 | * @return GNUNET_OK on success | ||
2079 | */ | 2097 | */ |
2080 | void | 2098 | enum GNUNET_GenericReturnValue |
2081 | GNUNET_CRYPTO_eddsa_sign_with_scalar ( | 2099 | GNUNET_CRYPTO_eddsa_sign_derived ( |
2082 | const struct GNUNET_CRYPTO_EddsaPrivateScalar *priv, | 2100 | const struct GNUNET_CRYPTO_EddsaPrivateKey *pkey, |
2101 | const char *label, | ||
2102 | const char *context, | ||
2083 | const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose, | 2103 | const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose, |
2084 | struct GNUNET_CRYPTO_EddsaSignature *sig); | 2104 | struct GNUNET_CRYPTO_EddsaSignature *sig); |
2085 | 2105 | ||
diff --git a/src/include/gnunet_namestore_plugin.h b/src/include/gnunet_namestore_plugin.h index 9cc8abc6e..3dca5a853 100644 --- a/src/include/gnunet_namestore_plugin.h +++ b/src/include/gnunet_namestore_plugin.h | |||
@@ -150,6 +150,71 @@ struct GNUNET_NAMESTORE_PluginFunctions | |||
150 | const struct GNUNET_IDENTITY_PublicKey *value_zone, | 150 | const struct GNUNET_IDENTITY_PublicKey *value_zone, |
151 | GNUNET_NAMESTORE_RecordIterator iter, | 151 | GNUNET_NAMESTORE_RecordIterator iter, |
152 | void *iter_cls); | 152 | void *iter_cls); |
153 | |||
154 | /** Transaction-based API draft **/ | ||
155 | |||
156 | /** | ||
157 | * Start a transaction in the database | ||
158 | * | ||
159 | * @param cls closure (internal context for the plugin) | ||
160 | * @return #GNUNET_OK on success, #GNUNET_NO if there were no results, #GNUNET_SYSERR on error | ||
161 | */ | ||
162 | enum GNUNET_GenericReturnValue | ||
163 | (*transaction_begin) (void *cls); | ||
164 | |||
165 | /** | ||
166 | * Abort a transaction in the database | ||
167 | * | ||
168 | * @param cls closure (internal context for the plugin) | ||
169 | * @return #GNUNET_OK on success, #GNUNET_NO if there were no results, #GNUNET_SYSERR on error | ||
170 | */ | ||
171 | enum GNUNET_GenericReturnValue | ||
172 | (*transaction_abort) (void *cls); | ||
173 | |||
174 | /** | ||
175 | * Commit a transaction in the database | ||
176 | * | ||
177 | * @param cls closure (internal context for the plugin) | ||
178 | * @return #GNUNET_OK on success, #GNUNET_NO if there were no results, #GNUNET_SYSERR on error | ||
179 | */ | ||
180 | enum GNUNET_GenericReturnValue | ||
181 | (*transaction_commit) (void *cls); | ||
182 | |||
183 | /** | ||
184 | * Replace a record in the datastore for which we are the authority. | ||
185 | * Removes any existing record in the same zone with the same name. | ||
186 | * | ||
187 | * @param cls closure (internal context for the plugin) | ||
188 | * @param zone private key of the zone | ||
189 | * @param label name of the record in the zone | ||
190 | * @param rd_count number of entries in @a rd array, 0 to delete all records | ||
191 | * @param rd array of records with data to store | ||
192 | * @return #GNUNET_OK on success, else #GNUNET_SYSERR | ||
193 | */ | ||
194 | int | ||
195 | (*replace_records) (void *cls, | ||
196 | const struct GNUNET_IDENTITY_PrivateKey *zone, | ||
197 | const char *label, | ||
198 | unsigned int rd_count, | ||
199 | const struct GNUNET_GNSRECORD_Data *rd); | ||
200 | |||
201 | /** | ||
202 | * Lookup records in the datastore for which we are the authority. | ||
203 | * | ||
204 | * @param cls closure (internal context for the plugin) | ||
205 | * @param zone private key of the zone | ||
206 | * @param label name of the record in the zone | ||
207 | * @param iter function to call with the result | ||
208 | * @param iter_cls closure for @a iter | ||
209 | * @return #GNUNET_OK on success, #GNUNET_NO for no results, else #GNUNET_SYSERR | ||
210 | */ | ||
211 | int | ||
212 | (*select_records) (void *cls, | ||
213 | const struct GNUNET_IDENTITY_PrivateKey *zone, | ||
214 | const char *label, | ||
215 | GNUNET_NAMESTORE_RecordIterator iter, | ||
216 | void *iter_cls); | ||
217 | |||
153 | }; | 218 | }; |
154 | 219 | ||
155 | 220 | ||
diff --git a/src/util/crypto_ecc_gnsrecord.c b/src/util/crypto_ecc_gnsrecord.c index ce41a4699..0ee0570c0 100644 --- a/src/util/crypto_ecc_gnsrecord.c +++ b/src/util/crypto_ecc_gnsrecord.c | |||
@@ -68,28 +68,15 @@ derive_h (const void *pub, | |||
68 | } | 68 | } |
69 | 69 | ||
70 | 70 | ||
71 | /** | 71 | enum GNUNET_GenericReturnValue |
72 | * This is a signature function for EdDSA which takes the | 72 | GNUNET_CRYPTO_eddsa_sign_derived ( |
73 | * secret scalar sk instead of the private seed which is | 73 | const struct GNUNET_CRYPTO_EddsaPrivateKey *pkey, |
74 | * usually the case for crypto APIs. We require this functionality | 74 | const char *label, |
75 | * in order to use derived private keys for signatures we | 75 | const char *context, |
76 | * cannot calculate the inverse of a sk to find the seed | ||
77 | * efficiently. | ||
78 | * | ||
79 | * The resulting signature is a standard EdDSA signature | ||
80 | * which can be verified using the usual APIs. | ||
81 | * | ||
82 | * @param sk the secret scalar | ||
83 | * @param purp the signature purpose | ||
84 | * @param sig the resulting signature | ||
85 | */ | ||
86 | void | ||
87 | GNUNET_CRYPTO_eddsa_sign_with_scalar ( | ||
88 | const struct GNUNET_CRYPTO_EddsaPrivateScalar *priv, | ||
89 | const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose, | 76 | const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose, |
90 | struct GNUNET_CRYPTO_EddsaSignature *sig) | 77 | struct GNUNET_CRYPTO_EddsaSignature *sig) |
91 | { | 78 | { |
92 | 79 | struct GNUNET_CRYPTO_EddsaPrivateScalar priv; | |
93 | crypto_hash_sha512_state hs; | 80 | crypto_hash_sha512_state hs; |
94 | unsigned char sk[64]; | 81 | unsigned char sk[64]; |
95 | unsigned char r[64]; | 82 | unsigned char r[64]; |
@@ -98,6 +85,14 @@ GNUNET_CRYPTO_eddsa_sign_with_scalar ( | |||
98 | unsigned char zk[32]; | 85 | unsigned char zk[32]; |
99 | unsigned char tmp[32]; | 86 | unsigned char tmp[32]; |
100 | 87 | ||
88 | /** | ||
89 | * Derive the private key | ||
90 | */ | ||
91 | GNUNET_CRYPTO_eddsa_private_key_derive (pkey, | ||
92 | label, | ||
93 | context, | ||
94 | &priv); | ||
95 | |||
101 | crypto_hash_sha512_init (&hs); | 96 | crypto_hash_sha512_init (&hs); |
102 | 97 | ||
103 | /** | 98 | /** |
@@ -108,7 +103,7 @@ GNUNET_CRYPTO_eddsa_sign_with_scalar ( | |||
108 | * sk[0..31] = h * SHA512 (d)[0..31] | 103 | * sk[0..31] = h * SHA512 (d)[0..31] |
109 | * sk[32..63] = SHA512 (d)[32..63] | 104 | * sk[32..63] = SHA512 (d)[32..63] |
110 | */ | 105 | */ |
111 | memcpy (sk, priv->s, 64); | 106 | memcpy (sk, priv.s, 64); |
112 | 107 | ||
113 | /** | 108 | /** |
114 | * Calculate the derived zone key zk' from the | 109 | * Calculate the derived zone key zk' from the |
@@ -172,8 +167,28 @@ GNUNET_CRYPTO_eddsa_sign_with_scalar ( | |||
172 | sodium_memzero (sk, sizeof (sk)); | 167 | sodium_memzero (sk, sizeof (sk)); |
173 | sodium_memzero (r, sizeof (r)); | 168 | sodium_memzero (r, sizeof (r)); |
174 | sodium_memzero (r_mod, sizeof (r_mod)); | 169 | sodium_memzero (r_mod, sizeof (r_mod)); |
170 | return GNUNET_OK; | ||
175 | } | 171 | } |
176 | 172 | ||
173 | enum GNUNET_GenericReturnValue | ||
174 | GNUNET_CRYPTO_ecdsa_sign_derived ( | ||
175 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv, | ||
176 | const char *label, | ||
177 | const char *context, | ||
178 | const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose, | ||
179 | struct GNUNET_CRYPTO_EcdsaSignature *sig) | ||
180 | { | ||
181 | struct GNUNET_CRYPTO_EcdsaPrivateKey *key; | ||
182 | enum GNUNET_GenericReturnValue res; | ||
183 | key = GNUNET_CRYPTO_ecdsa_private_key_derive (priv, | ||
184 | label, | ||
185 | context); | ||
186 | res = GNUNET_CRYPTO_ecdsa_sign_ (key, | ||
187 | purpose, | ||
188 | sig); | ||
189 | GNUNET_free (key); | ||
190 | return res; | ||
191 | } | ||
177 | 192 | ||
178 | struct GNUNET_CRYPTO_EcdsaPrivateKey * | 193 | struct GNUNET_CRYPTO_EcdsaPrivateKey * |
179 | GNUNET_CRYPTO_ecdsa_private_key_derive ( | 194 | GNUNET_CRYPTO_ecdsa_private_key_derive ( |
diff --git a/src/util/test_crypto_eddsa.c b/src/util/test_crypto_eddsa.c index 459619ff2..e9573a307 100644 --- a/src/util/test_crypto_eddsa.c +++ b/src/util/test_crypto_eddsa.c | |||
@@ -130,9 +130,11 @@ testDeriveSignVerify (void) | |||
130 | return GNUNET_SYSERR; | 130 | return GNUNET_SYSERR; |
131 | } | 131 | } |
132 | 132 | ||
133 | GNUNET_CRYPTO_eddsa_sign_with_scalar (&dpriv, | 133 | GNUNET_CRYPTO_eddsa_sign_derived (&key, |
134 | &purp, | 134 | "test-derive", |
135 | &sig); | 135 | "test-CTX", |
136 | &purp, | ||
137 | &sig); | ||
136 | if (GNUNET_SYSERR == | 138 | if (GNUNET_SYSERR == |
137 | GNUNET_CRYPTO_eddsa_verify_ (GNUNET_SIGNATURE_PURPOSE_TEST, | 139 | GNUNET_CRYPTO_eddsa_verify_ (GNUNET_SIGNATURE_PURPOSE_TEST, |
138 | &purp, | 140 | &purp, |