gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r31956 - in gnunet: po src/include src/secretsharing src/ut


From: gnunet
Subject: [GNUnet-SVN] r31956 - in gnunet: po src/include src/secretsharing src/util
Date: Mon, 20 Jan 2014 20:08:48 +0100

Author: dold
Date: 2014-01-20 20:08:47 +0100 (Mon, 20 Jan 2014)
New Revision: 31956

Added:
   gnunet/src/util/crypto_mpi.c
Modified:
   gnunet/po/POTFILES.in
   gnunet/po/de.po
   gnunet/po/es.po
   gnunet/po/sv.po
   gnunet/po/vi.po
   gnunet/po/zh_CN.po
   gnunet/src/include/gnunet_crypto_lib.h
   gnunet/src/include/gnunet_secretsharing_service.h
   gnunet/src/secretsharing/gnunet-secretsharing-profiler.c
   gnunet/src/secretsharing/gnunet-service-secretsharing.c
   gnunet/src/secretsharing/secretsharing.h
   gnunet/src/secretsharing/secretsharing_api.c
   gnunet/src/secretsharing/secretsharing_common.c
   gnunet/src/secretsharing/test_secretsharing.conf
   gnunet/src/util/Makefile.am
   gnunet/src/util/crypto_ecc.c
Log:
- make mpi scan/print public
- secretsharing key generation and decryption fixed


Modified: gnunet/po/POTFILES.in
===================================================================
--- gnunet/po/POTFILES.in       2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/po/POTFILES.in       2014-01-20 19:08:47 UTC (rev 31956)
@@ -263,6 +263,7 @@
 src/template/gnunet-service-template.c
 src/template/gnunet-template.c
 src/testbed/generate-underlay-topology.c
+src/testbed/gnunet-daemon-latency-logger.c
 src/testbed/gnunet-daemon-testbed-blacklist.c
 src/testbed/gnunet-daemon-testbed-underlay.c
 src/testbed/gnunet-helper-testbed.c

Modified: gnunet/po/de.po
===================================================================
--- gnunet/po/de.po     2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/po/de.po     2014-01-20 19:08:47 UTC (rev 31956)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2014-01-05 13:20+0100\n"
+"POT-Creation-Date: 2014-01-14 18:39+0100\n"
 "PO-Revision-Date: 2006-03-17 21:37+0100\n"
 "Last-Translator: Nils Durner <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
@@ -358,49 +358,49 @@
 msgid "Received last message for %s \n"
 msgstr "GAP hat ungültige Inhalte von `%s' empfangen.\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:1948
-#: src/ats/gnunet-service-ats_addresses.c:1992
+#: src/ats/gnunet-service-ats_addresses.c:1974
+#: src/ats/gnunet-service-ats_addresses.c:2018
 #, c-format
 msgid ""
 "Could not load quota for network `%s':  `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1955
+#: src/ats/gnunet-service-ats_addresses.c:1981
 #, c-format
 msgid "Outbound quota configure for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1963
+#: src/ats/gnunet-service-ats_addresses.c:1989
 #, c-format
 msgid ""
 "No outbound quota configured for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1999
+#: src/ats/gnunet-service-ats_addresses.c:2025
 #, c-format
 msgid "Inbound quota configured for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2007
+#: src/ats/gnunet-service-ats_addresses.c:2033
 #, c-format
 msgid ""
 "No outbound quota configure for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2184
+#: src/ats/gnunet-service-ats_addresses.c:2211
 #, c-format
 msgid "Initializing solver `%s '`%s'\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2187
+#: src/ats/gnunet-service-ats_addresses.c:2214
 #, fuzzy, c-format
 msgid "Failed to initialize solver `%s'!\n"
 msgstr "SQLite Datenbank konnte nicht initialisiert werden: %s.\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:2210
+#: src/ats/gnunet-service-ats_addresses.c:2237
 #, fuzzy
 msgid "Failed to initialize solver!\n"
 msgstr "SQLite Datenbank konnte nicht initialisiert werden: %s.\n"
@@ -478,12 +478,12 @@
 msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:352 src/namestore/gnunet-namestore.c:550
-#: src/transport/gnunet-transport.c:829
+#: src/transport/gnunet-transport.c:940
 #, fuzzy, c-format
 msgid "Service `%s' is not running\n"
 msgstr "`%s' ist keine Datei.\n"
 
-#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:838
+#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:949
 #, fuzzy, c-format
 msgid "Failed to parse peer identity `%s'\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
@@ -566,6 +566,7 @@
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
 #: src/consensus/gnunet-consensus-profiler.c:420
+#: src/secretsharing/gnunet-secretsharing-profiler.c:300
 #, fuzzy
 msgid "number of peers in consensus"
 msgstr "Anzahl an Durchläufen"
@@ -587,6 +588,7 @@
 msgstr "# Sitzungsschlüssel akzeptiert"
 
 #: src/consensus/gnunet-consensus-profiler.c:432
+#: src/secretsharing/gnunet-secretsharing-profiler.c:309
 msgid "be more verbose (print received values)"
 msgstr ""
 
@@ -595,255 +597,260 @@
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:252
+#: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept #%u or /cancel %u the call.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:274
+#: src/conversation/gnunet-conversation.c:286
 #, c-format
 msgid "Call from `%s' terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:307
+#: src/conversation/gnunet-conversation.c:319
 #, c-format
 msgid "Call from `%s' suspended by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:312
+#: src/conversation/gnunet-conversation.c:324
 #, c-format
 msgid "Call from `%s' resumed by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:330
+#: src/conversation/gnunet-conversation.c:342
 #, c-format
 msgid "Ego `%s' no longer available, phone is now down.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:344
+#: src/conversation/gnunet-conversation.c:356
 #, fuzzy
 msgid "Failed to setup phone (internal error)\n"
 msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
 
-#: src/conversation/gnunet-conversation.c:356
+#: src/conversation/gnunet-conversation.c:368
 #, c-format
 msgid ""
 "Phone active on line %u.  Type `/help' for a list of available commands\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:378
+#: src/conversation/gnunet-conversation.c:390
 #, c-format
 msgid "Resolved address of `%s'. Now ringing other party.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:385
+#: src/conversation/gnunet-conversation.c:397
 #, fuzzy, c-format
 msgid "Connection established to `%s'\n"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 
-#: src/conversation/gnunet-conversation.c:392
+#: src/conversation/gnunet-conversation.c:404
 #, fuzzy, c-format
 msgid "Failed to resolve `%s'\n"
 msgstr "Datei wurde als `%s' gespeichert.\n"
 
-#: src/conversation/gnunet-conversation.c:399
+#: src/conversation/gnunet-conversation.c:411
 msgid "Call terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:405
+#: src/conversation/gnunet-conversation.c:417
 #, c-format
 msgid "Connection to `%s' suspended (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:411
+#: src/conversation/gnunet-conversation.c:423
 #, c-format
 msgid "Connection to `%s' resumed (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:416
+#: src/conversation/gnunet-conversation.c:428
 msgid "Error with the call, restarting it\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:483
+#: src/conversation/gnunet-conversation.c:495
 #, fuzzy, c-format
 msgid "Unknown command `%s'\n"
 msgstr "Unbekannte Operation `%s'\n"
 
-#: src/conversation/gnunet-conversation.c:499
-#: src/conversation/gnunet-conversation.c:513
+#: src/conversation/gnunet-conversation.c:511
+#: src/conversation/gnunet-conversation.c:525
 #, fuzzy, c-format
 msgid "Ego `%s' not available\n"
 msgstr "gconfig ist nicht verfügbar\n"
 
-#: src/conversation/gnunet-conversation.c:506
-#: src/conversation/gnunet-conversation.c:563
+#: src/conversation/gnunet-conversation.c:518
+#: src/conversation/gnunet-conversation.c:575
 msgid "You are calling someone else already, hang up first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:521
-#: src/conversation/gnunet-conversation.c:576
+#: src/conversation/gnunet-conversation.c:533
+#: src/conversation/gnunet-conversation.c:588
 #, c-format
 msgid "You are answering call from `%s', hang up or suspend that call first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:532
+#: src/conversation/gnunet-conversation.c:544
 msgid "Call recipient missing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:587
+#: src/conversation/gnunet-conversation.c:599
 msgid "There is no incoming call to accept here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:604
+#: src/conversation/gnunet-conversation.c:616
 #, c-format
 msgid "There is no incoming call `%s' to accept right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:632
+#: src/conversation/gnunet-conversation.c:644
 msgid "We currently do not have an address.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:655
+#: src/conversation/gnunet-conversation.c:667
 #, c-format
 msgid "We are currently trying to locate the private key for the ego `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:660
+#: src/conversation/gnunet-conversation.c:672
 #, c-format
 msgid "We are listening for incoming calls for ego `%s' on line %u.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:666
-#: src/conversation/gnunet-conversation.c:690
+#: src/conversation/gnunet-conversation.c:678
+#: src/conversation/gnunet-conversation.c:702
 #, c-format
 msgid "You are having a conversation with `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:671
+#: src/conversation/gnunet-conversation.c:683
 msgid ""
 "We had an internal error setting up our phone line. You can still make "
 "calls.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:680
+#: src/conversation/gnunet-conversation.c:692
 #, fuzzy, c-format
 msgid "We are trying to find the network address to call `%s'.\n"
 msgstr "GNUnet verwendet nun die IP-Adresse %u.%u.%u.%u.\n"
 
-#: src/conversation/gnunet-conversation.c:685
+#: src/conversation/gnunet-conversation.c:697
 #, c-format
 msgid "We are calling `%s', his phone should be ringing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:704
+#: src/conversation/gnunet-conversation.c:716
 msgid "Calls waiting:\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:710
+#: src/conversation/gnunet-conversation.c:722
 #, fuzzy, c-format
 msgid "#%u: `%s'\n"
 msgstr "Ich bin Peer `%s'.\n"
 
-#: src/conversation/gnunet-conversation.c:738
-#: src/conversation/gnunet-conversation.c:753
+#: src/conversation/gnunet-conversation.c:750
+#: src/conversation/gnunet-conversation.c:765
 msgid "There is no call that could be suspended right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:786
-#: src/conversation/gnunet-conversation.c:802
+#: src/conversation/gnunet-conversation.c:798
+#: src/conversation/gnunet-conversation.c:814
 msgid "There is no call that could be resumed right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:809
+#: src/conversation/gnunet-conversation.c:821
 #, c-format
 msgid "Already talking with `%s', cannot resume a call right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:818
+#: src/conversation/gnunet-conversation.c:830
 msgid "There is no incoming call to resume here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:835
+#: src/conversation/gnunet-conversation.c:847
 #, c-format
 msgid "There is no incoming call `%s' to resume right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:870
+#: src/conversation/gnunet-conversation.c:882
 msgid "There is no call that could be cancelled right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:878
+#: src/conversation/gnunet-conversation.c:890
 msgid "There is no incoming call to refuse here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:895
+#: src/conversation/gnunet-conversation.c:907
 #, c-format
 msgid "There is no incoming call `%s' to refuse right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:922
+#: src/conversation/gnunet-conversation.c:934
 msgid "Use `/address' to find out which address this phone should have in GNS"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:924
+#: src/conversation/gnunet-conversation.c:936
 msgid "Use `/call USER.gnu' to call USER"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:926
+#: src/conversation/gnunet-conversation.c:938
 msgid "Use `/accept #NUM' to accept incoming call #NUM"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:928
+#: src/conversation/gnunet-conversation.c:940
 msgid "Use `/suspend' to suspend the active call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:930
+#: src/conversation/gnunet-conversation.c:942
 msgid ""
 "Use `/resume [#NUM]' to resume a call, #NUM is needed to resume incoming "
 "calls, no argument is needed to resume the current outgoing call."
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:932
+#: src/conversation/gnunet-conversation.c:944
 msgid "Use `/cancel' to reject or terminate a call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:934
+#: src/conversation/gnunet-conversation.c:946
 msgid "Use `/status' to print status information"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:936
+#: src/conversation/gnunet-conversation.c:948
 #, fuzzy
 msgid "Use `/quit' to terminate gnunet-conversation"
 msgstr "Erlaubt es Clients die Konfiguration von gnunetd abzufragen"
 
-#: src/conversation/gnunet-conversation.c:938
+#: src/conversation/gnunet-conversation.c:950
 msgid "Use `/help command' to get help for a specific command"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1093
+#: src/conversation/gnunet-conversation.c:1148
 #, fuzzy, c-format
 msgid "Name of our ego changed to `%s'\n"
 msgstr "Namespace `%s' konnte nicht erstellt werden (existiert bereits?).\n"
 
-#: src/conversation/gnunet-conversation.c:1106
+#: src/conversation/gnunet-conversation.c:1161
 #, fuzzy, c-format
 msgid "Our ego `%s' was deleted!\n"
 msgstr "Pseudonym `%s' wurde gelöscht.\n"
 
-#: src/conversation/gnunet-conversation.c:1141
+#: src/conversation/gnunet-conversation.c:1196
 #, fuzzy
 msgid "You must specify the NAME of an ego to use\n"
 msgstr "Sie müssen eine Liste von Dateien zum Einfügen angeben.\n"
 
-#: src/conversation/gnunet-conversation.c:1167
+#: src/conversation/gnunet-conversation.c:1220
+#, fuzzy
+msgid "Failed to start gnunet-helper-w32-console\n"
+msgstr "Fehler beim Starten der Collection.\n"
+
+#: src/conversation/gnunet-conversation.c:1246
 msgid "sets the NAME of the ego to use for the phone (and name resolution)"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1170
+#: src/conversation/gnunet-conversation.c:1249
 msgid "sets the LINE to use for the phone"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1185
+#: src/conversation/gnunet-conversation.c:1273
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
@@ -886,13 +893,13 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:211
-#: src/conversation/gnunet-helper-audio-record.c:362
+#: src/conversation/gnunet-helper-audio-record.c:365
 #, fuzzy
 msgid "Connection established.\n"
 msgstr "Collection beendet.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:216
-#: src/conversation/gnunet-helper-audio-record.c:367
+#: src/conversation/gnunet-helper-audio-record.c:370
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s\n"
 msgstr "`%s' schlug fehl: %s\n"
@@ -903,36 +910,36 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:243
-#: src/conversation/gnunet-helper-audio-record.c:393
+#: src/conversation/gnunet-helper-audio-record.c:396
 #, fuzzy, c-format
 msgid "Connection failure: %s\n"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:264
-#: src/conversation/gnunet-helper-audio-record.c:416
+#: src/conversation/gnunet-helper-audio-record.c:419
 msgid "Wrong Spec\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:270
-#: src/conversation/gnunet-helper-audio-record.c:422
+#: src/conversation/gnunet-helper-audio-record.c:425
 #, fuzzy
 msgid "pa_mainloop_new() failed.\n"
 msgstr "Absicherung fehlgeschlagen bei %s:%d.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:284
-#: src/conversation/gnunet-helper-audio-record.c:437
+#: src/conversation/gnunet-helper-audio-record.c:440
 #, fuzzy
 msgid "pa_context_new() failed.\n"
 msgstr "Absicherung fehlgeschlagen bei %s:%d.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:291
-#: src/conversation/gnunet-helper-audio-record.c:443
+#: src/conversation/gnunet-helper-audio-record.c:446
 #, fuzzy, c-format
 msgid "pa_context_connect() failed: %s\n"
 msgstr "`%s' schlug fehl: %s\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:297
-#: src/conversation/gnunet-helper-audio-record.c:449
+#: src/conversation/gnunet-helper-audio-record.c:452
 #, fuzzy
 msgid "pa_mainloop_run() failed.\n"
 msgstr "Absicherung fehlgeschlagen bei %s:%d.\n"
@@ -942,46 +949,51 @@
 msgid "Read error from STDIN: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:237
+#: src/conversation/gnunet-helper-audio-playback-gst.c:341
+#, c-format
+msgid "Read error from STDIN: %d %s\n"
+msgstr ""
+
+#: src/conversation/gnunet-helper-audio-record.c:240
 #, fuzzy, c-format
 msgid "pa_stream_peek() failed: %s\n"
 msgstr "`%s' schlug fehl: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:275
+#: src/conversation/gnunet-helper-audio-record.c:278
 msgid "Got signal, exiting.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:300
+#: src/conversation/gnunet-helper-audio-record.c:303
 #, fuzzy
 msgid "Stream successfully created.\n"
 msgstr "Zugriff verweigert für `%s' bei %s:%d.\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:305
+#: src/conversation/gnunet-helper-audio-record.c:308
 #, fuzzy, c-format
 msgid "pa_stream_get_buffer_attr() failed: %s\n"
 msgstr "`%s' schlug fehl: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:313
+#: src/conversation/gnunet-helper-audio-record.c:316
 #, c-format
 msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:317
+#: src/conversation/gnunet-helper-audio-record.c:320
 #, c-format
 msgid "Using sample spec '%s', channel map '%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:324
+#: src/conversation/gnunet-helper-audio-record.c:327
 #, fuzzy, c-format
 msgid "Connected to device %s (%u, %ssuspended).\n"
 msgstr "`%s' hat sich mit `%s' verbunden.\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:333
+#: src/conversation/gnunet-helper-audio-record.c:336
 #, c-format
 msgid "Stream error: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:380
+#: src/conversation/gnunet-helper-audio-record.c:383
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s\n"
 msgstr ""
@@ -1028,17 +1040,17 @@
 msgstr "Ich bin Peer `%s'.\n"
 
 #: src/core/gnunet-core.c:110 src/core/gnunet-core.c:138
-#: src/transport/gnunet-transport.c:609 src/transport/gnunet-transport.c:634
+#: src/transport/gnunet-transport.c:630 src/transport/gnunet-transport.c:650
 #, c-format
 msgid "%24s: %-17s %4s   (%u connections in total)\n"
 msgstr ""
 
-#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:611
+#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:631
 #, fuzzy
 msgid "Connected to"
 msgstr "`%s' hat sich mit `%s' verbunden.\n"
 
-#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:636
+#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:651
 #, fuzzy
 msgid "Disconnected from"
 msgstr "`%s' hat sich mit `%s' verbunden.\n"
@@ -1048,7 +1060,7 @@
 msgid "Invalid command line argument `%s'\n"
 msgstr "Ungültige Kommandozeilen Parameter:\n"
 
-#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1028
+#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1127
 #, fuzzy
 msgid "provide information about all current connections (continuously)"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
@@ -1121,7 +1133,7 @@
 msgstr "# defragmentierter Nachrichten"
 
 #: src/core/gnunet-service-core_kx.c:950
-#: src/transport/gnunet-service-transport_validation.c:974
+#: src/transport/gnunet-service-transport_validation.c:968
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# PING Nachrichten erstellt"
@@ -1154,7 +1166,7 @@
 msgstr "# Klartext PING Nachrichten gesendet"
 
 #: src/core/gnunet-service-core_kx.c:1095
-#: src/transport/gnunet-service-transport_validation.c:1285
+#: src/transport/gnunet-service-transport_validation.c:1280
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
@@ -1259,11 +1271,11 @@
 #: src/fs/gnunet-service-fs_cp.c:604 src/fs/gnunet-service-fs_cp.c:1499
 #: src/topology/gnunet-daemon-topology.c:706
 #: src/topology/gnunet-daemon-topology.c:807
-#: src/transport/gnunet-service-transport_neighbours.c:929
-#: src/transport/gnunet-service-transport_neighbours.c:1161
-#: src/transport/gnunet-service-transport_neighbours.c:1170
-#: src/transport/gnunet-service-transport_neighbours.c:3015
-#: src/transport/gnunet-service-transport_neighbours.c:3291
+#: src/transport/gnunet-service-transport_neighbours.c:837
+#: src/transport/gnunet-service-transport_neighbours.c:1069
+#: src/transport/gnunet-service-transport_neighbours.c:1078
+#: src/transport/gnunet-service-transport_neighbours.c:2920
+#: src/transport/gnunet-service-transport_neighbours.c:3181
 #, fuzzy
 msgid "# peers connected"
 msgstr "# verbundener Knoten"
@@ -1344,6 +1356,9 @@
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:52
+#: src/testbed/generate-underlay-topology.c:47
+#: src/testbed/gnunet-daemon-latency-logger.c:52
+#: src/testbed/gnunet-daemon-testbed-underlay.c:55
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
 #: src/include/gnunet_common.h:602 src/include/gnunet_common.h:611
 #: src/scalarproduct/scalarproduct.h:61
@@ -1690,6 +1705,9 @@
 msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:57
+#: src/testbed/generate-underlay-topology.c:50
+#: src/testbed/gnunet-daemon-latency-logger.c:55
+#: src/testbed/gnunet-daemon-testbed-underlay.c:58
 #, fuzzy, c-format
 msgid "`%s' failed at %s:%u with error: %s"
 msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
@@ -3420,7 +3438,7 @@
 msgstr "Option `%s' macht keinen Sinn ohne die Option `%s'.\n"
 
 #: src/fs/gnunet-publish.c:778 src/fs/gnunet-publish.c:785
-#: src/transport/gnunet-transport.c:865 src/transport/gnunet-transport.c:899
+#: src/transport/gnunet-transport.c:977 src/transport/gnunet-transport.c:1007
 #, c-format
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr "Option `%s' macht keinen Sinn ohne die Option `%s'.\n"
@@ -4091,8 +4109,8 @@
 #: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
 #: src/hostlist/hostlist-client.c:871 src/hostlist/hostlist-client.c:963
 #: src/hostlist/hostlist-client.c:968
-#: src/transport/plugin_transport_http_client.c:1070
-#: src/transport/plugin_transport_http_client.c:1085
+#: src/transport/plugin_transport_http_client.c:1062
+#: src/transport/plugin_transport_http_client.c:1077
 #, c-format
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
@@ -4385,37 +4403,37 @@
 msgid "Modified %u addresses \n"
 msgstr ""
 
-#: src/hello/hello.c:943
+#: src/hello/hello.c:944
 #, fuzzy
 msgid "Failed to parse HELLO message: missing expiration time\n"
 msgstr "Fehler beim Speichern der Konfiguration!"
 
-#: src/hello/hello.c:952
+#: src/hello/hello.c:953
 #, fuzzy
 msgid "Failed to parse HELLO message: invalid expiration time\n"
 msgstr "Fehler beim Speichern der Konfiguration!"
 
-#: src/hello/hello.c:962
+#: src/hello/hello.c:963
 #, fuzzy
 msgid "Failed to parse HELLO message: malformed\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/hello/hello.c:972
+#: src/hello/hello.c:973
 #, fuzzy
 msgid "Failed to parse HELLO message: missing transport plugin\n"
 msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n"
 
-#: src/hello/hello.c:989
+#: src/hello/hello.c:990
 #, c-format
 msgid "Plugin `%s' not found\n"
 msgstr ""
 
-#: src/hello/hello.c:998
+#: src/hello/hello.c:999
 #, c-format
 msgid "Plugin `%s' does not support URIs yet\n"
 msgstr ""
 
-#: src/hello/hello.c:1017
+#: src/hello/hello.c:1018
 #, fuzzy, c-format
 msgid "Failed to parse `%s' as an address for plugin `%s'\n"
 msgstr "Fehler beim Binden an UDP Port %d.\n"
@@ -4671,7 +4689,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556 src/peerinfo-tool/gnunet-peerinfo.c:651
-#: src/transport/gnunet-service-transport.c:946
+#: src/transport/gnunet-service-transport.c:867
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Auf die Namespace Informationen konnte nicht zugegriffen werden.\n"
@@ -4783,49 +4801,34 @@
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/mesh/gnunet-mesh.c:342
+#: src/mesh/gnunet-mesh.c:343
 #, fuzzy, c-format
 msgid "Invalid target `%s'\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/mesh/gnunet-mesh.c:503
+#: src/mesh/gnunet-mesh.c:521
 #, fuzzy, c-format
 msgid "Invalid tunnel owner `%s'\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/mesh/gnunet-mesh.c:568
+#: src/mesh/gnunet-mesh.c:586
 msgid "You must NOT give a TARGET when using options\n"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:645
-#, fuzzy
-msgid "provide information about a particular channel"
-msgstr "Informationen über andere GNUnet Knoten ausgeben."
-
-#: src/mesh/gnunet-mesh.c:648
-#, fuzzy
-msgid "provide information about a particular connection"
-msgstr "Informationen über andere GNUnet Knoten ausgeben."
-
-#: src/mesh/gnunet-mesh.c:651
+#: src/mesh/gnunet-mesh.c:669
 msgid "activate echo mode"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:654
+#: src/mesh/gnunet-mesh.c:672
 #, fuzzy
 msgid "provide information about all tunnels"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
-#: src/mesh/gnunet-mesh.c:657
-#, fuzzy
-msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
-msgstr "Informationen über andere GNUnet Knoten ausgeben."
-
-#: src/mesh/gnunet-mesh.c:660
+#: src/mesh/gnunet-mesh.c:678
 msgid "port to listen to (default; 0)"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:663
+#: src/mesh/gnunet-mesh.c:681
 #, fuzzy
 msgid "provide information about a particular tunnel"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
@@ -4957,7 +4960,7 @@
 msgstr ""
 
 #: src/namestore/gnunet-namestore.c:715
-#: src/peerinfo-tool/gnunet-peerinfo.c:703
+#: src/peerinfo-tool/gnunet-peerinfo.c:702
 #, fuzzy, c-format
 msgid "Invalid URI `%s'\n"
 msgstr "Ungültiger Parameter: `%s'\n"
@@ -5127,55 +5130,55 @@
 msgid "NAT traversal with ICMP Server timed out.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:200
+#: src/nat/nat_auto.c:203
 msgid "NAT traversal with ICMP Server succeeded.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:201
+#: src/nat/nat_auto.c:204
 msgid "NAT traversal with ICMP Server failed.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:222
+#: src/nat/nat_auto.c:225
 #, fuzzy
 msgid "Testing connection reversal with ICMP server.\n"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
-#: src/nat/nat_auto.c:269
+#: src/nat/nat_auto.c:274
 #, fuzzy, c-format
 msgid "Detected external IP `%s'\n"
 msgstr "Ungültiger RPC `%s' empfangen.\n"
 
-#: src/nat/nat_auto.c:339
+#: src/nat/nat_auto.c:344
 msgid "This system has a global IPv6 address, setting IPv6 to supported.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:355
+#: src/nat/nat_auto.c:360
 #, fuzzy, c-format
 msgid "Detected internal network address `%s'.\n"
 msgstr "GNUnet verwendet nun die IP-Adresse %u.%u.%u.%u.\n"
 
-#: src/nat/nat_auto.c:408
+#: src/nat/nat_auto.c:413
 msgid "upnpc found, enabling its use\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:409
+#: src/nat/nat_auto.c:414
 #, fuzzy
 msgid "upnpc not found\n"
 msgstr "Kommando `%s' wurde nicht gefunden!\n"
 
-#: src/nat/nat_auto.c:442
+#: src/nat/nat_auto.c:447
 msgid "gnunet-helper-nat-server found, testing it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:443
+#: src/nat/nat_auto.c:448
 msgid "No working gnunet-helper-nat-server found\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:477
+#: src/nat/nat_auto.c:482
 msgid "gnunet-helper-nat-client found, enabling it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:478
+#: src/nat/nat_auto.c:483
 msgid "gnunet-helper-nat-client not found or behind NAT, disabling it\n"
 msgstr ""
 
@@ -5189,40 +5192,66 @@
 msgid "Failed to start %s\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/nat/nat.c:1203
+#: src/nat/nat.c:1205
 msgid "malformed"
 msgstr ""
 
-#: src/nat/nat.c:1274 src/nat/nat.c:1286
+#: src/nat/nat.c:1276 src/nat/nat.c:1288
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1424
+#: src/nat/nat.c:1426
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1440
+#: src/nat/nat.c:1442
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:170
+#: src/nat/nat_mini.c:155
+msgid "no valid address was returned by `external-ip'"
+msgstr ""
+
+#: src/nat/nat_mini.c:175
+msgid "`external-ip' command not found"
+msgstr ""
+
+#: src/nat/nat_mini.c:201
 msgid "`external-ip' command not found\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:505
+#: src/nat/nat_mini.c:366
+#, fuzzy
+msgid "Failed to run `upnpc` command"
+msgstr "Fehler beim Starten der Collection.\n"
+
+#: src/nat/nat_mini.c:512
+msgid "`upnpc' command took too long, process killed"
+msgstr ""
+
+#: src/nat/nat_mini.c:540
+msgid "`upnpc' command failed to establish port mapping"
+msgstr ""
+
+#: src/nat/nat_mini.c:604
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_mini.c:608
 #, fuzzy
+msgid "`upnpc` command not found"
+msgstr "Kommando `%s' wurde nicht gefunden!\n"
+
+#: src/nat/nat_test.c:351
+#, fuzzy
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/nat/nat_test.c:420
+#: src/nat/nat_test.c:423
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
@@ -5258,14 +5287,10 @@
 msgstr "Auf den Dienst konnte nicht zugegriffen werden"
 
 #: src/nse/gnunet-service-nse.c:1461
-#: src/revocation/gnunet-service-revocation.c:789
+#: src/revocation/gnunet-service-revocation.c:789 src/util/gnunet-scrypt.c:248
 msgid "Value is too large.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1488
-msgid "NSE service is lacking key configuration settings.  Exiting.\n"
-msgstr ""
-
 #: src/peerinfo/gnunet-service-peerinfo.c:215
 #, fuzzy, c-format
 msgid "Removing expired address of transport `%s'\n"
@@ -5380,54 +5405,49 @@
 msgid "Failure adding HELLO: %s\n"
 msgstr "Fehler bei %s:%d.\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:661
+#: src/peerinfo-tool/gnunet-peerinfo.c:666 src/util/gnunet-scrypt.c:224
 #, fuzzy, c-format
-msgid "Could not find option `%s:%s' in configuration.\n"
-msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n"
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:667
-#, fuzzy, c-format
 msgid "Loading hostkey from `%s' failed.\n"
 msgstr "Das Parsen des Hello von `%s' schlug fehl.\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:725
+#: src/peerinfo-tool/gnunet-peerinfo.c:724
 #, c-format
 msgid "I am peer `%s'.\n"
 msgstr "Ich bin Peer `%s'.\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:769
+#: src/peerinfo-tool/gnunet-peerinfo.c:768
 msgid "don't resolve host names"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:772
+#: src/peerinfo-tool/gnunet-peerinfo.c:771
 msgid "output only the identity strings"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:775
+#: src/peerinfo-tool/gnunet-peerinfo.c:774
 msgid "include friend-only information"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:778
+#: src/peerinfo-tool/gnunet-peerinfo.c:777
 msgid "output our own identity only"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:781
+#: src/peerinfo-tool/gnunet-peerinfo.c:780
 msgid "list all known peers"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:784
+#: src/peerinfo-tool/gnunet-peerinfo.c:783
 msgid "dump hello to file"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:787
+#: src/peerinfo-tool/gnunet-peerinfo.c:786
 msgid "also output HELLO uri(s)"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:790
+#: src/peerinfo-tool/gnunet-peerinfo.c:789
 msgid "add given HELLO uri to the database"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:801
+#: src/peerinfo-tool/gnunet-peerinfo.c:800
 #, fuzzy
 msgid "Print information about peers."
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
@@ -6075,6 +6095,14 @@
 msgid "Failed to send a message to the scalarproduct service\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
+#: src/secretsharing/gnunet-secretsharing-profiler.c:303
+msgid "dkg timeout"
+msgstr ""
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:306
+msgid "threshold"
+msgstr ""
+
 #: src/set/gnunet-service-set.c:1416
 #, fuzzy
 msgid "Could not connect to mesh service\n"
@@ -6209,19 +6237,94 @@
 "might have been lost!\n"
 msgstr ""
 
+#: src/testbed/generate-underlay-topology.c:223
+msgid "Need atleast 2 arguments\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:228
+msgid "Database filename missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:235
+msgid "Topology string missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:240
+#, fuzzy, c-format
+msgid "Invalid topology: %s\n"
+msgstr "Ungültiger Parameter: `%s'\n"
+
+#: src/testbed/generate-underlay-topology.c:252
+#, c-format
+msgid "An argument is missing for given topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:258
+#, fuzzy, c-format
+msgid "Invalid argument `%s' given as topology argument\n"
+msgstr "Ungültiger Parameter: `%s'\n"
+
+#: src/testbed/generate-underlay-topology.c:266
+#, c-format
+msgid "Filename argument missing for topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:280
+#, c-format
+msgid "Second argument for topology `%s' is missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:286
+#, fuzzy, c-format
+msgid "Invalid argument `%s'; expecting unsigned int\n"
+msgstr "Ungültiger Parameter für `%s' bei %s:%d.\n"
+
+#: src/testbed/generate-underlay-topology.c:335
+#: src/testbed/gnunet-testbed-profiler.c:293
+msgid "create COUNT number of peers"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:344
+msgid ""
+"Generates SQLite3 database representing a given underlay topology.\n"
+"Usage: gnunet-underlay-topology [OPTIONS] db-filename TOPO [TOPOOPTS]\n"
+"The following options are available for TOPO followed by TOPOOPTS if "
+"applicable:\n"
+"\t LINE\n"
+"\t RING\n"
+"\t RANDOM <num_rnd_links>\n"
+"\t SMALL_WORLD <num_rnd_links>\n"
+"\t SMALL_WORLD_RING <num_rnd_links>\n"
+"\t CLIQUE\n"
+"\t 2D_TORUS\n"
+"\t SCALE_FREE <cap> <m>\n"
+"\t FROM_FILE <filename>\n"
+"TOPOOPTS:\n"
+"\t num_rnd_links: The number of random links\n"
+"\t cap: the maximum number of links a node can have\n"
+"\t m: the number of links a node should have while joining the network\n"
+"\t filename: the path of the file which contains topology information\n"
+"NOTE: the format of the above file is descibed here: https://www.gnunet.org/";
+"content/topology-file-format\n"
+msgstr ""
+
+#: src/testbed/gnunet-daemon-latency-logger.c:325
+msgid "Daemon to log latency values of connections to neighbours"
+msgstr ""
+
 #: src/testbed/gnunet-daemon-testbed-blacklist.c:264
 msgid ""
 "Daemon to restrict incoming transport layer connections during testbed "
 "deployments"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:300 src/testing/testing.c:293
-#: src/util/gnunet-ecc.c:217
+#: src/testbed/gnunet-daemon-testbed-underlay.c:235 src/testing/list-keys.c:50
+#: src/testing/testing.c:293 src/util/gnunet-ecc.c:217
 #, c-format
 msgid "Incorrect hostkey file format: %s\n"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:553
+#: src/testbed/gnunet-daemon-testbed-underlay.c:474
 msgid "Daemon to restrict underlay network in testbed deployments"
 msgstr ""
 
@@ -6262,10 +6365,6 @@
 msgid "Exiting as the number of peers is %u\n"
 msgstr "Maximale Anzahl an Chat Clients erreicht.\n"
 
-#: src/testbed/gnunet-testbed-profiler.c:293
-msgid "create COUNT number of peers"
-msgstr ""
-
 #: src/testbed/gnunet-testbed-profiler.c:296
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6302,101 +6401,101 @@
 msgid "Adding host %u failed with error: %s\n"
 msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
 
-#: src/testbed/testbed_api_testbed.c:820
+#: src/testbed/testbed_api_testbed.c:819
 msgid "Linking controllers failed. Exiting"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:989
+#: src/testbed/testbed_api_testbed.c:988
 #, c-format
 msgid "Host registration failed for a host. Error: %s\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1055
+#: src/testbed/testbed_api_testbed.c:1054
 msgid "Controller crash detected. Shutting down.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1144
+#: src/testbed/testbed_api_testbed.c:1143
 #, c-format
 msgid "Host %s cannot start testbed\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1148
+#: src/testbed/testbed_api_testbed.c:1147
 msgid "Testbed cannot be started on localhost\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1186
+#: src/testbed/testbed_api_testbed.c:1185
 #, fuzzy
 msgid "Cannot start the master controller"
 msgstr "GNUnet testbed Controller starten."
 
-#: src/testbed/testbed_api_testbed.c:1204
+#: src/testbed/testbed_api_testbed.c:1203
 msgid "Shutting down testbed due to timeout while setup.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1264
+#: src/testbed/testbed_api_testbed.c:1263
 msgid "No hosts loaded from LoadLeveler. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1276
+#: src/testbed/testbed_api_testbed.c:1275
 msgid "No hosts loaded. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1300
+#: src/testbed/testbed_api_testbed.c:1299
 msgid "Specified topology must be supported by testbed"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1350
+#: src/testbed/testbed_api_testbed.c:1349
 #, c-format
 msgid ""
 "Maximum number of edges a peer can have in a scale free topology cannot be "
 "more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1366
+#: src/testbed/testbed_api_testbed.c:1365
 #, c-format
 msgid ""
 "The number of edges that can established when adding a new node to scale "
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:715
+#: src/testbed/testbed_api_topology.c:960
 #, fuzzy, c-format
 msgid "Topology file %s not found\n"
 msgstr "`%s' fehlgeschlagen: Tabelle nicht gefunden!\n"
 
-#: src/testbed/testbed_api_topology.c:721
+#: src/testbed/testbed_api_topology.c:966
 #, fuzzy, c-format
 msgid "Topology file %s has no data\n"
 msgstr "Sitzungsschlüssel von Knoten `%s' konnte nicht überprüft werden.\n"
 
-#: src/testbed/testbed_api_topology.c:728
+#: src/testbed/testbed_api_topology.c:973
 #, fuzzy, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr "Sitzungsschlüssel von Knoten `%s' konnte nicht überprüft werden.\n"
 
-#: src/testbed/testbed_api_topology.c:750
+#: src/testbed/testbed_api_topology.c:995
 #, fuzzy, c-format
 msgid "Failed to read peer index from toology file: %s"
 msgstr "Konfigurationsdatei `%s' konnte nicht geparst werden.\n"
 
-#: src/testbed/testbed_api_topology.c:759
-#: src/testbed/testbed_api_topology.c:783
+#: src/testbed/testbed_api_topology.c:1004
+#: src/testbed/testbed_api_topology.c:1028
 #, c-format
 msgid "Value in given topology file: %s out of range\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:765
-#: src/testbed/testbed_api_topology.c:789
+#: src/testbed/testbed_api_topology.c:1010
+#: src/testbed/testbed_api_topology.c:1034
 #, fuzzy, c-format
 msgid "Failed to read peer index from topology file: %s"
 msgstr "Konfigurationsdatei `%s' konnte nicht geparst werden.\n"
 
-#: src/testbed/testbed_api_topology.c:771
-#: src/testbed/testbed_api_topology.c:795
+#: src/testbed/testbed_api_topology.c:1016
+#: src/testbed/testbed_api_topology.c:1040
 msgid "Topology file needs more peers than given ones\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:810
+#: src/testbed/testbed_api_topology.c:1074
 #, fuzzy, c-format
 msgid "Ignoring to connect peer %u to peer %u\n"
 msgstr "Verbindung zu %u.%u.%u.%u:%u fehlgeschlagen: %s\n"
@@ -6442,6 +6541,14 @@
 msgid "Command line tool to access the testing library"
 msgstr ""
 
+#: src/testing/list-keys.c:90
+msgid "list COUNT number of keys"
+msgstr ""
+
+#: src/testing/list-keys.c:93
+msgid "skip COUNT number of keys in the beginning"
+msgstr ""
+
 #: src/testing/testing.c:277
 #, c-format
 msgid "Hostkeys file not found: %s\n"
@@ -6578,40 +6685,40 @@
 msgstr ""
 
 #: src/transport/gnunet-service-transport_blacklist.c:455
-#: src/transport/gnunet-service-transport_blacklist.c:722
+#: src/transport/gnunet-service-transport_blacklist.c:725
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:206
+#: src/transport/gnunet-service-transport.c:201
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "# Knotenankündigungen empfangen"
 
-#: src/transport/gnunet-service-transport.c:325
+#: src/transport/gnunet-service-transport.c:304
 #, fuzzy
 msgid "# bytes total received"
 msgstr "# gap Anfragen insgesamt empfangen"
 
-#: src/transport/gnunet-service-transport.c:399
+#: src/transport/gnunet-service-transport.c:371
 #, fuzzy
 msgid "# bytes payload received"
 msgstr "# Bytes entschlüsselt"
 
-#: src/transport/gnunet-service-transport.c:574
+#: src/transport/gnunet-service-transport.c:527
 #, fuzzy, c-format
 msgid "Could not obtain a valid network for `%s' %s (%s)\n"
 msgstr ""
 "Es konnte keine IP für das Gerät `%s' unter Verwendung von `%s' ermittelt "
 "werden.\n"
 
-#: src/transport/gnunet-service-transport.c:628
+#: src/transport/gnunet-service-transport.c:574
 #, c-format
 msgid ""
 "Address or session unknown: failed to update properties for peer `%s' plugin "
 "`%s' address `%s' session %p\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:916
+#: src/transport/gnunet-service-transport.c:837
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "GNUnet Konfiguration"
@@ -6626,16 +6733,16 @@
 msgid "# messages dropped due to slow client"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/transport/gnunet-service-transport_clients.c:533
+#: src/transport/gnunet-service-transport_clients.c:540
 #, c-format
 msgid "Rejecting control connection from peer `%s', which is not me!\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:674
+#: src/transport/gnunet-service-transport_clients.c:681
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:731
+#: src/transport/gnunet-service-transport_clients.c:738
 #, fuzzy
 msgid "# REQUEST CONNECT messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
@@ -6644,167 +6751,167 @@
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1108
+#: src/transport/gnunet-service-transport_neighbours.c:1016
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1244
-#: src/transport/gnunet-service-transport_neighbours.c:1653
+#: src/transport/gnunet-service-transport_neighbours.c:1152
+#: src/transport/gnunet-service-transport_neighbours.c:1562
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# Bytes ausgehender Nachrichten verworfen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1249
+#: src/transport/gnunet-service-transport_neighbours.c:1157
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# Bytes des Typs %d übertragen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1254
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# Bytes ausgehender Nachrichten verworfen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1311
+#: src/transport/gnunet-service-transport_neighbours.c:1219
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1368
+#: src/transport/gnunet-service-transport_neighbours.c:1276
 #, fuzzy
 msgid "# keepalives sent"
 msgstr "# p2p Trace-Antworten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1401
+#: src/transport/gnunet-service-transport_neighbours.c:1309
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1409
+#: src/transport/gnunet-service-transport_neighbours.c:1317
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1456
+#: src/transport/gnunet-service-transport_neighbours.c:1364
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1465
+#: src/transport/gnunet-service-transport_neighbours.c:1373
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1473
+#: src/transport/gnunet-service-transport_neighbours.c:1381
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (address changed)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1481
+#: src/transport/gnunet-service-transport_neighbours.c:1389
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (wrong nonce)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1558
+#: src/transport/gnunet-service-transport_neighbours.c:1467
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1592
+#: src/transport/gnunet-service-transport_neighbours.c:1501
 #, fuzzy
 msgid "# bandwidth quota violations by other peers"
 msgstr "Verfolgt die Bandbreitennutzung von gnunetd"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1517
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1700
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 #, fuzzy
 msgid "# SESSION_CONNECT messages sent"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1716
+#: src/transport/gnunet-service-transport_neighbours.c:1625
 #, fuzzy, c-format
 msgid "Failed to transmit CONNECT message via plugin to %s\n"
 msgstr "`%s' Dienst konnte nicht initialisiert werden.\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1759
+#: src/transport/gnunet-service-transport_neighbours.c:1668
 #, fuzzy
 msgid "# CONNECT_ACK messages sent"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2236
+#: src/transport/gnunet-service-transport_neighbours.c:2149
 #, fuzzy
 msgid "# CONNECT messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2241
+#: src/transport/gnunet-service-transport_neighbours.c:2154
 #, c-format
 msgid "CONNECT request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2979
+#: src/transport/gnunet-service-transport_neighbours.c:2885
 #, fuzzy
 msgid "# CONNECT_ACK messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2987
+#: src/transport/gnunet-service-transport_neighbours.c:2893
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3002
-#: src/transport/gnunet-service-transport_neighbours.c:3039
+#: src/transport/gnunet-service-transport_neighbours.c:2908
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3052
+#: src/transport/gnunet-service-transport_neighbours.c:2957
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3085
+#: src/transport/gnunet-service-transport_neighbours.c:2987
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3265
+#: src/transport/gnunet-service-transport_neighbours.c:3156
 #, fuzzy
 msgid "# SESSION_ACK messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3284
+#: src/transport/gnunet-service-transport_neighbours.c:3175
 #, fuzzy
 msgid "# unexpected SESSION_ACK messages"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3340
+#: src/transport/gnunet-service-transport_neighbours.c:3230
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3355
+#: src/transport/gnunet-service-transport_neighbours.c:3245
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3383
+#: src/transport/gnunet-service-transport_neighbours.c:3273
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3389
+#: src/transport/gnunet-service-transport_neighbours.c:3279
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3398
+#: src/transport/gnunet-service-transport_neighbours.c:3288
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3434
+#: src/transport/gnunet-service-transport_neighbours.c:3324
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3532
+#: src/transport/gnunet-service-transport_neighbours.c:3423
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
@@ -6833,447 +6940,452 @@
 msgid "Did not load plugin `%s' due to missing functions\n"
 msgstr "Fehler beim Laden des Plugins `%s' bei %s:%d. Plugin wird entladen.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:456
+#: src/transport/gnunet-service-transport_validation.c:452
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:526
+#: src/transport/gnunet-service-transport_validation.c:522
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:584
+#: src/transport/gnunet-service-transport_validation.c:580
 #, fuzzy
 msgid "# PING without HELLO messages sent"
 msgstr "# Klartext PING Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:681
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:969
+#: src/transport/gnunet-service-transport_validation.c:963
 #, fuzzy
 msgid "# PING message for different peer received"
 msgstr "# PING Nachrichten erstellt"
 
-#: src/transport/gnunet-service-transport_validation.c:1019
+#: src/transport/gnunet-service-transport_validation.c:1014
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1029
+#: src/transport/gnunet-service-transport_validation.c:1024
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1032
+#: src/transport/gnunet-service-transport_validation.c:1027
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1040
+#: src/transport/gnunet-service-transport_validation.c:1035
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1052
+#: src/transport/gnunet-service-transport_validation.c:1047
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1060
+#: src/transport/gnunet-service-transport_validation.c:1055
 #, c-format
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1114
+#: src/transport/gnunet-service-transport_validation.c:1109
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "Namespace `%s' konnte nicht erstellt werden (existiert bereits?).\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1163
+#: src/transport/gnunet-service-transport_validation.c:1158
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1172
+#: src/transport/gnunet-service-transport_validation.c:1167
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1312
+#: src/transport/gnunet-service-transport_validation.c:1308
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1327
+#: src/transport/gnunet-service-transport_validation.c:1323
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1448
+#: src/transport/gnunet-service-transport_validation.c:1442
 #, fuzzy, c-format
+msgid "Validation received new %s message for peer `%s' with size %u\n"
+msgstr "GAP hat ungültige Inhalte von `%s' empfangen.\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1449
+#, fuzzy, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Adresse des Knotens `%s' konnte nicht ermittelt werden.\n"
 
-#: src/transport/gnunet-transport.c:258
+#: src/transport/gnunet-transport.c:285
 #, fuzzy, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/transport/gnunet-transport.c:265
+#: src/transport/gnunet-transport.c:293
 #, fuzzy, c-format
 msgid "Received %llu bytes/s (%llu bytes in %s)\n"
 msgstr "GAP hat ungültige Inhalte von `%s' empfangen.\n"
 
-#: src/transport/gnunet-transport.c:296
+#: src/transport/gnunet-transport.c:331
 #, fuzzy, c-format
 msgid "Failed to connect to `%s'\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/transport/gnunet-transport.c:309
+#: src/transport/gnunet-transport.c:344
 #, fuzzy, c-format
 msgid "Failed to resolve address for peer `%s'\n"
 msgstr "Fehler beim Binden an UDP Port %d.\n"
 
-#: src/transport/gnunet-transport.c:318
+#: src/transport/gnunet-transport.c:354
 #, fuzzy
 msgid "Failed to list connections, timeout occured\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden."
 
-#: src/transport/gnunet-transport.c:423
+#: src/transport/gnunet-transport.c:453
 msgid "No transport plugins configured, peer will never communicate\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:436
+#: src/transport/gnunet-transport.c:467
 #, c-format
 msgid "No port configured for plugin `%s', cannot test it\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:506
+#: src/transport/gnunet-transport.c:530
 #, fuzzy, c-format
 msgid "Transmitting %u bytes to %s\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/transport/gnunet-transport.c:529
+#: src/transport/gnunet-transport.c:551
 #, fuzzy, c-format
 msgid "Successfully connected to `%s'\n"
 msgstr "Zugriff verweigert für `%s' bei %s:%d.\n"
 
-#: src/transport/gnunet-transport.c:552
+#: src/transport/gnunet-transport.c:575
 #, c-format
 msgid ""
 "Successfully connected to `%s', starting to send benchmark data in %u Kb "
 "blocks\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:587
+#: src/transport/gnunet-transport.c:608
 #, fuzzy, c-format
 msgid "Disconnected from peer `%s' while benchmarking\n"
 msgstr "`%s' hat sich mit `%s' verbunden.\n"
 
-#: src/transport/gnunet-transport.c:660
+#: src/transport/gnunet-transport.c:670
 #, fuzzy, c-format
 msgid "Received %u bytes from %s\n"
 msgstr "GAP hat ungültige Inhalte von `%s' empfangen.\n"
 
-#: src/transport/gnunet-transport.c:685
-#, fuzzy, c-format
-msgid "Peer `%s': %s %s\n"
-msgstr "Ich bin Peer `%s'.\n"
-
-#: src/transport/gnunet-transport.c:704
+#: src/transport/gnunet-transport.c:693
 #, c-format
-msgid "Peer `%s': %s <unable to resolve address>\n"
+msgid "Peer `%s': %s %s in state `%s' until %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:772
+#: src/transport/gnunet-transport.c:703
 #, fuzzy, c-format
-msgid "Peer `%s' disconnected\n"
-msgstr "# verbundener Knoten"
+msgid "Peer `%s': %s %s\n"
+msgstr "Ich bin Peer `%s'.\n"
 
-#: src/transport/gnunet-transport.c:802
+#: src/transport/gnunet-transport.c:916
 #, fuzzy
 msgid "Failed to send connect request to transport service\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/transport/gnunet-transport.c:848
+#: src/transport/gnunet-transport.c:959
 #, c-format
 msgid ""
 "Multiple operations given. Please choose only one operation: %s, %s, %s, %s, "
 "%s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:855
+#: src/transport/gnunet-transport.c:967
 #, c-format
 msgid ""
 "No operation given. Please choose one operation: %s, %s, %s, %s, %s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:878 src/transport/gnunet-transport.c:910
-#: src/transport/gnunet-transport.c:932 src/transport/gnunet-transport.c:969
+#: src/transport/gnunet-transport.c:986 src/transport/gnunet-transport.c:1016
+#: src/transport/gnunet-transport.c:1039 src/transport/gnunet-transport.c:1070
 #, fuzzy
 msgid "Failed to connect to transport service\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/transport/gnunet-transport.c:887 src/transport/gnunet-transport.c:917
+#: src/transport/gnunet-transport.c:995 src/transport/gnunet-transport.c:1025
 #, fuzzy
 msgid "Failed to send request to transport service\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/transport/gnunet-transport.c:937
+#: src/transport/gnunet-transport.c:1044
 msgid "Starting to receive benchmark data\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1019
+#: src/transport/gnunet-transport.c:1116
+#, fuzzy
+msgid "print information for all peers (instead of only connected peers )"
+msgstr "Informationen über andere GNUnet Knoten ausgeben."
+
+#: src/transport/gnunet-transport.c:1119
 msgid "measure how fast we are receiving data from all peers (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1022
+#: src/transport/gnunet-transport.c:1121
 #, fuzzy
 msgid "connect to a peer"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/transport/gnunet-transport.c:1025
+#: src/transport/gnunet-transport.c:1124
 #, fuzzy
 msgid "provide information about all current connections (once)"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
-#: src/transport/gnunet-transport.c:1031
+#: src/transport/gnunet-transport.c:1130
 #, fuzzy
 msgid ""
 "provide information about all connects and disconnect events (continuously)"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
-#: src/transport/gnunet-transport.c:1034
+#: src/transport/gnunet-transport.c:1132
 #, fuzzy
 msgid "do not resolve hostnames"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/transport/gnunet-transport.c:1037
+#: src/transport/gnunet-transport.c:1134
 msgid "peer identity"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1041
+#: src/transport/gnunet-transport.c:1136
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1044
+#: src/transport/gnunet-transport.c:1139
 msgid "test transport configuration (involves external server)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1055
+#: src/transport/gnunet-transport.c:1148
 #, fuzzy
 msgid "Direct access to transport service."
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/transport/plugin_transport_bluetooth.c:616
+#: src/transport/plugin_transport_bluetooth.c:618
 msgid "# Bluetooth ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:635
+#: src/transport/plugin_transport_bluetooth.c:637
 #, fuzzy
 msgid "# Bluetooth messages defragmented"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/plugin_transport_bluetooth.c:681
-#: src/transport/plugin_transport_bluetooth.c:731
-#: src/transport/plugin_transport_bluetooth.c:1881
+#: src/transport/plugin_transport_bluetooth.c:683
+#: src/transport/plugin_transport_bluetooth.c:733
+#: src/transport/plugin_transport_bluetooth.c:1888
 #, fuzzy
 msgid "# Bluetooth sessions allocated"
 msgstr "# Sitzungsschlüssel akzeptiert"
 
-#: src/transport/plugin_transport_bluetooth.c:806
+#: src/transport/plugin_transport_bluetooth.c:808
 #, fuzzy
 msgid "# Bluetooth message fragments sent"
 msgstr "# fragmentierter Nachrichten"
 
-#: src/transport/plugin_transport_bluetooth.c:830
+#: src/transport/plugin_transport_bluetooth.c:832
 msgid "# Bluetooth messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:938
-#: src/transport/plugin_transport_bluetooth.c:1023
-#: src/transport/plugin_transport_bluetooth.c:1883
+#: src/transport/plugin_transport_bluetooth.c:940
+#: src/transport/plugin_transport_bluetooth.c:1026
+#: src/transport/plugin_transport_bluetooth.c:1890
 #, fuzzy
 msgid "# Bluetooth MAC endpoints allocated"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/transport/plugin_transport_bluetooth.c:1250
+#: src/transport/plugin_transport_bluetooth.c:1254
 #, fuzzy
 msgid "# HELLO messages received via Bluetooth"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_bluetooth.c:1276
+#: src/transport/plugin_transport_bluetooth.c:1277
 #, fuzzy
 msgid "# fragments received via Bluetooth"
 msgstr "# verworfener Nachrichten"
 
-#: src/transport/plugin_transport_bluetooth.c:1286
+#: src/transport/plugin_transport_bluetooth.c:1287
 #, fuzzy
 msgid "# ACKs received via Bluetooth"
 msgstr "# Bytes empfangen über TCP"
 
-#: src/transport/plugin_transport_bluetooth.c:1343
+#: src/transport/plugin_transport_bluetooth.c:1347
 #, fuzzy
 msgid "# Bluetooth DATA messages discarded due to CRC32 error"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/plugin_transport_bluetooth.c:1455
+#: src/transport/plugin_transport_bluetooth.c:1458
 #, fuzzy
 msgid "# DATA messages received via Bluetooth"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_bluetooth.c:1490
+#: src/transport/plugin_transport_bluetooth.c:1493
 #, fuzzy
 msgid "# Bluetooth DATA messages processed"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_bluetooth.c:1553
+#: src/transport/plugin_transport_bluetooth.c:1556
 #, fuzzy
 msgid "# HELLO beacons sent via Bluetooth"
 msgstr "# Bytes gesendet über UDP"
 
-#: src/transport/plugin_transport_bluetooth.c:1666
+#: src/transport/plugin_transport_bluetooth.c:1669
 msgid "Bluetooth address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1862
+#: src/transport/plugin_transport_bluetooth.c:1869
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run bluetooth transport\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1618
+#: src/transport/plugin_transport_http_client.c:1621
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1693
-#: src/transport/plugin_transport_http_server.c:3001
+#: src/transport/plugin_transport_http_client.c:1696
+#: src/transport/plugin_transport_http_server.c:3006
 #, fuzzy, c-format
 msgid "Shutting down plugin `%s'\n"
 msgstr "Teste Transport(e) %s\n"
 
-#: src/transport/plugin_transport_http_client.c:1718
-#: src/transport/plugin_transport_http_server.c:3059
+#: src/transport/plugin_transport_http_client.c:1721
+#: src/transport/plugin_transport_http_server.c:3062
 #, fuzzy, c-format
 msgid "Shutdown for plugin `%s' complete\n"
 msgstr ""
 "Upload von `%s' komplett, derzeitige durchschnittliche Geschwindigkeit "
 "beträgt %8.3f KB/s.\n"
 
-#: src/transport/plugin_transport_http_client.c:1746
-#: src/transport/plugin_transport_http_server.c:2901
+#: src/transport/plugin_transport_http_client.c:1749
+#: src/transport/plugin_transport_http_server.c:2906
 #, fuzzy, c-format
 msgid "Maximum number of connections is %u\n"
 msgstr "Maximale Anzahl an Chat Clients erreicht.\n"
 
-#: src/transport/plugin_transport_http_server.c:1416
+#: src/transport/plugin_transport_http_server.c:1402
 #, c-format
 msgid ""
 "Access from connection %p (%u of %u) for `%s' `%s' url `%s' with upload data "
 "size %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1680
+#: src/transport/plugin_transport_http_server.c:1663
 #, c-format
 msgid "Accepting connection (%u of %u) from `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1688
+#: src/transport/plugin_transport_http_server.c:1671
 #, c-format
 msgid ""
 "Server reached maximum number connections (%u), rejecting new connection\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1974
+#: src/transport/plugin_transport_http_server.c:1957
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1998
+#: src/transport/plugin_transport_http_server.c:1981
 #, c-format
 msgid "No usable TLS certificate found and creating one at `%s/%s' failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2405
+#: src/transport/plugin_transport_http_server.c:2404
 #, fuzzy
 msgid "Require valid port number for service in configuration!\n"
 msgstr "In der Konfigurationsdatei wurden keine Anwendungen definiert!\n"
 
-#: src/transport/plugin_transport_http_server.c:2437 src/util/service.c:696
+#: src/transport/plugin_transport_http_server.c:2436 src/util/service.c:696
 #, fuzzy, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Datei wurde als `%s' gespeichert.\n"
 
-#: src/transport/plugin_transport_http_server.c:2454 src/util/service.c:713
+#: src/transport/plugin_transport_http_server.c:2453 src/util/service.c:713
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "Fehler beim Binden an UDP Port %d.\n"
 
-#: src/transport/plugin_transport_http_server.c:2565
+#: src/transport/plugin_transport_http_server.c:2564
 #, c-format
 msgid "Found %u addresses to report to NAT service\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2637
+#: src/transport/plugin_transport_http_server.c:2636
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2724
+#: src/transport/plugin_transport_http_server.c:2729
 #, c-format
 msgid "IPv4 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2738
+#: src/transport/plugin_transport_http_server.c:2743
 #, c-format
 msgid "IPv6 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2745
+#: src/transport/plugin_transport_http_server.c:2750
 #, fuzzy
 msgid "Neither IPv4 nor IPv6 are enabled! Fix in configuration\n"
 msgstr "Netzwerkbekanntmachungen wurden per Konfiguration deaktiviert!\n"
 
-#: src/transport/plugin_transport_http_server.c:2756
+#: src/transport/plugin_transport_http_server.c:2761
 #, fuzzy
 msgid "Port is required! Fix in configuration\n"
 msgstr " gconfig\tGTK Konfiguration\n"
 
-#: src/transport/plugin_transport_http_server.c:2763
+#: src/transport/plugin_transport_http_server.c:2768
 #, fuzzy, c-format
 msgid "Using port %u\n"
 msgstr "Teste Transport(e) %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2778
+#: src/transport/plugin_transport_http_server.c:2783
 #, fuzzy, c-format
 msgid "Specific IPv4 address `%s' in configuration file is invalid!\n"
 msgstr ""
 "Sie müssen für `%s' in der Sektion `%s' der Konfigurationsdatei eine "
 "positive Zahl angeben.\n"
 
-#: src/transport/plugin_transport_http_server.c:2788
+#: src/transport/plugin_transport_http_server.c:2793
 #, fuzzy, c-format
 msgid "Binding to IPv4 address %s\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/transport/plugin_transport_http_server.c:2809
+#: src/transport/plugin_transport_http_server.c:2814
 #, fuzzy, c-format
 msgid "Specific IPv6 address `%s' in configuration file is invalid!\n"
 msgstr ""
 "Sie müssen für `%s' in der Sektion `%s' der Konfigurationsdatei eine "
 "positive Zahl angeben.\n"
 
-#: src/transport/plugin_transport_http_server.c:2819
+#: src/transport/plugin_transport_http_server.c:2824
 #, fuzzy, c-format
 msgid "Binding to IPv6 address %s\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/transport/plugin_transport_http_server.c:2871
+#: src/transport/plugin_transport_http_server.c:2876
 #, fuzzy, c-format
 msgid "Using external hostname `%s'\n"
 msgstr "Collection `%s' begonnen.\n"
 
-#: src/transport/plugin_transport_http_server.c:2887
+#: src/transport/plugin_transport_http_server.c:2892
 #, fuzzy, c-format
 msgid "Notifying transport only about hostname `%s'\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
@@ -7328,233 +7440,232 @@
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# Bytes verworfen von TCP (ausgehend)"
 
-#: src/transport/plugin_transport_tcp.c:576
+#: src/transport/plugin_transport_tcp.c:559
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:799
-#: src/transport/plugin_transport_tcp.c:980
-#: src/transport/plugin_transport_tcp.c:2120
-#: src/transport/plugin_transport_tcp.c:2723
+#: src/transport/plugin_transport_tcp.c:766
+#: src/transport/plugin_transport_tcp.c:930
+#: src/transport/plugin_transport_tcp.c:1973
+#: src/transport/plugin_transport_tcp.c:2527
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# Sitzungsschlüssel akzeptiert"
 
-#: src/transport/plugin_transport_tcp.c:836
-#: src/transport/plugin_transport_tcp.c:973
-#: src/transport/plugin_transport_tcp.c:1062
-#: src/transport/plugin_transport_tcp.c:1112
-#: src/transport/plugin_transport_tcp.c:1291
-#: src/transport/plugin_transport_tcp.c:1310
+#: src/transport/plugin_transport_tcp.c:797
+#: src/transport/plugin_transport_tcp.c:923
+#: src/transport/plugin_transport_tcp.c:1009
+#: src/transport/plugin_transport_tcp.c:1056
+#: src/transport/plugin_transport_tcp.c:1219
+#: src/transport/plugin_transport_tcp.c:1237
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# Bytes gesendet über TCP"
 
-#: src/transport/plugin_transport_tcp.c:840
+#: src/transport/plugin_transport_tcp.c:800
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# Bytes verworfen von TCP (ausgehend)"
 
-#: src/transport/plugin_transport_tcp.c:1066
+#: src/transport/plugin_transport_tcp.c:1012
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# Bytes verworfen von TCP (ausgehend)"
 
-#: src/transport/plugin_transport_tcp.c:1115
+#: src/transport/plugin_transport_tcp.c:1059
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# Bytes des Typs %d übertragen"
 
-#: src/transport/plugin_transport_tcp.c:1264
+#: src/transport/plugin_transport_tcp.c:1193
 #, c-format
 msgid "Trying to send with invalid session %p\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1521
-#: src/transport/plugin_transport_udp.c:1488
+#: src/transport/plugin_transport_tcp.c:1427
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1645
+#: src/transport/plugin_transport_tcp.c:1532
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2170
+#: src/transport/plugin_transport_tcp.c:2021
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_tcp.c:2355
+#: src/transport/plugin_transport_tcp.c:2189
 msgid "# bytes received via TCP"
 msgstr "# Bytes empfangen über TCP"
 
-#: src/transport/plugin_transport_tcp.c:2433
+#: src/transport/plugin_transport_tcp.c:2253
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2602 src/util/service.c:589
+#: src/transport/plugin_transport_tcp.c:2407 src/util/service.c:589
 #: src/util/service.c:595
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2616
+#: src/transport/plugin_transport_tcp.c:2421
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/transport/plugin_transport_tcp.c:2712
+#: src/transport/plugin_transport_tcp.c:2516
 #, fuzzy, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/transport/plugin_transport_tcp.c:2715
+#: src/transport/plugin_transport_tcp.c:2520
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2718
+#: src/transport/plugin_transport_tcp.c:2523
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:173
+#: src/transport/plugin_transport_udp_broadcasting.c:167
 #, fuzzy
 msgid "# IPv6 multicast HELLO beacons received via udp"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:222
+#: src/transport/plugin_transport_udp_broadcasting.c:210
 #, fuzzy
 msgid "# IPv4 broadcast HELLO beacons received via udp"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:606
+#: src/transport/plugin_transport_udp_broadcasting.c:594
 msgid ""
 "Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:629
+#: src/transport/plugin_transport_udp_broadcasting.c:617
 #, c-format
 msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1599
+#: src/transport/plugin_transport_udp.c:1406
 #, c-format
 msgid ""
 "Trying to create session for address of unexpected length %u (should be %u "
 "or %u)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2680
+#: src/transport/plugin_transport_udp.c:2474
 #, c-format
 msgid ""
 "UDP could not transmit message to `%s': Network seems down, please check "
 "your network configuration\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2694
+#: src/transport/plugin_transport_udp.c:2488
 msgid ""
 "UDP could not transmit IPv6 message! Please check your network configuration "
 "and disable IPv6 if your connection does not have a global IPv6 address\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2993
+#: src/transport/plugin_transport_udp.c:2817
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "Fehler beim Binden an UDP6 Port %d.\n"
 
-#: src/transport/plugin_transport_udp.c:3091
+#: src/transport/plugin_transport_udp.c:2912
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:3134
+#: src/transport/plugin_transport_udp.c:2951
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/transport/plugin_transport_udp.c:3200
+#: src/transport/plugin_transport_udp.c:3021
 #, fuzzy
 msgid "Failed to create network sockets, plugin failed\n"
 msgstr "Namespace `%s' konnte nicht erstellt werden (existiert bereits?).\n"
 
-#: src/transport/plugin_transport_unix.c:1657
+#: src/transport/plugin_transport_unix.c:1624
 #, fuzzy
 msgid "Failed to open UNIX listen socket\n"
 msgstr "Datei wurde als `%s' gespeichert.\n"
 
-#: src/transport/plugin_transport_wlan.c:623
+#: src/transport/plugin_transport_wlan.c:625
 msgid "# WLAN ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:642
+#: src/transport/plugin_transport_wlan.c:644
 #, fuzzy
 msgid "# WLAN messages defragmented"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/plugin_transport_wlan.c:691
-#: src/transport/plugin_transport_wlan.c:778
-#: src/transport/plugin_transport_wlan.c:1937
+#: src/transport/plugin_transport_wlan.c:693
+#: src/transport/plugin_transport_wlan.c:780
+#: src/transport/plugin_transport_wlan.c:1952
 #, fuzzy
 msgid "# WLAN sessions allocated"
 msgstr "# Sitzungsschlüssel akzeptiert"
 
-#: src/transport/plugin_transport_wlan.c:883
+#: src/transport/plugin_transport_wlan.c:886
 #, fuzzy
 msgid "# WLAN message fragments sent"
 msgstr "# fragmentierter Nachrichten"
 
-#: src/transport/plugin_transport_wlan.c:907
+#: src/transport/plugin_transport_wlan.c:910
 msgid "# WLAN messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1015
-#: src/transport/plugin_transport_wlan.c:1101
-#: src/transport/plugin_transport_wlan.c:1939
+#: src/transport/plugin_transport_wlan.c:1018
+#: src/transport/plugin_transport_wlan.c:1105
+#: src/transport/plugin_transport_wlan.c:1954
 #, fuzzy
 msgid "# WLAN MAC endpoints allocated"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/transport/plugin_transport_wlan.c:1297
+#: src/transport/plugin_transport_wlan.c:1301
 #, fuzzy
 msgid "# HELLO messages received via WLAN"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_wlan.c:1323
+#: src/transport/plugin_transport_wlan.c:1325
 #, fuzzy
 msgid "# fragments received via WLAN"
 msgstr "# verworfener Nachrichten"
 
-#: src/transport/plugin_transport_wlan.c:1333
+#: src/transport/plugin_transport_wlan.c:1335
 #, fuzzy
 msgid "# ACKs received via WLAN"
 msgstr "# Bytes empfangen über TCP"
 
-#: src/transport/plugin_transport_wlan.c:1390
+#: src/transport/plugin_transport_wlan.c:1395
 #, fuzzy
 msgid "# WLAN DATA messages discarded due to CRC32 error"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/plugin_transport_wlan.c:1511
+#: src/transport/plugin_transport_wlan.c:1517
 #, fuzzy
 msgid "# DATA messages received via WLAN"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_wlan.c:1546
+#: src/transport/plugin_transport_wlan.c:1552
 #, fuzzy
 msgid "# WLAN DATA messages processed"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_wlan.c:1609
+#: src/transport/plugin_transport_wlan.c:1620
 #, fuzzy
 msgid "# HELLO beacons sent via WLAN"
 msgstr "# Bytes gesendet über UDP"
 
-#: src/transport/plugin_transport_wlan.c:1722
+#: src/transport/plugin_transport_wlan.c:1733
 msgid "WLAN address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1918
+#: src/transport/plugin_transport_wlan.c:1933
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run WLAN transport\n"
 msgstr ""
@@ -8023,6 +8134,28 @@
 msgid "Use build-in GNUnet stub resolver"
 msgstr ""
 
+#: src/util/gnunet-scrypt.c:279
+msgid "number of bits to require for the proof of work"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:282
+msgid "file with private key, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:285
+msgid "file with proof of work, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:288
+msgid "time to wait between calculations"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:299
+#, fuzzy
+msgid "Manipulate GNUnet proof of work files"
+msgstr ""
+"Einen Wert aus der Konfigurationsdatei auf der Standardausgabe ausgeben"
+
 #: src/util/gnunet-service-resolver.c:283
 #, fuzzy, c-format
 msgid "Could not resolve `%s' (%s): %s\n"
@@ -8297,114 +8430,114 @@
 msgid "b"
 msgstr "b"
 
-#: src/util/strings.c:444
+#: src/util/strings.c:433
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
 msgstr ""
 
-#: src/util/strings.c:572
+#: src/util/strings.c:561
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 
-#: src/util/strings.c:669
+#: src/util/strings.c:658
 msgid "µs"
 msgstr ""
 
-#: src/util/strings.c:673
+#: src/util/strings.c:662
 msgid "forever"
 msgstr ""
 
-#: src/util/strings.c:675
+#: src/util/strings.c:664
 msgid "0 ms"
 msgstr ""
 
-#: src/util/strings.c:681
+#: src/util/strings.c:670
 msgid "ms"
 msgstr "ms"
 
-#: src/util/strings.c:687
+#: src/util/strings.c:676
 msgid "s"
 msgstr "s"
 
-#: src/util/strings.c:693
+#: src/util/strings.c:682
 msgid "m"
 msgstr "m"
 
-#: src/util/strings.c:699
+#: src/util/strings.c:688
 msgid "h"
 msgstr "h"
 
-#: src/util/strings.c:706
+#: src/util/strings.c:695
 #, fuzzy
 msgid "day"
 msgstr " Tage"
 
-#: src/util/strings.c:708
+#: src/util/strings.c:697
 #, fuzzy
 msgid "days"
 msgstr " Tage"
 
-#: src/util/strings.c:737
+#: src/util/strings.c:726
 msgid "end of time"
 msgstr ""
 
-#: src/util/strings.c:1170
+#: src/util/strings.c:1159
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
 
-#: src/util/strings.c:1178
+#: src/util/strings.c:1167
 msgid "IPv6 address did contain ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1184
+#: src/util/strings.c:1173
 msgid "IPv6 address did contain ']' before ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1191
+#: src/util/strings.c:1180
 msgid "IPv6 address did contain a valid port number after the last ':'\n"
 msgstr ""
 
-#: src/util/strings.c:1200
+#: src/util/strings.c:1189
 #, fuzzy, c-format
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/util/strings.c:1406 src/util/strings.c:1422
+#: src/util/strings.c:1395 src/util/strings.c:1411
 msgid "Port not in range\n"
 msgstr ""
 
-#: src/util/strings.c:1431
+#: src/util/strings.c:1420
 #, fuzzy, c-format
 msgid "Malformed port policy `%s'\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/util/strings.c:1514 src/util/strings.c:1545 src/util/strings.c:1593
-#: src/util/strings.c:1614
+#: src/util/strings.c:1503 src/util/strings.c:1534 src/util/strings.c:1582
+#: src/util/strings.c:1603
 #, c-format
 msgid "Invalid format for IP: `%s'\n"
 msgstr "Ungültiges Format für IP: `%s'\n"
 
-#: src/util/strings.c:1571
+#: src/util/strings.c:1560
 #, c-format
 msgid "Invalid network notation ('/%d' is not legal in IPv4 CIDR)."
 msgstr "Ungültige Netzwerk Notation ('/%d ist nicht gültig in IPv4 CIDR)."
 
-#: src/util/strings.c:1623
+#: src/util/strings.c:1612
 #, fuzzy, c-format
 msgid "Invalid format: `%s'\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/util/strings.c:1675
+#: src/util/strings.c:1664
 #, c-format
 msgid "Invalid network notation (does not end with ';': `%s')\n"
 msgstr "Ungültige Netzwerk Notation (endet nicht mit ';': `%s')\n"
 
-#: src/util/strings.c:1725
+#: src/util/strings.c:1714
 #, fuzzy, c-format
 msgid "Wrong format `%s' for netmask\n"
 msgstr "Falsches Format `%s' für Netzmaske: %s\n"
 
-#: src/util/strings.c:1756
+#: src/util/strings.c:1745
 #, fuzzy, c-format
 msgid "Wrong format `%s' for network\n"
 msgstr "Falsches Format `%s' für Netzwerk: %s\n"
@@ -8610,6 +8743,26 @@
 msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. Fehler: %s\n"
 
 #, fuzzy
+#~ msgid "provide information about a particular channel"
+#~ msgstr "Informationen über andere GNUnet Knoten ausgeben."
+
+#, fuzzy
+#~ msgid "provide information about a particular connection"
+#~ msgstr "Informationen über andere GNUnet Knoten ausgeben."
+
+#, fuzzy
+#~ msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
+#~ msgstr "Informationen über andere GNUnet Knoten ausgeben."
+
+#, fuzzy
+#~ msgid "Could not find option `%s:%s' in configuration.\n"
+#~ msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n"
+
+#, fuzzy
+#~ msgid "Peer `%s' disconnected\n"
+#~ msgstr "# verbundener Knoten"
+
+#, fuzzy
 #~ msgid "Transport plugin: `%s' port %llu\n"
 #~ msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
@@ -9207,10 +9360,6 @@
 #~ "in der Konfigurationsdatei an.\n"
 
 #, fuzzy
-#~ msgid "Failed to start `gnunet-peerinfo' process.\n"
-#~ msgstr "Fehler beim Starten der Collection.\n"
-
-#, fuzzy
 #~ msgid "Failed to start `ssh' process.\n"
 #~ msgstr "Fehler beim Starten der Collection.\n"
 
@@ -12537,9 +12686,6 @@
 #~ "%s\n"
 #~ "\n"
 
-#~ msgid "Invalid argument for `%s' at %s:%d.\n"
-#~ msgstr "Ungültiger Parameter für `%s' bei %s:%d.\n"
-
 #~ msgid "g"
 #~ msgstr "g"
 

Modified: gnunet/po/es.po
===================================================================
--- gnunet/po/es.po     2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/po/es.po     2014-01-20 19:08:47 UTC (rev 31956)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gnunet 0.9.5a\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2014-01-05 13:20+0100\n"
+"POT-Creation-Date: 2014-01-14 18:39+0100\n"
 "PO-Revision-Date: 2013-02-23 17:50+0100\n"
 "Last-Translator: Miguel Ángel Arruga Vivas <address@hidden>\n"
 "Language-Team: Spanish <address@hidden>\n"
@@ -382,8 +382,8 @@
 msgid "Received last message for %s \n"
 msgstr "Recibido último mensaje para %s\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:1948
-#: src/ats/gnunet-service-ats_addresses.c:1992
+#: src/ats/gnunet-service-ats_addresses.c:1974
+#: src/ats/gnunet-service-ats_addresses.c:2018
 #, c-format
 msgid ""
 "Could not load quota for network `%s':  `%s', assigning default bandwidth "
@@ -393,12 +393,12 @@
 "de banda predeterminado %llu\n"
 
 # Miguel: "Outbound" lo he traducido como salida en todo el texto.
-#: src/ats/gnunet-service-ats_addresses.c:1955
+#: src/ats/gnunet-service-ats_addresses.c:1981
 #, c-format
 msgid "Outbound quota configure for network `%s' is %llu\n"
 msgstr "La cuota de salida configurada para la red «%s» es %llu\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:1963
+#: src/ats/gnunet-service-ats_addresses.c:1989
 #, c-format
 msgid ""
 "No outbound quota configured for network `%s', assigning default bandwidth "
@@ -408,12 +408,12 @@
 "de banda predeterminado %llu\n"
 
 # Miguel: "Inbound" lo he traducido como entrada en todo el texto.
-#: src/ats/gnunet-service-ats_addresses.c:1999
+#: src/ats/gnunet-service-ats_addresses.c:2025
 #, c-format
 msgid "Inbound quota configured for network `%s' is %llu\n"
 msgstr "La cuota de entrada configurada para la red «%s» es %llu\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:2007
+#: src/ats/gnunet-service-ats_addresses.c:2033
 #, c-format
 msgid ""
 "No outbound quota configure for network `%s', assigning default bandwidth "
@@ -422,17 +422,17 @@
 "No hay configurada una cuota de salida para la red «%s», asignando el ancho "
 "de banda predeterminado %llu\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:2184
+#: src/ats/gnunet-service-ats_addresses.c:2211
 #, c-format
 msgid "Initializing solver `%s '`%s'\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2187
+#: src/ats/gnunet-service-ats_addresses.c:2214
 #, fuzzy, c-format
 msgid "Failed to initialize solver `%s'!\n"
 msgstr "¡No se puede inicializar el resolvedor!\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:2210
+#: src/ats/gnunet-service-ats_addresses.c:2237
 #, fuzzy
 msgid "Failed to initialize solver!\n"
 msgstr "¡No se puede inicializar el resolvedor!\n"
@@ -525,12 +525,12 @@
 msgstr "Cuota para la red «%11s» (entrada/salida): %10s / %10s\n"
 
 #: src/ats-tool/gnunet-ats.c:352 src/namestore/gnunet-namestore.c:550
-#: src/transport/gnunet-transport.c:829
+#: src/transport/gnunet-transport.c:940
 #, c-format
 msgid "Service `%s' is not running\n"
 msgstr "El servicio «%s» no está ejecutandose\n"
 
-#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:838
+#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:949
 #, c-format
 msgid "Failed to parse peer identity `%s'\n"
 msgstr "Se produjo un fallo al procesar la identidad del par «%s»\n"
@@ -619,6 +619,7 @@
 msgstr "Imprime información acerca del estado del ATS"
 
 #: src/consensus/gnunet-consensus-profiler.c:420
+#: src/secretsharing/gnunet-secretsharing-profiler.c:300
 msgid "number of peers in consensus"
 msgstr "número de pares en consenso"
 
@@ -639,6 +640,7 @@
 msgstr "plazo de consenso"
 
 #: src/consensus/gnunet-consensus-profiler.c:432
+#: src/secretsharing/gnunet-secretsharing-profiler.c:309
 msgid "be more verbose (print received values)"
 msgstr ""
 
@@ -649,256 +651,261 @@
 msgstr ""
 "El cliente se desconectó del servicio principal, tratando de reconectar.\n"
 
-#: src/conversation/gnunet-conversation.c:252
+#: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept #%u or /cancel %u the call.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:274
+#: src/conversation/gnunet-conversation.c:286
 #, c-format
 msgid "Call from `%s' terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:307
+#: src/conversation/gnunet-conversation.c:319
 #, c-format
 msgid "Call from `%s' suspended by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:312
+#: src/conversation/gnunet-conversation.c:324
 #, c-format
 msgid "Call from `%s' resumed by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:330
+#: src/conversation/gnunet-conversation.c:342
 #, c-format
 msgid "Ego `%s' no longer available, phone is now down.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:344
+#: src/conversation/gnunet-conversation.c:356
 #, fuzzy
 msgid "Failed to setup phone (internal error)\n"
 msgstr "¡Se produjo un fallo al configurar el túnel mesh!\n"
 
-#: src/conversation/gnunet-conversation.c:356
+#: src/conversation/gnunet-conversation.c:368
 #, c-format
 msgid ""
 "Phone active on line %u.  Type `/help' for a list of available commands\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:378
+#: src/conversation/gnunet-conversation.c:390
 #, c-format
 msgid "Resolved address of `%s'. Now ringing other party.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:385
+#: src/conversation/gnunet-conversation.c:397
 #, fuzzy, c-format
 msgid "Connection established to `%s'\n"
 msgstr "'%s' falló en %s: %d con error: '%s'.\n"
 
-#: src/conversation/gnunet-conversation.c:392
+#: src/conversation/gnunet-conversation.c:404
 #, fuzzy, c-format
 msgid "Failed to resolve `%s'\n"
 msgstr "Se produjo un fallo al resolver «%s»: %s\n"
 
-#: src/conversation/gnunet-conversation.c:399
+#: src/conversation/gnunet-conversation.c:411
 msgid "Call terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:405
+#: src/conversation/gnunet-conversation.c:417
 #, c-format
 msgid "Connection to `%s' suspended (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:411
+#: src/conversation/gnunet-conversation.c:423
 #, c-format
 msgid "Connection to `%s' resumed (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:416
+#: src/conversation/gnunet-conversation.c:428
 msgid "Error with the call, restarting it\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:483
+#: src/conversation/gnunet-conversation.c:495
 #, c-format
 msgid "Unknown command `%s'\n"
 msgstr "Comando desconocido «%s»\n"
 
-#: src/conversation/gnunet-conversation.c:499
-#: src/conversation/gnunet-conversation.c:513
+#: src/conversation/gnunet-conversation.c:511
+#: src/conversation/gnunet-conversation.c:525
 #, c-format
 msgid "Ego `%s' not available\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:506
-#: src/conversation/gnunet-conversation.c:563
+#: src/conversation/gnunet-conversation.c:518
+#: src/conversation/gnunet-conversation.c:575
 msgid "You are calling someone else already, hang up first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:521
-#: src/conversation/gnunet-conversation.c:576
+#: src/conversation/gnunet-conversation.c:533
+#: src/conversation/gnunet-conversation.c:588
 #, c-format
 msgid "You are answering call from `%s', hang up or suspend that call first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:532
+#: src/conversation/gnunet-conversation.c:544
 msgid "Call recipient missing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:587
+#: src/conversation/gnunet-conversation.c:599
 msgid "There is no incoming call to accept here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:604
+#: src/conversation/gnunet-conversation.c:616
 #, c-format
 msgid "There is no incoming call `%s' to accept right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:632
+#: src/conversation/gnunet-conversation.c:644
 msgid "We currently do not have an address.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:655
+#: src/conversation/gnunet-conversation.c:667
 #, c-format
 msgid "We are currently trying to locate the private key for the ego `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:660
+#: src/conversation/gnunet-conversation.c:672
 #, c-format
 msgid "We are listening for incoming calls for ego `%s' on line %u.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:666
-#: src/conversation/gnunet-conversation.c:690
+#: src/conversation/gnunet-conversation.c:678
+#: src/conversation/gnunet-conversation.c:702
 #, c-format
 msgid "You are having a conversation with `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:671
+#: src/conversation/gnunet-conversation.c:683
 msgid ""
 "We had an internal error setting up our phone line. You can still make "
 "calls.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:680
+#: src/conversation/gnunet-conversation.c:692
 #, fuzzy, c-format
 msgid "We are trying to find the network address to call `%s'.\n"
 msgstr "Detectada dirección de la red interna «%s».\n"
 
-#: src/conversation/gnunet-conversation.c:685
+#: src/conversation/gnunet-conversation.c:697
 #, c-format
 msgid "We are calling `%s', his phone should be ringing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:704
+#: src/conversation/gnunet-conversation.c:716
 msgid "Calls waiting:\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:710
+#: src/conversation/gnunet-conversation.c:722
 #, fuzzy, c-format
 msgid "#%u: `%s'\n"
 msgstr "Par «%s»\n"
 
-#: src/conversation/gnunet-conversation.c:738
-#: src/conversation/gnunet-conversation.c:753
+#: src/conversation/gnunet-conversation.c:750
+#: src/conversation/gnunet-conversation.c:765
 msgid "There is no call that could be suspended right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:786
-#: src/conversation/gnunet-conversation.c:802
+#: src/conversation/gnunet-conversation.c:798
+#: src/conversation/gnunet-conversation.c:814
 msgid "There is no call that could be resumed right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:809
+#: src/conversation/gnunet-conversation.c:821
 #, c-format
 msgid "Already talking with `%s', cannot resume a call right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:818
+#: src/conversation/gnunet-conversation.c:830
 msgid "There is no incoming call to resume here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:835
+#: src/conversation/gnunet-conversation.c:847
 #, c-format
 msgid "There is no incoming call `%s' to resume right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:870
+#: src/conversation/gnunet-conversation.c:882
 msgid "There is no call that could be cancelled right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:878
+#: src/conversation/gnunet-conversation.c:890
 msgid "There is no incoming call to refuse here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:895
+#: src/conversation/gnunet-conversation.c:907
 #, c-format
 msgid "There is no incoming call `%s' to refuse right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:922
+#: src/conversation/gnunet-conversation.c:934
 msgid "Use `/address' to find out which address this phone should have in GNS"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:924
+#: src/conversation/gnunet-conversation.c:936
 msgid "Use `/call USER.gnu' to call USER"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:926
+#: src/conversation/gnunet-conversation.c:938
 msgid "Use `/accept #NUM' to accept incoming call #NUM"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:928
+#: src/conversation/gnunet-conversation.c:940
 msgid "Use `/suspend' to suspend the active call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:930
+#: src/conversation/gnunet-conversation.c:942
 msgid ""
 "Use `/resume [#NUM]' to resume a call, #NUM is needed to resume incoming "
 "calls, no argument is needed to resume the current outgoing call."
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:932
+#: src/conversation/gnunet-conversation.c:944
 msgid "Use `/cancel' to reject or terminate a call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:934
+#: src/conversation/gnunet-conversation.c:946
 #, fuzzy
 msgid "Use `/status' to print status information"
 msgstr "ser prolijo (imprime información de progreso)"
 
-#: src/conversation/gnunet-conversation.c:936
+#: src/conversation/gnunet-conversation.c:948
 #, fuzzy
 msgid "Use `/quit' to terminate gnunet-conversation"
 msgstr "Use «/quit» para finalizar «gnunet-chat»"
 
-#: src/conversation/gnunet-conversation.c:938
+#: src/conversation/gnunet-conversation.c:950
 msgid "Use `/help command' to get help for a specific command"
 msgstr "Use «/help comando» para obtener ayuda sobre un comando específico"
 
-#: src/conversation/gnunet-conversation.c:1093
+#: src/conversation/gnunet-conversation.c:1148
 #, fuzzy, c-format
 msgid "Name of our ego changed to `%s'\n"
 msgstr "Se produjo un fallo al crear la página para «%s»\n"
 
-#: src/conversation/gnunet-conversation.c:1106
+#: src/conversation/gnunet-conversation.c:1161
 #, fuzzy, c-format
 msgid "Our ego `%s' was deleted!\n"
 msgstr "El pseudónimo '%s' fue borrado.\n"
 
-#: src/conversation/gnunet-conversation.c:1141
+#: src/conversation/gnunet-conversation.c:1196
 #, fuzzy
 msgid "You must specify the NAME of an ego to use\n"
 msgstr "Debes especificar un fichero a inspeccionar.\n"
 
-#: src/conversation/gnunet-conversation.c:1167
+#: src/conversation/gnunet-conversation.c:1220
+#, fuzzy
+msgid "Failed to start gnunet-helper-w32-console\n"
+msgstr "Se produjo un fallo al iniciar el proceso «gnunet-peerinfo».\n"
+
+#: src/conversation/gnunet-conversation.c:1246
 msgid "sets the NAME of the ego to use for the phone (and name resolution)"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1170
+#: src/conversation/gnunet-conversation.c:1249
 msgid "sets the LINE to use for the phone"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1185
+#: src/conversation/gnunet-conversation.c:1273
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
@@ -940,13 +947,13 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:211
-#: src/conversation/gnunet-helper-audio-record.c:362
+#: src/conversation/gnunet-helper-audio-record.c:365
 #, fuzzy
 msgid "Connection established.\n"
 msgstr "Colección detenida.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:216
-#: src/conversation/gnunet-helper-audio-record.c:367
+#: src/conversation/gnunet-helper-audio-record.c:370
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s\n"
 msgstr "stadísticas (%s) falló: %s\n"
@@ -957,37 +964,37 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:243
-#: src/conversation/gnunet-helper-audio-record.c:393
+#: src/conversation/gnunet-helper-audio-record.c:396
 #, fuzzy, c-format
 msgid "Connection failure: %s\n"
 msgstr "'%s' falló en %s: %d con error: '%s'.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:264
-#: src/conversation/gnunet-helper-audio-record.c:416
+#: src/conversation/gnunet-helper-audio-record.c:419
 #, fuzzy
 msgid "Wrong Spec\n"
 msgstr "Servicio principal (CORE) erróneo\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:270
-#: src/conversation/gnunet-helper-audio-record.c:422
+#: src/conversation/gnunet-helper-audio-record.c:425
 #, fuzzy
 msgid "pa_mainloop_new() failed.\n"
 msgstr "La operación ha fallado.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:284
-#: src/conversation/gnunet-helper-audio-record.c:437
+#: src/conversation/gnunet-helper-audio-record.c:440
 #, fuzzy
 msgid "pa_context_new() failed.\n"
 msgstr "La operación ha fallado.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:291
-#: src/conversation/gnunet-helper-audio-record.c:443
+#: src/conversation/gnunet-helper-audio-record.c:446
 #, fuzzy, c-format
 msgid "pa_context_connect() failed: %s\n"
 msgstr "# reconexiones rápidas fallidas"
 
 #: src/conversation/gnunet-helper-audio-playback.c:297
-#: src/conversation/gnunet-helper-audio-record.c:449
+#: src/conversation/gnunet-helper-audio-record.c:452
 #, fuzzy
 msgid "pa_mainloop_run() failed.\n"
 msgstr "La operación ha fallado.\n"
@@ -997,46 +1004,51 @@
 msgid "Read error from STDIN: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:237
+#: src/conversation/gnunet-helper-audio-playback-gst.c:341
+#, c-format
+msgid "Read error from STDIN: %d %s\n"
+msgstr ""
+
+#: src/conversation/gnunet-helper-audio-record.c:240
 #, fuzzy, c-format
 msgid "pa_stream_peek() failed: %s\n"
 msgstr "stadísticas (%s) falló: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:275
+#: src/conversation/gnunet-helper-audio-record.c:278
 msgid "Got signal, exiting.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:300
+#: src/conversation/gnunet-helper-audio-record.c:303
 #, fuzzy
 msgid "Stream successfully created.\n"
 msgstr "Conectado satisfactoriamente a «%s»\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:305
+#: src/conversation/gnunet-helper-audio-record.c:308
 #, fuzzy, c-format
 msgid "pa_stream_get_buffer_attr() failed: %s\n"
 msgstr "stadísticas (%s) falló: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:313
+#: src/conversation/gnunet-helper-audio-record.c:316
 #, c-format
 msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:317
+#: src/conversation/gnunet-helper-audio-record.c:320
 #, c-format
 msgid "Using sample spec '%s', channel map '%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:324
+#: src/conversation/gnunet-helper-audio-record.c:327
 #, fuzzy, c-format
 msgid "Connected to device %s (%u, %ssuspended).\n"
 msgstr "Conectado a %s.\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:333
+#: src/conversation/gnunet-helper-audio-record.c:336
 #, c-format
 msgid "Stream error: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:380
+#: src/conversation/gnunet-helper-audio-record.c:383
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s\n"
 msgstr "No se pudo borrar el registro: %s\n"
@@ -1082,16 +1094,16 @@
 msgstr "Par «%s»\n"
 
 #: src/core/gnunet-core.c:110 src/core/gnunet-core.c:138
-#: src/transport/gnunet-transport.c:609 src/transport/gnunet-transport.c:634
+#: src/transport/gnunet-transport.c:630 src/transport/gnunet-transport.c:650
 #, c-format
 msgid "%24s: %-17s %4s   (%u connections in total)\n"
 msgstr "%24s: %-17s %4s   (%u conexiones en total)\n"
 
-#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:611
+#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:631
 msgid "Connected to"
 msgstr "Conectado a"
 
-#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:636
+#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:651
 msgid "Disconnected from"
 msgstr "Desconectado de"
 
@@ -1101,7 +1113,7 @@
 msgstr "Parámetro no válido «%s» en la línea de comandos\n"
 
 # Miguel: ¿Quizá continuamente fuese mejor?
-#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1028
+#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1127
 msgid "provide information about all current connections (continuously)"
 msgstr ""
 "provee información sobre todas las conexiones actuales (de forma continua)"
@@ -1172,7 +1184,7 @@
 msgstr "# mensajes «SET_KEY» descifrados"
 
 #: src/core/gnunet-service-core_kx.c:950
-#: src/transport/gnunet-service-transport_validation.c:974
+#: src/transport/gnunet-service-transport_validation.c:968
 msgid "# PING messages received"
 msgstr "# mensajes PING recibidos"
 
@@ -1203,7 +1215,7 @@
 msgstr "# mensajes «keepalive» enviados"
 
 #: src/core/gnunet-service-core_kx.c:1095
-#: src/transport/gnunet-service-transport_validation.c:1285
+#: src/transport/gnunet-service-transport_validation.c:1280
 msgid "# PONG messages received"
 msgstr "# mensajes PONG recibidos"
 
@@ -1299,11 +1311,11 @@
 #: src/fs/gnunet-service-fs_cp.c:604 src/fs/gnunet-service-fs_cp.c:1499
 #: src/topology/gnunet-daemon-topology.c:706
 #: src/topology/gnunet-daemon-topology.c:807
-#: src/transport/gnunet-service-transport_neighbours.c:929
-#: src/transport/gnunet-service-transport_neighbours.c:1161
-#: src/transport/gnunet-service-transport_neighbours.c:1170
-#: src/transport/gnunet-service-transport_neighbours.c:3015
-#: src/transport/gnunet-service-transport_neighbours.c:3291
+#: src/transport/gnunet-service-transport_neighbours.c:837
+#: src/transport/gnunet-service-transport_neighbours.c:1069
+#: src/transport/gnunet-service-transport_neighbours.c:1078
+#: src/transport/gnunet-service-transport_neighbours.c:2920
+#: src/transport/gnunet-service-transport_neighbours.c:3181
 msgid "# peers connected"
 msgstr "# pares conectados"
 
@@ -1378,6 +1390,9 @@
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:52
+#: src/testbed/generate-underlay-topology.c:47
+#: src/testbed/gnunet-daemon-latency-logger.c:52
+#: src/testbed/gnunet-daemon-testbed-underlay.c:55
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
 #: src/include/gnunet_common.h:602 src/include/gnunet_common.h:611
 #: src/scalarproduct/scalarproduct.h:61
@@ -1713,6 +1728,9 @@
 msgstr "Base de datos Postgres ejecutándose\n"
 
 #: src/datastore/plugin_datastore_sqlite.c:57
+#: src/testbed/generate-underlay-topology.c:50
+#: src/testbed/gnunet-daemon-latency-logger.c:55
+#: src/testbed/gnunet-daemon-testbed-underlay.c:58
 #, c-format
 msgid "`%s' failed at %s:%u with error: %s"
 msgstr "«%s» falló en %s:%u con el error: %s"
@@ -3442,7 +3460,7 @@
 msgstr "La opción «%s» es obligatoria cuando se usa la opción «%s».\n"
 
 #: src/fs/gnunet-publish.c:778 src/fs/gnunet-publish.c:785
-#: src/transport/gnunet-transport.c:865 src/transport/gnunet-transport.c:899
+#: src/transport/gnunet-transport.c:977 src/transport/gnunet-transport.c:1007
 #, c-format
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr "La opción «%s» no tiene sentido sin la opción «%s».\n"
@@ -4096,8 +4114,8 @@
 #: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
 #: src/hostlist/hostlist-client.c:871 src/hostlist/hostlist-client.c:963
 #: src/hostlist/hostlist-client.c:968
-#: src/transport/plugin_transport_http_client.c:1070
-#: src/transport/plugin_transport_http_client.c:1085
+#: src/transport/plugin_transport_http_client.c:1062
+#: src/transport/plugin_transport_http_client.c:1077
 #, c-format
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "%s falló en %s:%d: «%s».\n"
@@ -4401,39 +4419,39 @@
 msgid "Modified %u addresses \n"
 msgstr ""
 
-#: src/hello/hello.c:943
+#: src/hello/hello.c:944
 msgid "Failed to parse HELLO message: missing expiration time\n"
 msgstr ""
 "Se produjo un fallo al procesar un mensaje «HELLO»: falta el tiempo de "
 "expiración\n"
 
-#: src/hello/hello.c:952
+#: src/hello/hello.c:953
 msgid "Failed to parse HELLO message: invalid expiration time\n"
 msgstr ""
 "Se produjo un fallo al procesar un mensaje «HELLO»: tiempo de expiración no "
 "válido\n"
 
-#: src/hello/hello.c:962
+#: src/hello/hello.c:963
 msgid "Failed to parse HELLO message: malformed\n"
 msgstr "Se produjo un fallo al procesar un mensaje «HELLO»: mal formado\n"
 
-#: src/hello/hello.c:972
+#: src/hello/hello.c:973
 msgid "Failed to parse HELLO message: missing transport plugin\n"
 msgstr ""
 "Se produjo un fallo al procesar un mensaje «HELLO»: falta el módulo de "
 "transporte\n"
 
-#: src/hello/hello.c:989
+#: src/hello/hello.c:990
 #, c-format
 msgid "Plugin `%s' not found\n"
 msgstr "Módulo «%s» no encontrado\n"
 
-#: src/hello/hello.c:998
+#: src/hello/hello.c:999
 #, c-format
 msgid "Plugin `%s' does not support URIs yet\n"
 msgstr "El módulo «%s» no soporta URI todavía\n"
 
-#: src/hello/hello.c:1017
+#: src/hello/hello.c:1018
 #, c-format
 msgid "Failed to parse `%s' as an address for plugin `%s'\n"
 msgstr ""
@@ -4697,7 +4715,7 @@
 "Los mensajes de anuncio no pudieron encolarse por el servicio principal\n"
 
 #: src/hostlist/hostlist-server.c:556 src/peerinfo-tool/gnunet-peerinfo.c:651
-#: src/transport/gnunet-service-transport.c:946
+#: src/transport/gnunet-service-transport.c:867
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 "No se pudo acceder al servicio de información de pares (PEERINFO).  "
@@ -4818,50 +4836,34 @@
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Se produjo un fallo al leer el directorio «%s»\n"
 
-#: src/mesh/gnunet-mesh.c:342
+#: src/mesh/gnunet-mesh.c:343
 #, fuzzy, c-format
 msgid "Invalid target `%s'\n"
 msgstr "Parámetro no válido «%s»\n"
 
-#: src/mesh/gnunet-mesh.c:503
+#: src/mesh/gnunet-mesh.c:521
 #, fuzzy, c-format
 msgid "Invalid tunnel owner `%s'\n"
 msgstr "Formato de tiempo no válido «%s»\n"
 
-#: src/mesh/gnunet-mesh.c:568
+#: src/mesh/gnunet-mesh.c:586
 msgid "You must NOT give a TARGET when using options\n"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:645
-#, fuzzy
-msgid "provide information about a particular channel"
-msgstr "proveer información acerca de un túnel en particular"
-
-#: src/mesh/gnunet-mesh.c:648
-#, fuzzy
-msgid "provide information about a particular connection"
-msgstr "proveer información acerca de un túnel en particular"
-
-#: src/mesh/gnunet-mesh.c:651
+#: src/mesh/gnunet-mesh.c:669
 msgid "activate echo mode"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:654
+#: src/mesh/gnunet-mesh.c:672
 #, fuzzy
 msgid "provide information about all tunnels"
 msgstr "proveer información acerca de un túnel en particular"
 
-#: src/mesh/gnunet-mesh.c:657
-msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
-msgstr ""
-"proveer información acerca de todos los túneles (de forma continua) SIN "
-"IMPLEMENTAR"
-
-#: src/mesh/gnunet-mesh.c:660
+#: src/mesh/gnunet-mesh.c:678
 msgid "port to listen to (default; 0)"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:663
+#: src/mesh/gnunet-mesh.c:681
 msgid "provide information about a particular tunnel"
 msgstr "proveer información acerca de un túnel en particular"
 
@@ -4984,7 +4986,7 @@
 msgstr "borrar"
 
 #: src/namestore/gnunet-namestore.c:715
-#: src/peerinfo-tool/gnunet-peerinfo.c:703
+#: src/peerinfo-tool/gnunet-peerinfo.c:702
 #, c-format
 msgid "Invalid URI `%s'\n"
 msgstr "URI no válida: «%s»\n"
@@ -5161,54 +5163,54 @@
 msgid "NAT traversal with ICMP Server timed out.\n"
 msgstr "Recorrido NAT con servidor ICMP expirado.\n"
 
-#: src/nat/nat_auto.c:200
+#: src/nat/nat_auto.c:203
 msgid "NAT traversal with ICMP Server succeeded.\n"
 msgstr "Recorrido NAT con servidor ICMP satisfactorio.\n"
 
-#: src/nat/nat_auto.c:201
+#: src/nat/nat_auto.c:204
 msgid "NAT traversal with ICMP Server failed.\n"
 msgstr "Recorrido NAT con servidor ICMP fallido.\n"
 
-#: src/nat/nat_auto.c:222
+#: src/nat/nat_auto.c:225
 msgid "Testing connection reversal with ICMP server.\n"
 msgstr "Probando conexión inversa con el servidor ICMP.\n"
 
-#: src/nat/nat_auto.c:269
+#: src/nat/nat_auto.c:274
 #, c-format
 msgid "Detected external IP `%s'\n"
 msgstr "Detectada IP externa «%s»\n"
 
-#: src/nat/nat_auto.c:339
+#: src/nat/nat_auto.c:344
 msgid "This system has a global IPv6 address, setting IPv6 to supported.\n"
 msgstr ""
 "Este sistema tiene una dirección IPv6 global, fijando IPv6 a habilitado.\n"
 
-#: src/nat/nat_auto.c:355
+#: src/nat/nat_auto.c:360
 #, c-format
 msgid "Detected internal network address `%s'.\n"
 msgstr "Detectada dirección de la red interna «%s».\n"
 
-#: src/nat/nat_auto.c:408
+#: src/nat/nat_auto.c:413
 msgid "upnpc found, enabling its use\n"
 msgstr "«upnpc» encontrado, habilitando su uso\n"
 
-#: src/nat/nat_auto.c:409
+#: src/nat/nat_auto.c:414
 msgid "upnpc not found\n"
 msgstr "«upnpc» no encontrado\n"
 
-#: src/nat/nat_auto.c:442
+#: src/nat/nat_auto.c:447
 msgid "gnunet-helper-nat-server found, testing it\n"
 msgstr "«gnunet-helper-nat-server» encontrado, probándolo\n"
 
-#: src/nat/nat_auto.c:443
+#: src/nat/nat_auto.c:448
 msgid "No working gnunet-helper-nat-server found\n"
 msgstr "No se ha encontrado un «gnunet-helper-nat-server» funcional\n"
 
-#: src/nat/nat_auto.c:477
+#: src/nat/nat_auto.c:482
 msgid "gnunet-helper-nat-client found, enabling it\n"
 msgstr "«gnunet-helper-nat-client» encontrado, habilitando su uso\n"
 
-#: src/nat/nat_auto.c:478
+#: src/nat/nat_auto.c:483
 msgid "gnunet-helper-nat-client not found or behind NAT, disabling it\n"
 msgstr ""
 "«gnunet-helper-nat-client» no encontrado o detrás de NAT, deshabilitando su "
@@ -5224,11 +5226,11 @@
 msgid "Failed to start %s\n"
 msgstr "Se produjo un fallo al arrancar %s\n"
 
-#: src/nat/nat.c:1203
+#: src/nat/nat.c:1205
 msgid "malformed"
 msgstr "mal formado"
 
-#: src/nat/nat.c:1274 src/nat/nat.c:1286
+#: src/nat/nat.c:1276 src/nat/nat.c:1288
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
@@ -5237,30 +5239,58 @@
 "La configuración requiere «%s», pero el binario no está instalado de forma "
 "correcta (SUID bit no activado).  Opción deshabilitada.\n"
 
-#: src/nat/nat.c:1424
+#: src/nat/nat.c:1426
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 "Direcciones internas IP no conocidas, no se puede usar el método del "
 "recorrido NAT ICMP\n"
 
-#: src/nat/nat.c:1440
+#: src/nat/nat.c:1442
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr "Ejecutando gnunet-helper-nat-client %s %s %u\n"
 
-#: src/nat/nat_mini.c:170
+#: src/nat/nat_mini.c:155
+msgid "no valid address was returned by `external-ip'"
+msgstr ""
+
+#: src/nat/nat_mini.c:175
+#, fuzzy
+msgid "`external-ip' command not found"
+msgstr "comando «external-ip» no encontrado\n"
+
+#: src/nat/nat_mini.c:201
 msgid "`external-ip' command not found\n"
 msgstr "comando «external-ip» no encontrado\n"
 
-#: src/nat/nat_mini.c:505
+#: src/nat/nat_mini.c:366
+#, fuzzy
+msgid "Failed to run `upnpc` command"
+msgstr "Se produjo un fallo al ejecutar «%s»\n"
+
+#: src/nat/nat_mini.c:512
+#, fuzzy
+msgid "`upnpc' command took too long, process killed"
+msgstr "comando «upnpc» no encontrado\n"
+
+#: src/nat/nat_mini.c:540
+msgid "`upnpc' command failed to establish port mapping"
+msgstr ""
+
+#: src/nat/nat_mini.c:604
 msgid "`upnpc' command not found\n"
 msgstr "comando «upnpc» no encontrado\n"
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_mini.c:608
+#, fuzzy
+msgid "`upnpc` command not found"
+msgstr "comando «upnpc» no encontrado\n"
+
+#: src/nat/nat_test.c:351
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Se produjo un fallo al conectar con «gnunet-nat-server»\n"
 
-#: src/nat/nat_test.c:420
+#: src/nat/nat_test.c:423
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
@@ -5299,15 +5329,10 @@
 msgstr "Medir la calidad y rendimiento del servicio NSE."
 
 #: src/nse/gnunet-service-nse.c:1461
-#: src/revocation/gnunet-service-revocation.c:789
+#: src/revocation/gnunet-service-revocation.c:789 src/util/gnunet-scrypt.c:248
 msgid "Value is too large.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1488
-msgid "NSE service is lacking key configuration settings.  Exiting.\n"
-msgstr ""
-"El servicio NSE carece de opciones de configuración de clave.  Saliendo.\n"
-
 #: src/peerinfo/gnunet-service-peerinfo.c:215
 #, c-format
 msgid "Removing expired address of transport `%s'\n"
@@ -5425,54 +5450,49 @@
 msgid "Failure adding HELLO: %s\n"
 msgstr "Fallo añadiendo «HELLO»: %s\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:661
+#: src/peerinfo-tool/gnunet-peerinfo.c:666 src/util/gnunet-scrypt.c:224
 #, c-format
-msgid "Could not find option `%s:%s' in configuration.\n"
-msgstr "No se pudo encontrar la opción «%s:%s» en la configuración.\n"
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:667
-#, c-format
 msgid "Loading hostkey from `%s' failed.\n"
 msgstr "La carga de la clave de la máquina desde «%s» ha fallado.\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:725
+#: src/peerinfo-tool/gnunet-peerinfo.c:724
 #, c-format
 msgid "I am peer `%s'.\n"
 msgstr "Yo soy el par «%s».\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:769
+#: src/peerinfo-tool/gnunet-peerinfo.c:768
 msgid "don't resolve host names"
 msgstr "no resolver nombres de máquina"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:772
+#: src/peerinfo-tool/gnunet-peerinfo.c:771
 msgid "output only the identity strings"
 msgstr "mostrar únicamente las cadenas de identidad"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:775
+#: src/peerinfo-tool/gnunet-peerinfo.c:774
 msgid "include friend-only information"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:778
+#: src/peerinfo-tool/gnunet-peerinfo.c:777
 msgid "output our own identity only"
 msgstr "muestra únicamente nuestra propia identidad"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:781
+#: src/peerinfo-tool/gnunet-peerinfo.c:780
 msgid "list all known peers"
 msgstr "mostrar todos los pares conocidos"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:784
+#: src/peerinfo-tool/gnunet-peerinfo.c:783
 msgid "dump hello to file"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:787
+#: src/peerinfo-tool/gnunet-peerinfo.c:786
 msgid "also output HELLO uri(s)"
 msgstr "también mostrar las URI de «HELLO»"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:790
+#: src/peerinfo-tool/gnunet-peerinfo.c:789
 msgid "add given HELLO uri to the database"
 msgstr "añade la URI de «HELLO» dada a la base de datos"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:801
+#: src/peerinfo-tool/gnunet-peerinfo.c:800
 msgid "Print information about peers."
 msgstr "Imprimir información sobre los pares."
 
@@ -6125,6 +6145,14 @@
 msgid "Failed to send a message to the scalarproduct service\n"
 msgstr "Se produjo un fallo al enviar una petición al servicio de transporte\n"
 
+#: src/secretsharing/gnunet-secretsharing-profiler.c:303
+msgid "dkg timeout"
+msgstr ""
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:306
+msgid "threshold"
+msgstr ""
+
 #: src/set/gnunet-service-set.c:1416
 #, fuzzy
 msgid "Could not connect to mesh service\n"
@@ -6261,19 +6289,95 @@
 "¡No se ha recibido el reconocimiento del servicio de estadísticas, algunas "
 "estadísticas se pueden haber perdido!\n"
 
+#: src/testbed/generate-underlay-topology.c:223
+msgid "Need atleast 2 arguments\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:228
+msgid "Database filename missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:235
+#, fuzzy
+msgid "Topology string missing\n"
+msgstr "falta una opción"
+
+#: src/testbed/generate-underlay-topology.c:240
+#, fuzzy, c-format
+msgid "Invalid topology: %s\n"
+msgstr "Parámetro no válido «%s»\n"
+
+#: src/testbed/generate-underlay-topology.c:252
+#, c-format
+msgid "An argument is missing for given topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:258
+#, fuzzy, c-format
+msgid "Invalid argument `%s' given as topology argument\n"
+msgstr "Parámetro no válido «%s»\n"
+
+#: src/testbed/generate-underlay-topology.c:266
+#, fuzzy, c-format
+msgid "Filename argument missing for topology `%s'\n"
+msgstr "¡Falló mientras se esperaba la configuración topológica!\n"
+
+#: src/testbed/generate-underlay-topology.c:280
+#, c-format
+msgid "Second argument for topology `%s' is missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:286
+#, fuzzy, c-format
+msgid "Invalid argument `%s'; expecting unsigned int\n"
+msgstr "Argumento no válido para '%s' en %s:%d.\n"
+
+#: src/testbed/generate-underlay-topology.c:335
+#: src/testbed/gnunet-testbed-profiler.c:293
+msgid "create COUNT number of peers"
+msgstr "crea «COUNT» número de pares"
+
+#: src/testbed/generate-underlay-topology.c:344
+msgid ""
+"Generates SQLite3 database representing a given underlay topology.\n"
+"Usage: gnunet-underlay-topology [OPTIONS] db-filename TOPO [TOPOOPTS]\n"
+"The following options are available for TOPO followed by TOPOOPTS if "
+"applicable:\n"
+"\t LINE\n"
+"\t RING\n"
+"\t RANDOM <num_rnd_links>\n"
+"\t SMALL_WORLD <num_rnd_links>\n"
+"\t SMALL_WORLD_RING <num_rnd_links>\n"
+"\t CLIQUE\n"
+"\t 2D_TORUS\n"
+"\t SCALE_FREE <cap> <m>\n"
+"\t FROM_FILE <filename>\n"
+"TOPOOPTS:\n"
+"\t num_rnd_links: The number of random links\n"
+"\t cap: the maximum number of links a node can have\n"
+"\t m: the number of links a node should have while joining the network\n"
+"\t filename: the path of the file which contains topology information\n"
+"NOTE: the format of the above file is descibed here: https://www.gnunet.org/";
+"content/topology-file-format\n"
+msgstr ""
+
+#: src/testbed/gnunet-daemon-latency-logger.c:325
+msgid "Daemon to log latency values of connections to neighbours"
+msgstr ""
+
 #: src/testbed/gnunet-daemon-testbed-blacklist.c:264
 msgid ""
 "Daemon to restrict incoming transport layer connections during testbed "
 "deployments"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:300 src/testing/testing.c:293
-#: src/util/gnunet-ecc.c:217
+#: src/testbed/gnunet-daemon-testbed-underlay.c:235 src/testing/list-keys.c:50
+#: src/testing/testing.c:293 src/util/gnunet-ecc.c:217
 #, c-format
 msgid "Incorrect hostkey file format: %s\n"
 msgstr "El fichero de máquinas no tiene el formato correcto: %s\n"
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:553
+#: src/testbed/gnunet-daemon-testbed-underlay.c:474
 msgid "Daemon to restrict underlay network in testbed deployments"
 msgstr ""
 
@@ -6314,10 +6418,6 @@
 msgid "Exiting as the number of peers is %u\n"
 msgstr "El número máximo de conexiones es %u\n"
 
-#: src/testbed/gnunet-testbed-profiler.c:293
-msgid "create COUNT number of peers"
-msgstr "crea «COUNT» número de pares"
-
 #: src/testbed/gnunet-testbed-profiler.c:296
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr "tolerar un número «COUNT» de continuas expiraciones de plazo"
@@ -6354,104 +6454,104 @@
 msgid "Adding host %u failed with error: %s\n"
 msgstr "No se pudo añadir la máquina %u por el error: %s\n"
 
-#: src/testbed/testbed_api_testbed.c:820
+#: src/testbed/testbed_api_testbed.c:819
 msgid "Linking controllers failed. Exiting"
 msgstr "Los controladores de enlazado fallaron. Saliendo"
 
-#: src/testbed/testbed_api_testbed.c:989
+#: src/testbed/testbed_api_testbed.c:988
 #, c-format
 msgid "Host registration failed for a host. Error: %s\n"
 msgstr "El registro de máquinas falló para una máquina. Error: %s\n"
 
-#: src/testbed/testbed_api_testbed.c:1055
+#: src/testbed/testbed_api_testbed.c:1054
 msgid "Controller crash detected. Shutting down.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1144
+#: src/testbed/testbed_api_testbed.c:1143
 #, c-format
 msgid "Host %s cannot start testbed\n"
 msgstr "La máquina %s no puede comenzar la batería de pruebas\n"
 
-#: src/testbed/testbed_api_testbed.c:1148
+#: src/testbed/testbed_api_testbed.c:1147
 msgid "Testbed cannot be started on localhost\n"
 msgstr "La batería de pruebas no se puede iniciar en localhost\n"
 
-#: src/testbed/testbed_api_testbed.c:1186
+#: src/testbed/testbed_api_testbed.c:1185
 msgid "Cannot start the master controller"
 msgstr "No se puede iniciar el controlador maestro"
 
-#: src/testbed/testbed_api_testbed.c:1204
+#: src/testbed/testbed_api_testbed.c:1203
 msgid "Shutting down testbed due to timeout while setup.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1264
+#: src/testbed/testbed_api_testbed.c:1263
 #, fuzzy
 msgid "No hosts loaded from LoadLeveler. Need at least one host\n"
 msgstr "No se han cargado máquinas. Se necesita al menos una máquina.\n"
 
-#: src/testbed/testbed_api_testbed.c:1276
+#: src/testbed/testbed_api_testbed.c:1275
 msgid "No hosts loaded. Need at least one host\n"
 msgstr "No se han cargado máquinas. Se necesita al menos una máquina.\n"
 
-#: src/testbed/testbed_api_testbed.c:1300
+#: src/testbed/testbed_api_testbed.c:1299
 msgid "Specified topology must be supported by testbed"
 msgstr ""
 "La topología especificada debe estar soportada por la batería de pruebas"
 
-#: src/testbed/testbed_api_testbed.c:1350
+#: src/testbed/testbed_api_testbed.c:1349
 #, c-format
 msgid ""
 "Maximum number of edges a peer can have in a scale free topology cannot be "
 "more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1366
+#: src/testbed/testbed_api_testbed.c:1365
 #, c-format
 msgid ""
 "The number of edges that can established when adding a new node to scale "
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:715
+#: src/testbed/testbed_api_topology.c:960
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr "El fichero de topología %s no fue encontrado\n"
 
-#: src/testbed/testbed_api_topology.c:721
+#: src/testbed/testbed_api_topology.c:966
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr "El fichero de topología %s no tiene datos\n"
 
-#: src/testbed/testbed_api_topology.c:728
+#: src/testbed/testbed_api_topology.c:973
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr "El fichero de topología %s no puede ser leido\n"
 
-#: src/testbed/testbed_api_topology.c:750
+#: src/testbed/testbed_api_topology.c:995
 #, c-format
 msgid "Failed to read peer index from toology file: %s"
 msgstr ""
 "Se produjo un fallo al leer el índice de pares del archivo de topología: %s"
 
-#: src/testbed/testbed_api_topology.c:759
-#: src/testbed/testbed_api_topology.c:783
+#: src/testbed/testbed_api_topology.c:1004
+#: src/testbed/testbed_api_topology.c:1028
 #, c-format
 msgid "Value in given topology file: %s out of range\n"
 msgstr "Valor en el fichero de topología dato: %s está fuera de rango\n"
 
-#: src/testbed/testbed_api_topology.c:765
-#: src/testbed/testbed_api_topology.c:789
+#: src/testbed/testbed_api_topology.c:1010
+#: src/testbed/testbed_api_topology.c:1034
 #, c-format
 msgid "Failed to read peer index from topology file: %s"
 msgstr ""
 "Se produjo un fallo al leer índice de pares del fichero de topología: %s"
 
-#: src/testbed/testbed_api_topology.c:771
-#: src/testbed/testbed_api_topology.c:795
+#: src/testbed/testbed_api_topology.c:1016
+#: src/testbed/testbed_api_topology.c:1040
 msgid "Topology file needs more peers than given ones\n"
 msgstr "El fichero de topología necesita más pares que los dados\n"
 
-#: src/testbed/testbed_api_topology.c:810
+#: src/testbed/testbed_api_topology.c:1074
 #, c-format
 msgid "Ignoring to connect peer %u to peer %u\n"
 msgstr "Ignorando conexión del par %u al par %u\n"
@@ -6499,6 +6599,15 @@
 msgstr ""
 "Herramienta de línea de comandos para acceder a la biblioteca de pruebas"
 
+#: src/testing/list-keys.c:90
+#, fuzzy
+msgid "list COUNT number of keys"
+msgstr "crea «COUNT» número de pares"
+
+#: src/testing/list-keys.c:93
+msgid "skip COUNT number of keys in the beginning"
+msgstr ""
+
 #: src/testing/testing.c:277
 #, c-format
 msgid "Hostkeys file not found: %s\n"
@@ -6650,36 +6759,36 @@
 msgstr ""
 
 #: src/transport/gnunet-service-transport_blacklist.c:455
-#: src/transport/gnunet-service-transport_blacklist.c:722
+#: src/transport/gnunet-service-transport_blacklist.c:725
 msgid "# disconnects due to blacklist"
 msgstr "# desconexiones debido a la lista negra"
 
-#: src/transport/gnunet-service-transport.c:206
+#: src/transport/gnunet-service-transport.c:201
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "# bytes de «payload» descartados debido a par no conectado"
 
-#: src/transport/gnunet-service-transport.c:325
+#: src/transport/gnunet-service-transport.c:304
 msgid "# bytes total received"
 msgstr "# total de bytes recibidos"
 
-#: src/transport/gnunet-service-transport.c:399
+#: src/transport/gnunet-service-transport.c:371
 msgid "# bytes payload received"
 msgstr "# bytes de «payload» recibidos"
 
-#: src/transport/gnunet-service-transport.c:574
+#: src/transport/gnunet-service-transport.c:527
 #, fuzzy, c-format
 msgid "Could not obtain a valid network for `%s' %s (%s)\n"
 msgstr "Imposible obtener IP para la interfaz '%s' usando '%s'.\n"
 
-#: src/transport/gnunet-service-transport.c:628
+#: src/transport/gnunet-service-transport.c:574
 #, c-format
 msgid ""
 "Address or session unknown: failed to update properties for peer `%s' plugin "
 "`%s' address `%s' session %p\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:916
+#: src/transport/gnunet-service-transport.c:837
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
@@ -6696,16 +6805,16 @@
 msgid "# messages dropped due to slow client"
 msgstr "# mensajes omitidos debido a un cliente lento"
 
-#: src/transport/gnunet-service-transport_clients.c:533
+#: src/transport/gnunet-service-transport_clients.c:540
 #, c-format
 msgid "Rejecting control connection from peer `%s', which is not me!\n"
 msgstr "¡Rechazando conexión de control del par «%s», que no soy yo!\n"
 
-#: src/transport/gnunet-service-transport_clients.c:674
+#: src/transport/gnunet-service-transport_clients.c:681
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr "# bytes de «payload» omitidos (el otro par no estaba conectado)"
 
-#: src/transport/gnunet-service-transport_clients.c:731
+#: src/transport/gnunet-service-transport_clients.c:738
 msgid "# REQUEST CONNECT messages received"
 msgstr "# mensajes «REQUEST CONNECT» recibidos"
 
@@ -6713,153 +6822,153 @@
 msgid "# refreshed my HELLO"
 msgstr "# refrescos de mi «HELLO»"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1108
+#: src/transport/gnunet-service-transport_neighbours.c:1016
 msgid "# DISCONNECT messages sent"
 msgstr "# Mensajes «DISCONNECT» enviados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1244
-#: src/transport/gnunet-service-transport_neighbours.c:1653
+#: src/transport/gnunet-service-transport_neighbours.c:1152
+#: src/transport/gnunet-service-transport_neighbours.c:1562
 msgid "# bytes in message queue for other peers"
 msgstr "# bytes en la cola de mensajes para otros pares"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1249
+#: src/transport/gnunet-service-transport_neighbours.c:1157
 msgid "# messages transmitted to other peers"
 msgstr "# mensajes transmitidos a otros pares"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1254
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 msgid "# transmission failures for messages to other peers"
 msgstr "# fallos de transmisión en mensajes a otros pares"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1311
+#: src/transport/gnunet-service-transport_neighbours.c:1219
 msgid "# messages timed out while in transport queue"
 msgstr "# mensajes expirados mientras estaban en la cola de transporte"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1368
+#: src/transport/gnunet-service-transport_neighbours.c:1276
 msgid "# keepalives sent"
 msgstr "# «keepalives» enviados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1401
+#: src/transport/gnunet-service-transport_neighbours.c:1309
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# Mensajes «KEEPALIVE» descartados (par desconocido)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1409
+#: src/transport/gnunet-service-transport_neighbours.c:1317
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# mensajes «KEEPALIVE» descartados (no hay sesión)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1456
+#: src/transport/gnunet-service-transport_neighbours.c:1364
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1465
+#: src/transport/gnunet-service-transport_neighbours.c:1373
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "# Mensajes «KEEPALIVE_RESPONSE» descartados (no esperado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1473
+#: src/transport/gnunet-service-transport_neighbours.c:1381
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (address changed)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1481
+#: src/transport/gnunet-service-transport_neighbours.c:1389
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (wrong nonce)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1558
+#: src/transport/gnunet-service-transport_neighbours.c:1467
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# mensajes descartados debido a la falta de registro vecinal"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1592
+#: src/transport/gnunet-service-transport_neighbours.c:1501
 msgid "# bandwidth quota violations by other peers"
 msgstr "# violaciones de la cuota de ancho de banda por otros pares"
 
 # throttling?
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1517
 msgid "# ms throttling suggested"
 msgstr "# ms de impulso sugeridos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1700
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 #, fuzzy
 msgid "# SESSION_CONNECT messages sent"
 msgstr "# Mensajes «DISCONNECT» enviados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1716
+#: src/transport/gnunet-service-transport_neighbours.c:1625
 #, fuzzy, c-format
 msgid "Failed to transmit CONNECT message via plugin to %s\n"
 msgstr "Se produjo un fallo al transmitir un mensaje al servicio «%s».\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1759
+#: src/transport/gnunet-service-transport_neighbours.c:1668
 #, fuzzy
 msgid "# CONNECT_ACK messages sent"
 msgstr "# Mensajes «DISCONNECT» enviados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2236
+#: src/transport/gnunet-service-transport_neighbours.c:2149
 #, fuzzy
 msgid "# CONNECT messages received"
 msgstr "# mensajes «REQUEST CONNECT» recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2241
+#: src/transport/gnunet-service-transport_neighbours.c:2154
 #, c-format
 msgid "CONNECT request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2979
+#: src/transport/gnunet-service-transport_neighbours.c:2885
 #, fuzzy
 msgid "# CONNECT_ACK messages received"
 msgstr "# mensajes «REQUEST CONNECT» recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2987
+#: src/transport/gnunet-service-transport_neighbours.c:2893
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (sin par)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3002
-#: src/transport/gnunet-service-transport_neighbours.c:3039
+#: src/transport/gnunet-service-transport_neighbours.c:2908
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (no estaba preparado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3052
+#: src/transport/gnunet-service-transport_neighbours.c:2957
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (esperando en el ATS)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3085
+#: src/transport/gnunet-service-transport_neighbours.c:2987
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (desconectando)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3265
+#: src/transport/gnunet-service-transport_neighbours.c:3156
 #, fuzzy
 msgid "# SESSION_ACK messages received"
 msgstr "# mensajes SET QUOTA recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3284
+#: src/transport/gnunet-service-transport_neighbours.c:3175
 #, fuzzy
 msgid "# unexpected SESSION_ACK messages"
 msgstr "# Mensajes «SESSION ACK» inesperados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3340
+#: src/transport/gnunet-service-transport_neighbours.c:3230
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr "# Mensajes «SET QUOTA» ignorados (no existe tal par)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3355
+#: src/transport/gnunet-service-transport_neighbours.c:3245
 msgid "# disconnects due to quota of 0"
 msgstr "# desconexiones debido a una cuota de 0"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3383
+#: src/transport/gnunet-service-transport_neighbours.c:3273
 msgid "# disconnect messages ignored (old format)"
 msgstr "# mensajes de desconexión ignorados (formato antiguo)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3389
+#: src/transport/gnunet-service-transport_neighbours.c:3279
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# mensajes «REQUEST CONNECT» recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3398
+#: src/transport/gnunet-service-transport_neighbours.c:3288
 msgid "# disconnect messages ignored (timestamp)"
 msgstr "# mensajes de desconexión ignorados (marca temporal)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3434
+#: src/transport/gnunet-service-transport_neighbours.c:3324
 msgid "# other peer asked to disconnect from us"
 msgstr "# peticiones de otro par para desconectarse de nosotros"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3532
+#: src/transport/gnunet-service-transport_neighbours.c:3423
 msgid "# disconnected from peer upon explicit request"
 msgstr "# desconexiones del par debido a una petición explícita"
 
@@ -6887,11 +6996,11 @@
 msgid "Did not load plugin `%s' due to missing functions\n"
 msgstr "Falló al cargar el plugin '%s' en %s:%d. Descargando plugin.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:456
+#: src/transport/gnunet-service-transport_validation.c:452
 msgid "# address records discarded"
 msgstr "# registros de direcciones descartados"
 
-#: src/transport/gnunet-service-transport_validation.c:526
+#: src/transport/gnunet-service-transport_validation.c:522
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
@@ -6900,39 +7009,39 @@
 "No transmitiendo «%s» con «%s», mensaje demasiado grande (¡%u bytes!). Esto "
 "no debería suceder.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:584
+#: src/transport/gnunet-service-transport_validation.c:580
 msgid "# PING without HELLO messages sent"
 msgstr "# Mensajes PING sin HELLO mandados"
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:681
 msgid "# address revalidations started"
 msgstr "# revalidaciones de direcciones iniciadas"
 
-#: src/transport/gnunet-service-transport_validation.c:969
+#: src/transport/gnunet-service-transport_validation.c:963
 msgid "# PING message for different peer received"
 msgstr "# Mensajes PING recibidos para un par diferente"
 
-#: src/transport/gnunet-service-transport_validation.c:1019
+#: src/transport/gnunet-service-transport_validation.c:1014
 #, fuzzy, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 "No confirmando el PING con dirección «%s» ya que no puedo confirmar tener "
 "esa dirección.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1029
+#: src/transport/gnunet-service-transport_validation.c:1024
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1032
+#: src/transport/gnunet-service-transport_validation.c:1027
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1040
+#: src/transport/gnunet-service-transport_validation.c:1035
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1052
+#: src/transport/gnunet-service-transport_validation.c:1047
 #, fuzzy, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
@@ -6941,85 +7050,90 @@
 "No confirmando el PING con dirección «%s» ya que no puedo confirmar tener "
 "esa dirección.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1060
+#: src/transport/gnunet-service-transport_validation.c:1055
 #, c-format
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr "Recibido un mensaje PING con un error de validación de «%s»\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1114
+#: src/transport/gnunet-service-transport_validation.c:1109
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "Se produjo un fallo al crear la página para «%s»\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1163
+#: src/transport/gnunet-service-transport_validation.c:1158
 msgid "# PONGs unicast via reliable transport"
 msgstr "# unicast de PONG vía transporte confiable"
 
-#: src/transport/gnunet-service-transport_validation.c:1172
+#: src/transport/gnunet-service-transport_validation.c:1167
 msgid "# PONGs multicast to all available addresses"
 msgstr "# multicast de PONG a todas las direcciones disponibles"
 
-#: src/transport/gnunet-service-transport_validation.c:1312
+#: src/transport/gnunet-service-transport_validation.c:1308
 msgid "# PONGs dropped, no matching pending validation"
 msgstr "# PONG omitidos, no hay una validación pendiente coincidente"
 
-#: src/transport/gnunet-service-transport_validation.c:1327
+#: src/transport/gnunet-service-transport_validation.c:1323
 msgid "# PONGs dropped, signature expired"
 msgstr "# Mensajes PONG omitidos, firma expirada"
 
-#: src/transport/gnunet-service-transport_validation.c:1448
+#: src/transport/gnunet-service-transport_validation.c:1442
+#, fuzzy, c-format
+msgid "Validation received new %s message for peer `%s' with size %u\n"
+msgstr "Recibido último mensaje para %s\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1449
 #, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Añadiendo «%s» sin direcciones para el par «%s»\n"
 
-#: src/transport/gnunet-transport.c:258
+#: src/transport/gnunet-transport.c:285
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
 msgstr "Transmitidos %llu bytes/s (%llu bytes en %s)\n"
 
-#: src/transport/gnunet-transport.c:265
+#: src/transport/gnunet-transport.c:293
 #, c-format
 msgid "Received %llu bytes/s (%llu bytes in %s)\n"
 msgstr "Recibidos %llu bytes/s (%llu bytes en %s)\n"
 
-#: src/transport/gnunet-transport.c:296
+#: src/transport/gnunet-transport.c:331
 #, c-format
 msgid "Failed to connect to `%s'\n"
 msgstr "Se produjo un fallo al conectar con «%s»\n"
 
-#: src/transport/gnunet-transport.c:309
+#: src/transport/gnunet-transport.c:344
 #, c-format
 msgid "Failed to resolve address for peer `%s'\n"
 msgstr "Se produjo un fallo al resolver la dirección para el par «%s»\n"
 
 # Miguel: La traducción no es literal, pero me parece más correcta
 # en castellano.
-#: src/transport/gnunet-transport.c:318
+#: src/transport/gnunet-transport.c:354
 msgid "Failed to list connections, timeout occured\n"
 msgstr "No se pudieron listar las conexiones, expiró el plazo\n"
 
-#: src/transport/gnunet-transport.c:423
+#: src/transport/gnunet-transport.c:453
 msgid "No transport plugins configured, peer will never communicate\n"
 msgstr ""
 "No hay módulos de transporte configurados, el par nunca se comunicará\n"
 
-#: src/transport/gnunet-transport.c:436
+#: src/transport/gnunet-transport.c:467
 #, c-format
 msgid "No port configured for plugin `%s', cannot test it\n"
 msgstr ""
 "Ningún puerto fue configurado para el módulo «%s», no se puede probar\n"
 
-#: src/transport/gnunet-transport.c:506
+#: src/transport/gnunet-transport.c:530
 #, c-format
 msgid "Transmitting %u bytes to %s\n"
 msgstr "Transmitiendo %u bytes a %s\n"
 
-#: src/transport/gnunet-transport.c:529
+#: src/transport/gnunet-transport.c:551
 #, c-format
 msgid "Successfully connected to `%s'\n"
 msgstr "Conectado satisfactoriamente a «%s»\n"
 
-#: src/transport/gnunet-transport.c:552
+#: src/transport/gnunet-transport.c:575
 #, c-format
 msgid ""
 "Successfully connected to `%s', starting to send benchmark data in %u Kb "
@@ -7028,38 +7142,33 @@
 "Conectado satisfactoriamente a «%s», empezando a mandar datos de prueba en "
 "bloques de %u Kb\n"
 
-#: src/transport/gnunet-transport.c:587
+#: src/transport/gnunet-transport.c:608
 #, c-format
 msgid "Disconnected from peer `%s' while benchmarking\n"
 msgstr "Desconectado del par «%s» mientras probaba\n"
 
-#: src/transport/gnunet-transport.c:660
+#: src/transport/gnunet-transport.c:670
 #, c-format
 msgid "Received %u bytes from %s\n"
 msgstr "Recibidos %u bytes de %s\n"
 
-#: src/transport/gnunet-transport.c:685
+#: src/transport/gnunet-transport.c:693
 #, c-format
+msgid "Peer `%s': %s %s in state `%s' until %s\n"
+msgstr ""
+
+#: src/transport/gnunet-transport.c:703
+#, c-format
 msgid "Peer `%s': %s %s\n"
 msgstr "Par «%s»: %s %s\n"
 
-#: src/transport/gnunet-transport.c:704
-#, c-format
-msgid "Peer `%s': %s <unable to resolve address>\n"
-msgstr "Par «%s»: %s <no se puede resolver la dirección>\n"
-
-#: src/transport/gnunet-transport.c:772
-#, c-format
-msgid "Peer `%s' disconnected\n"
-msgstr "Par «%s» desconectado\n"
-
-#: src/transport/gnunet-transport.c:802
+#: src/transport/gnunet-transport.c:916
 msgid "Failed to send connect request to transport service\n"
 msgstr ""
 "Se produjo un fallo al enviar una petición de conexión al servicio de "
 "transporte\n"
 
-#: src/transport/gnunet-transport.c:848
+#: src/transport/gnunet-transport.c:959
 #, c-format
 msgid ""
 "Multiple operations given. Please choose only one operation: %s, %s, %s, %s, "
@@ -7068,7 +7177,7 @@
 "Múltiples operaciones introducidas. Por favor, seleccione únicamente una "
 "operación: %s, %s, %s, %s, %s, %s\n"
 
-#: src/transport/gnunet-transport.c:855
+#: src/transport/gnunet-transport.c:967
 #, c-format
 msgid ""
 "No operation given. Please choose one operation: %s, %s, %s, %s, %s, %s\n"
@@ -7076,165 +7185,170 @@
 "Ninguna operación introducida. Por favor, seleccione alguna operación: %s, "
 "%s, %s, %s, %s, %s\n"
 
-#: src/transport/gnunet-transport.c:878 src/transport/gnunet-transport.c:910
-#: src/transport/gnunet-transport.c:932 src/transport/gnunet-transport.c:969
+#: src/transport/gnunet-transport.c:986 src/transport/gnunet-transport.c:1016
+#: src/transport/gnunet-transport.c:1039 src/transport/gnunet-transport.c:1070
 msgid "Failed to connect to transport service\n"
 msgstr "Se produjo un fallo al conectar con el servicio de transporte\n"
 
-#: src/transport/gnunet-transport.c:887 src/transport/gnunet-transport.c:917
+#: src/transport/gnunet-transport.c:995 src/transport/gnunet-transport.c:1025
 msgid "Failed to send request to transport service\n"
 msgstr "Se produjo un fallo al enviar una petición al servicio de transporte\n"
 
-#: src/transport/gnunet-transport.c:937
+#: src/transport/gnunet-transport.c:1044
 msgid "Starting to receive benchmark data\n"
 msgstr "Empezando a recibir datos de prueba\n"
 
-#: src/transport/gnunet-transport.c:1019
+#: src/transport/gnunet-transport.c:1116
+#, fuzzy
+msgid "print information for all peers (instead of only connected peers )"
+msgstr "Imprime información sobre los pares conectados."
+
+#: src/transport/gnunet-transport.c:1119
 msgid "measure how fast we are receiving data from all peers (until CTRL-C)"
 msgstr "medir cómo de rápido recibimos datos de todos los pares (hasta CTRL-C)"
 
-#: src/transport/gnunet-transport.c:1022
+#: src/transport/gnunet-transport.c:1121
 msgid "connect to a peer"
 msgstr "conectar a un par"
 
-#: src/transport/gnunet-transport.c:1025
+#: src/transport/gnunet-transport.c:1124
 msgid "provide information about all current connections (once)"
 msgstr "provee información sobre todas las conexiones actuales (una vez)"
 
-#: src/transport/gnunet-transport.c:1031
+#: src/transport/gnunet-transport.c:1130
 msgid ""
 "provide information about all connects and disconnect events (continuously)"
 msgstr ""
 "provee información sobre todas los eventos de conexión y desconexión "
 "(continuamente)"
 
-#: src/transport/gnunet-transport.c:1034
+#: src/transport/gnunet-transport.c:1132
 msgid "do not resolve hostnames"
 msgstr "no resolver nombres de máquinas"
 
-#: src/transport/gnunet-transport.c:1037
+#: src/transport/gnunet-transport.c:1134
 msgid "peer identity"
 msgstr "identidad del par"
 
-#: src/transport/gnunet-transport.c:1041
+#: src/transport/gnunet-transport.c:1136
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr "enviar data para prueba a otro par (hasta CTRL-C)"
 
-#: src/transport/gnunet-transport.c:1044
+#: src/transport/gnunet-transport.c:1139
 msgid "test transport configuration (involves external server)"
 msgstr "probar configuración de transporte (requiere un servidor externo)"
 
-#: src/transport/gnunet-transport.c:1055
+#: src/transport/gnunet-transport.c:1148
 msgid "Direct access to transport service."
 msgstr "Acceso directo al servicio de transporte."
 
-#: src/transport/plugin_transport_bluetooth.c:616
+#: src/transport/plugin_transport_bluetooth.c:618
 #, fuzzy
 msgid "# Bluetooth ACKs sent"
 msgstr "# ACK WLAN enviados"
 
-#: src/transport/plugin_transport_bluetooth.c:635
+#: src/transport/plugin_transport_bluetooth.c:637
 #, fuzzy
 msgid "# Bluetooth messages defragmented"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/plugin_transport_bluetooth.c:681
-#: src/transport/plugin_transport_bluetooth.c:731
-#: src/transport/plugin_transport_bluetooth.c:1881
+#: src/transport/plugin_transport_bluetooth.c:683
+#: src/transport/plugin_transport_bluetooth.c:733
+#: src/transport/plugin_transport_bluetooth.c:1888
 #, fuzzy
 msgid "# Bluetooth sessions allocated"
 msgstr "# sesiones WLAN alojadas"
 
-#: src/transport/plugin_transport_bluetooth.c:806
+#: src/transport/plugin_transport_bluetooth.c:808
 #, fuzzy
 msgid "# Bluetooth message fragments sent"
 msgstr "# fragmentos de mensaje WLAN enviados"
 
-#: src/transport/plugin_transport_bluetooth.c:830
+#: src/transport/plugin_transport_bluetooth.c:832
 #, fuzzy
 msgid "# Bluetooth messages pending (with fragmentation)"
 msgstr "# mensajes WLAN pendientes (con fragmentación)"
 
-#: src/transport/plugin_transport_bluetooth.c:938
-#: src/transport/plugin_transport_bluetooth.c:1023
-#: src/transport/plugin_transport_bluetooth.c:1883
+#: src/transport/plugin_transport_bluetooth.c:940
+#: src/transport/plugin_transport_bluetooth.c:1026
+#: src/transport/plugin_transport_bluetooth.c:1890
 #, fuzzy
 msgid "# Bluetooth MAC endpoints allocated"
 msgstr "# MAC de destino WLAN alojadas"
 
-#: src/transport/plugin_transport_bluetooth.c:1250
+#: src/transport/plugin_transport_bluetooth.c:1254
 #, fuzzy
 msgid "# HELLO messages received via Bluetooth"
 msgstr "# mensajes HELLO recibidos vía WLAN"
 
-#: src/transport/plugin_transport_bluetooth.c:1276
+#: src/transport/plugin_transport_bluetooth.c:1277
 #, fuzzy
 msgid "# fragments received via Bluetooth"
 msgstr "# fragmentos recibidos vía WLAN"
 
-#: src/transport/plugin_transport_bluetooth.c:1286
+#: src/transport/plugin_transport_bluetooth.c:1287
 #, fuzzy
 msgid "# ACKs received via Bluetooth"
 msgstr "# ACK recibidos vía WLAN"
 
-#: src/transport/plugin_transport_bluetooth.c:1343
+#: src/transport/plugin_transport_bluetooth.c:1347
 #, fuzzy
 msgid "# Bluetooth DATA messages discarded due to CRC32 error"
 msgstr "# mensajes DATA WLAN descartados debido a un error en el CRC32"
 
-#: src/transport/plugin_transport_bluetooth.c:1455
+#: src/transport/plugin_transport_bluetooth.c:1458
 #, fuzzy
 msgid "# DATA messages received via Bluetooth"
 msgstr "# mensajes «DATA» recibidos vía WLAN"
 
-#: src/transport/plugin_transport_bluetooth.c:1490
+#: src/transport/plugin_transport_bluetooth.c:1493
 #, fuzzy
 msgid "# Bluetooth DATA messages processed"
 msgstr "# mensajes «DATA» WLAN procesados"
 
-#: src/transport/plugin_transport_bluetooth.c:1553
+#: src/transport/plugin_transport_bluetooth.c:1556
 #, fuzzy
 msgid "# HELLO beacons sent via Bluetooth"
 msgstr "# «beacons HELLO» enviados vía WLAN"
 
-#: src/transport/plugin_transport_bluetooth.c:1666
+#: src/transport/plugin_transport_bluetooth.c:1669
 #, fuzzy
 msgid "Bluetooth address with invalid size encountered\n"
 msgstr "Dirección WLAN con tamaño no válido encontrada\n"
 
-#: src/transport/plugin_transport_bluetooth.c:1862
+#: src/transport/plugin_transport_bluetooth.c:1869
 #, fuzzy, c-format
 msgid "Helper binary `%s' not SUID, cannot run bluetooth transport\n"
 msgstr ""
 "El ejecutable auxiliar «%s» no tiene activado el bit SUID, no se puede "
 "ejecutar el transporte WLAN\n"
 
-#: src/transport/plugin_transport_http_client.c:1618
+#: src/transport/plugin_transport_http_client.c:1621
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
 "¡No se pudo inicializar el multi-manejador de curl, no se pudo iniciar el "
 "módulo %s!\n"
 
-#: src/transport/plugin_transport_http_client.c:1693
-#: src/transport/plugin_transport_http_server.c:3001
+#: src/transport/plugin_transport_http_client.c:1696
+#: src/transport/plugin_transport_http_server.c:3006
 #, c-format
 msgid "Shutting down plugin `%s'\n"
 msgstr "Finalizando el módulo «%s»\n"
 
-#: src/transport/plugin_transport_http_client.c:1718
-#: src/transport/plugin_transport_http_server.c:3059
+#: src/transport/plugin_transport_http_client.c:1721
+#: src/transport/plugin_transport_http_server.c:3062
 #, c-format
 msgid "Shutdown for plugin `%s' complete\n"
 msgstr "Finalización del módulo «%s» completa\n"
 
-#: src/transport/plugin_transport_http_client.c:1746
-#: src/transport/plugin_transport_http_server.c:2901
+#: src/transport/plugin_transport_http_client.c:1749
+#: src/transport/plugin_transport_http_server.c:2906
 #, c-format
 msgid "Maximum number of connections is %u\n"
 msgstr "El número máximo de conexiones es %u\n"
 
-#: src/transport/plugin_transport_http_server.c:1416
+#: src/transport/plugin_transport_http_server.c:1402
 #, c-format
 msgid ""
 "Access from connection %p (%u of %u) for `%s' `%s' url `%s' with upload data "
@@ -7243,12 +7357,12 @@
 "Acceso desde la conexión %p (%u de %u) para «%s» «%s» URL «%s» con tamaño de "
 "los datos de subida %u\n"
 
-#: src/transport/plugin_transport_http_server.c:1680
+#: src/transport/plugin_transport_http_server.c:1663
 #, c-format
 msgid "Accepting connection (%u of %u) from `%s'\n"
 msgstr "Aceptando conexión (%u de %u) desde «%s»\n"
 
-#: src/transport/plugin_transport_http_server.c:1688
+#: src/transport/plugin_transport_http_server.c:1671
 #, c-format
 msgid ""
 "Server reached maximum number connections (%u), rejecting new connection\n"
@@ -7256,7 +7370,7 @@
 "El servidor ha alcanzado el número máximo de conexiones (%u), rechazando "
 "nueva conexión\n"
 
-#: src/transport/plugin_transport_http_server.c:1974
+#: src/transport/plugin_transport_http_server.c:1957
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
@@ -7264,89 +7378,89 @@
 "¡No se pudo crear un certificado TLS nuevo, el programa «gnunet-transport-"
 "certificate-creation» no pudo ser iniciado!\n"
 
-#: src/transport/plugin_transport_http_server.c:1998
+#: src/transport/plugin_transport_http_server.c:1981
 #, fuzzy, c-format
 msgid "No usable TLS certificate found and creating one at `%s/%s' failed!\n"
 msgstr ""
 "¡No se encontró ningún certificado TLS útil y se produjo un fallo al crear "
 "uno!\n"
 
-#: src/transport/plugin_transport_http_server.c:2405
+#: src/transport/plugin_transport_http_server.c:2404
 msgid "Require valid port number for service in configuration!\n"
 msgstr "¡Se necesita un puerto válido para el servicio en la configuración!\n"
 
-#: src/transport/plugin_transport_http_server.c:2437 src/util/service.c:696
+#: src/transport/plugin_transport_http_server.c:2436 src/util/service.c:696
 #, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Se produjo un fallo al resolver «%s»: %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2454 src/util/service.c:713
+#: src/transport/plugin_transport_http_server.c:2453 src/util/service.c:713
 #, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "No se encontró la dirección %s para «%s».\n"
 
-#: src/transport/plugin_transport_http_server.c:2565
+#: src/transport/plugin_transport_http_server.c:2564
 #, c-format
 msgid "Found %u addresses to report to NAT service\n"
 msgstr "Encontradas %u direcciones para comunicar al servicio NAT\n"
 
-#: src/transport/plugin_transport_http_server.c:2637
+#: src/transport/plugin_transport_http_server.c:2636
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n"
 
-#: src/transport/plugin_transport_http_server.c:2724
+#: src/transport/plugin_transport_http_server.c:2729
 #, c-format
 msgid "IPv4 support is %s\n"
 msgstr "El soporte IPv4 es %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2738
+#: src/transport/plugin_transport_http_server.c:2743
 #, c-format
 msgid "IPv6 support is %s\n"
 msgstr "El soporte IPv6 es %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2745
+#: src/transport/plugin_transport_http_server.c:2750
 msgid "Neither IPv4 nor IPv6 are enabled! Fix in configuration\n"
 msgstr "¡Ni IPv4 ni IPv6 están habilitadas! Corrija la configuración\n"
 
-#: src/transport/plugin_transport_http_server.c:2756
+#: src/transport/plugin_transport_http_server.c:2761
 msgid "Port is required! Fix in configuration\n"
 msgstr "¡El puerto es necesario! Corrija la configuración\n"
 
-#: src/transport/plugin_transport_http_server.c:2763
+#: src/transport/plugin_transport_http_server.c:2768
 #, c-format
 msgid "Using port %u\n"
 msgstr "Usando puerto %u\n"
 
-#: src/transport/plugin_transport_http_server.c:2778
+#: src/transport/plugin_transport_http_server.c:2783
 #, c-format
 msgid "Specific IPv4 address `%s' in configuration file is invalid!\n"
 msgstr ""
 "¡La dirección IPv4 «%s» especificada en el fichero de configuración no es "
 "válida!\n"
 
-#: src/transport/plugin_transport_http_server.c:2788
+#: src/transport/plugin_transport_http_server.c:2793
 #, c-format
 msgid "Binding to IPv4 address %s\n"
 msgstr "Asociando a la dirección IPv4 %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2809
+#: src/transport/plugin_transport_http_server.c:2814
 #, c-format
 msgid "Specific IPv6 address `%s' in configuration file is invalid!\n"
 msgstr ""
 "¡La dirección IPv6 «%s» especificada en el fichero de configuración no es "
 "válida!\n"
 
-#: src/transport/plugin_transport_http_server.c:2819
+#: src/transport/plugin_transport_http_server.c:2824
 #, c-format
 msgid "Binding to IPv6 address %s\n"
 msgstr "Asociando a la dirección IPv6 %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2871
+#: src/transport/plugin_transport_http_server.c:2876
 #, c-format
 msgid "Using external hostname `%s'\n"
 msgstr "Usando nombre de máquina externo «%s»\n"
 
-#: src/transport/plugin_transport_http_server.c:2887
+#: src/transport/plugin_transport_http_server.c:2892
 #, c-format
 msgid "Notifying transport only about hostname `%s'\n"
 msgstr "Notificando al transporte sólo el nombre de máquina «%s»\n"
@@ -7396,66 +7510,65 @@
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# bytes omitidos por SMTP (salientes)"
 
-#: src/transport/plugin_transport_tcp.c:576
+#: src/transport/plugin_transport_tcp.c:559
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr "Longitud de dirección inesperada: %u bytes\n"
 
-#: src/transport/plugin_transport_tcp.c:799
-#: src/transport/plugin_transport_tcp.c:980
-#: src/transport/plugin_transport_tcp.c:2120
-#: src/transport/plugin_transport_tcp.c:2723
+#: src/transport/plugin_transport_tcp.c:766
+#: src/transport/plugin_transport_tcp.c:930
+#: src/transport/plugin_transport_tcp.c:1973
+#: src/transport/plugin_transport_tcp.c:2527
 msgid "# TCP sessions active"
 msgstr "# Sesiones TCP activas"
 
-#: src/transport/plugin_transport_tcp.c:836
-#: src/transport/plugin_transport_tcp.c:973
-#: src/transport/plugin_transport_tcp.c:1062
-#: src/transport/plugin_transport_tcp.c:1112
-#: src/transport/plugin_transport_tcp.c:1291
-#: src/transport/plugin_transport_tcp.c:1310
+#: src/transport/plugin_transport_tcp.c:797
+#: src/transport/plugin_transport_tcp.c:923
+#: src/transport/plugin_transport_tcp.c:1009
+#: src/transport/plugin_transport_tcp.c:1056
+#: src/transport/plugin_transport_tcp.c:1219
+#: src/transport/plugin_transport_tcp.c:1237
 msgid "# bytes currently in TCP buffers"
 msgstr "# bytes actualmente en los buffer TCP"
 
-#: src/transport/plugin_transport_tcp.c:840
+#: src/transport/plugin_transport_tcp.c:800
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# bytes descartados por TCP (desconectado)"
 
-#: src/transport/plugin_transport_tcp.c:1066
+#: src/transport/plugin_transport_tcp.c:1012
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# bytes omitidos por TCP (expirados)"
 
-#: src/transport/plugin_transport_tcp.c:1115
+#: src/transport/plugin_transport_tcp.c:1059
 msgid "# bytes transmitted via TCP"
 msgstr "# bytes recibidos vía TCP"
 
-#: src/transport/plugin_transport_tcp.c:1264
+#: src/transport/plugin_transport_tcp.c:1193
 #, c-format
 msgid "Trying to send with invalid session %p\n"
 msgstr "Intentando enviar con una sesión no válida %p\n"
 
-#: src/transport/plugin_transport_tcp.c:1521
-#: src/transport/plugin_transport_udp.c:1488
+#: src/transport/plugin_transport_tcp.c:1427
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1645
+#: src/transport/plugin_transport_tcp.c:1532
 msgid "# transport-service disconnect requests for TCP"
 msgstr "# peticiones de desconexión del servicio de transporte por TCP"
 
-#: src/transport/plugin_transport_tcp.c:2170
+#: src/transport/plugin_transport_tcp.c:2021
 msgid "# TCP WELCOME messages received"
 msgstr "# Mensajes «WELCOME» TCP recibidos"
 
-#: src/transport/plugin_transport_tcp.c:2355
+#: src/transport/plugin_transport_tcp.c:2189
 msgid "# bytes received via TCP"
 msgstr "# bytes recibidos vía TCP"
 
-#: src/transport/plugin_transport_tcp.c:2433
+#: src/transport/plugin_transport_tcp.c:2253
 msgid "# network-level TCP disconnect events"
 msgstr "# eventos de desconexión TCP a nivel de red"
 
-#: src/transport/plugin_transport_tcp.c:2602 src/util/service.c:589
+#: src/transport/plugin_transport_tcp.c:2407 src/util/service.c:589
 #: src/util/service.c:595
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
@@ -7463,52 +7576,52 @@
 "¡Se requiere un número de puerto válido para el servicio «%s» en la "
 "configuración!\n"
 
-#: src/transport/plugin_transport_tcp.c:2616
+#: src/transport/plugin_transport_tcp.c:2421
 msgid "Failed to start service.\n"
 msgstr "Se produjo un fallo al iniciar el servicio.\n"
 
-#: src/transport/plugin_transport_tcp.c:2712
+#: src/transport/plugin_transport_tcp.c:2516
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr "Transporte TCP escuchando en el puerto %llu\n"
 
-#: src/transport/plugin_transport_tcp.c:2715
+#: src/transport/plugin_transport_tcp.c:2520
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr "Transporte TCP no escuchando en ningún puerto (únicamente cliente)\n"
 
-#: src/transport/plugin_transport_tcp.c:2718
+#: src/transport/plugin_transport_tcp.c:2523
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr "El transporte TCP anuncia que está en el puerto %llu\n"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:173
+#: src/transport/plugin_transport_udp_broadcasting.c:167
 msgid "# IPv6 multicast HELLO beacons received via udp"
 msgstr "# beacons HELLO multicast IPv6 recibidos vía UDP"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:222
+#: src/transport/plugin_transport_udp_broadcasting.c:210
 msgid "# IPv4 broadcast HELLO beacons received via udp"
 msgstr "# beacons HELLO broadcast IPv4 recibidos vía UDP"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:606
+#: src/transport/plugin_transport_udp_broadcasting.c:594
 msgid ""
 "Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:629
+#: src/transport/plugin_transport_udp_broadcasting.c:617
 #, c-format
 msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
 msgstr ""
 "Se produjo un fallo al establecer la opción de «broadcast» IPv4 para el "
 "«socket» en el puerto %d\n"
 
-#: src/transport/plugin_transport_udp.c:1599
+#: src/transport/plugin_transport_udp.c:1406
 #, c-format
 msgid ""
 "Trying to create session for address of unexpected length %u (should be %u "
 "or %u)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2680
+#: src/transport/plugin_transport_udp.c:2474
 #, c-format
 msgid ""
 "UDP could not transmit message to `%s': Network seems down, please check "
@@ -7517,7 +7630,7 @@
 "UDP no pudo transmitir el mensaje a «%s»: La red parece caída, por favor, "
 "compruebe su configuración de red\n"
 
-#: src/transport/plugin_transport_udp.c:2694
+#: src/transport/plugin_transport_udp.c:2488
 #, fuzzy
 msgid ""
 "UDP could not transmit IPv6 message! Please check your network configuration "
@@ -7527,91 +7640,91 @@
 "configuración de red y deshabilite IPv6 si su conexión carece de una "
 "dirección IPv6 global\n"
 
-#: src/transport/plugin_transport_udp.c:2993
+#: src/transport/plugin_transport_udp.c:2817
 msgid "Failed to open UDP sockets\n"
 msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
 
-#: src/transport/plugin_transport_udp.c:3091
+#: src/transport/plugin_transport_udp.c:2912
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr "La opción «%s» dada está fuera de rango: %llu > %u\n"
 
-#: src/transport/plugin_transport_udp.c:3134
+#: src/transport/plugin_transport_udp.c:2951
 #, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Dirección IPv6 no válida: «%s»\n"
 
-#: src/transport/plugin_transport_udp.c:3200
+#: src/transport/plugin_transport_udp.c:3021
 #, fuzzy
 msgid "Failed to create network sockets, plugin failed\n"
 msgstr "Se produjo un fallo al crear una nueva firma"
 
-#: src/transport/plugin_transport_unix.c:1657
+#: src/transport/plugin_transport_unix.c:1624
 #, fuzzy
 msgid "Failed to open UNIX listen socket\n"
 msgstr "Se produjo un fallo al abrir los «sockets» UNIX\n"
 
-#: src/transport/plugin_transport_wlan.c:623
+#: src/transport/plugin_transport_wlan.c:625
 msgid "# WLAN ACKs sent"
 msgstr "# ACK WLAN enviados"
 
-#: src/transport/plugin_transport_wlan.c:642
+#: src/transport/plugin_transport_wlan.c:644
 msgid "# WLAN messages defragmented"
 msgstr "# mensajes WLAN defragmentados"
 
-#: src/transport/plugin_transport_wlan.c:691
-#: src/transport/plugin_transport_wlan.c:778
-#: src/transport/plugin_transport_wlan.c:1937
+#: src/transport/plugin_transport_wlan.c:693
+#: src/transport/plugin_transport_wlan.c:780
+#: src/transport/plugin_transport_wlan.c:1952
 msgid "# WLAN sessions allocated"
 msgstr "# sesiones WLAN alojadas"
 
-#: src/transport/plugin_transport_wlan.c:883
+#: src/transport/plugin_transport_wlan.c:886
 msgid "# WLAN message fragments sent"
 msgstr "# fragmentos de mensaje WLAN enviados"
 
-#: src/transport/plugin_transport_wlan.c:907
+#: src/transport/plugin_transport_wlan.c:910
 msgid "# WLAN messages pending (with fragmentation)"
 msgstr "# mensajes WLAN pendientes (con fragmentación)"
 
-#: src/transport/plugin_transport_wlan.c:1015
-#: src/transport/plugin_transport_wlan.c:1101
-#: src/transport/plugin_transport_wlan.c:1939
+#: src/transport/plugin_transport_wlan.c:1018
+#: src/transport/plugin_transport_wlan.c:1105
+#: src/transport/plugin_transport_wlan.c:1954
 msgid "# WLAN MAC endpoints allocated"
 msgstr "# MAC de destino WLAN alojadas"
 
-#: src/transport/plugin_transport_wlan.c:1297
+#: src/transport/plugin_transport_wlan.c:1301
 msgid "# HELLO messages received via WLAN"
 msgstr "# mensajes HELLO recibidos vía WLAN"
 
-#: src/transport/plugin_transport_wlan.c:1323
+#: src/transport/plugin_transport_wlan.c:1325
 msgid "# fragments received via WLAN"
 msgstr "# fragmentos recibidos vía WLAN"
 
-#: src/transport/plugin_transport_wlan.c:1333
+#: src/transport/plugin_transport_wlan.c:1335
 msgid "# ACKs received via WLAN"
 msgstr "# ACK recibidos vía WLAN"
 
-#: src/transport/plugin_transport_wlan.c:1390
+#: src/transport/plugin_transport_wlan.c:1395
 msgid "# WLAN DATA messages discarded due to CRC32 error"
 msgstr "# mensajes DATA WLAN descartados debido a un error en el CRC32"
 
-#: src/transport/plugin_transport_wlan.c:1511
+#: src/transport/plugin_transport_wlan.c:1517
 msgid "# DATA messages received via WLAN"
 msgstr "# mensajes «DATA» recibidos vía WLAN"
 
-#: src/transport/plugin_transport_wlan.c:1546
+#: src/transport/plugin_transport_wlan.c:1552
 msgid "# WLAN DATA messages processed"
 msgstr "# mensajes «DATA» WLAN procesados"
 
-#: src/transport/plugin_transport_wlan.c:1609
+#: src/transport/plugin_transport_wlan.c:1620
 msgid "# HELLO beacons sent via WLAN"
 msgstr "# «beacons HELLO» enviados vía WLAN"
 
-#: src/transport/plugin_transport_wlan.c:1722
+#: src/transport/plugin_transport_wlan.c:1733
 msgid "WLAN address with invalid size encountered\n"
 msgstr "Dirección WLAN con tamaño no válido encontrada\n"
 
-#: src/transport/plugin_transport_wlan.c:1918
+#: src/transport/plugin_transport_wlan.c:1933
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run WLAN transport\n"
 msgstr ""
@@ -8094,6 +8207,27 @@
 msgid "Use build-in GNUnet stub resolver"
 msgstr "Utilizar el resolvedor interno para pruebas de GNUnet"
 
+#: src/util/gnunet-scrypt.c:279
+msgid "number of bits to require for the proof of work"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:282
+msgid "file with private key, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:285
+msgid "file with proof of work, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:288
+msgid "time to wait between calculations"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:299
+#, fuzzy
+msgid "Manipulate GNUnet proof of work files"
+msgstr "Manipular los ficheros de clave privada ECC de GNUnet"
+
 #: src/util/gnunet-service-resolver.c:283
 #, c-format
 msgid "Could not resolve `%s' (%s): %s\n"
@@ -8386,118 +8520,118 @@
 msgid "b"
 msgstr "b"
 
-#: src/util/strings.c:444
+#: src/util/strings.c:433
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
 msgstr "Los conjuntos de caracteres pedidos fueron «%s»->«%s»\n"
 
-#: src/util/strings.c:572
+#: src/util/strings.c:561
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 "Se produjo un fallo al expandir «$HOME»: variable de entorno «HOME» no "
 "establecida"
 
-#: src/util/strings.c:669
+#: src/util/strings.c:658
 msgid "µs"
 msgstr ""
 
-#: src/util/strings.c:673
+#: src/util/strings.c:662
 msgid "forever"
 msgstr "para siempre"
 
-#: src/util/strings.c:675
+#: src/util/strings.c:664
 msgid "0 ms"
 msgstr "0 ms"
 
-#: src/util/strings.c:681
+#: src/util/strings.c:670
 msgid "ms"
 msgstr "ms"
 
-#: src/util/strings.c:687
+#: src/util/strings.c:676
 msgid "s"
 msgstr "s"
 
-#: src/util/strings.c:693
+#: src/util/strings.c:682
 msgid "m"
 msgstr "m"
 
-#: src/util/strings.c:699
+#: src/util/strings.c:688
 msgid "h"
 msgstr "h"
 
-#: src/util/strings.c:706
+#: src/util/strings.c:695
 msgid "day"
 msgstr "día"
 
-#: src/util/strings.c:708
+#: src/util/strings.c:697
 msgid "days"
 msgstr "días"
 
-#: src/util/strings.c:737
+#: src/util/strings.c:726
 msgid "end of time"
 msgstr "fin del plazo"
 
-#: src/util/strings.c:1170
+#: src/util/strings.c:1159
 msgid "IPv6 address did not start with `['\n"
 msgstr "La dirección IPv6 no empezaba con «[»\n"
 
-#: src/util/strings.c:1178
+#: src/util/strings.c:1167
 msgid "IPv6 address did contain ':' to separate port number\n"
 msgstr "La dirección IPv6 contenía «:» para separar el número de puerto\n"
 
-#: src/util/strings.c:1184
+#: src/util/strings.c:1173
 msgid "IPv6 address did contain ']' before ':' to separate port number\n"
 msgstr ""
 "La dirección IPv6 contenía «]» antes de «:» para separar el número de "
 "puerto\n"
 
-#: src/util/strings.c:1191
+#: src/util/strings.c:1180
 msgid "IPv6 address did contain a valid port number after the last ':'\n"
 msgstr ""
 "La dirección IPv6 contenía un número de puerto válido después del último "
 "«:»\n"
 
-#: src/util/strings.c:1200
+#: src/util/strings.c:1189
 #, c-format
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Dirección IPv6 «%s» no válida: %s\n"
 
-#: src/util/strings.c:1406 src/util/strings.c:1422
+#: src/util/strings.c:1395 src/util/strings.c:1411
 msgid "Port not in range\n"
 msgstr ""
 
-#: src/util/strings.c:1431
+#: src/util/strings.c:1420
 #, fuzzy, c-format
 msgid "Malformed port policy `%s'\n"
 msgstr "Se produjo un fallo al iniciar el servicio «%s»\n"
 
-#: src/util/strings.c:1514 src/util/strings.c:1545 src/util/strings.c:1593
-#: src/util/strings.c:1614
+#: src/util/strings.c:1503 src/util/strings.c:1534 src/util/strings.c:1582
+#: src/util/strings.c:1603
 #, c-format
 msgid "Invalid format for IP: `%s'\n"
 msgstr "Formato no válido para la IP: «%s»\n"
 
-#: src/util/strings.c:1571
+#: src/util/strings.c:1560
 #, c-format
 msgid "Invalid network notation ('/%d' is not legal in IPv4 CIDR)."
 msgstr "Notación de red no válida («/%d» no es válido en IPv4 CIDR)."
 
-#: src/util/strings.c:1623
+#: src/util/strings.c:1612
 #, fuzzy, c-format
 msgid "Invalid format: `%s'\n"
 msgstr "Formato de tiempo no válido «%s»\n"
 
-#: src/util/strings.c:1675
+#: src/util/strings.c:1664
 #, c-format
 msgid "Invalid network notation (does not end with ';': `%s')\n"
 msgstr "Notación de red no válida (no termina con «;»: «%s»)\n"
 
-#: src/util/strings.c:1725
+#: src/util/strings.c:1714
 #, c-format
 msgid "Wrong format `%s' for netmask\n"
 msgstr "Formato «%s» erroneo para máscara de red\n"
 
-#: src/util/strings.c:1756
+#: src/util/strings.c:1745
 #, c-format
 msgid "Wrong format `%s' for network\n"
 msgstr "Formato «%s» erroneo para red\n"
@@ -8694,6 +8828,32 @@
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "«%s» falló en el fichero «%s» en %s:%d con el error: %s\n"
 
+#, fuzzy
+#~ msgid "provide information about a particular channel"
+#~ msgstr "proveer información acerca de un túnel en particular"
+
+#, fuzzy
+#~ msgid "provide information about a particular connection"
+#~ msgstr "proveer información acerca de un túnel en particular"
+
+#~ msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
+#~ msgstr ""
+#~ "proveer información acerca de todos los túneles (de forma continua) SIN "
+#~ "IMPLEMENTAR"
+
+#~ msgid "NSE service is lacking key configuration settings.  Exiting.\n"
+#~ msgstr ""
+#~ "El servicio NSE carece de opciones de configuración de clave.  Saliendo.\n"
+
+#~ msgid "Could not find option `%s:%s' in configuration.\n"
+#~ msgstr "No se pudo encontrar la opción «%s:%s» en la configuración.\n"
+
+#~ msgid "Peer `%s': %s <unable to resolve address>\n"
+#~ msgstr "Par «%s»: %s <no se puede resolver la dirección>\n"
+
+#~ msgid "Peer `%s' disconnected\n"
+#~ msgstr "Par «%s» desconectado\n"
+
 #~ msgid "Transport plugin: `%s' port %llu\n"
 #~ msgstr "Módulo de transporte: «%s» puerto %llu\n"
 
@@ -9385,9 +9545,6 @@
 #~ msgstr ""
 #~ "El fichero de configuración «%s» para el servicio «%s» no es válido: %s\n"
 
-#~ msgid "option missing"
-#~ msgstr "falta una opción"
-
 #~ msgid "Transmitting shutdown ACK.\n"
 #~ msgstr "Transmitiendo el reconocimiento de finalización.\n"
 
@@ -9712,9 +9869,6 @@
 #~ msgstr ""
 #~ "No se pudo iniciar el proceso «%s» para crear la clave de máquina.\n"
 
-#~ msgid "Failed to start `gnunet-peerinfo' process.\n"
-#~ msgstr "Se produjo un fallo al iniciar el proceso «gnunet-peerinfo».\n"
-
 #~ msgid "Failed to start `ssh' process.\n"
 #~ msgstr "Se produjo un fallo al iniciar el proceso «ssh».\n"
 
@@ -9724,9 +9878,6 @@
 #~ msgid "Malformed output from gnunet-peerinfo!\n"
 #~ msgstr "¡Salida mal formada de «gnunet-peerinfo»!\n"
 
-#~ msgid "`Failed while waiting for topology setup!\n"
-#~ msgstr "¡Falló mientras se esperaba la configuración topológica!\n"
-
 #~ msgid "Could not start `%s' process to start GNUnet.\n"
 #~ msgstr "No se pudo iniciar el proceso «%s» para iniciar GNUnet.\n"
 
@@ -12982,9 +13133,6 @@
 #~ "%s\n"
 #~ "\n"
 
-#~ msgid "Invalid argument for `%s' at %s:%d.\n"
-#~ msgstr "Argumento no válido para '%s' en %s:%d.\n"
-
 #~ msgid "g"
 #~ msgstr "g"
 

Modified: gnunet/po/sv.po
===================================================================
--- gnunet/po/sv.po     2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/po/sv.po     2014-01-20 19:08:47 UTC (rev 31956)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2014-01-05 13:20+0100\n"
+"POT-Creation-Date: 2014-01-14 18:39+0100\n"
 "PO-Revision-Date: 2006-01-21 17:16+0100\n"
 "Last-Translator: Daniel Nylander <address@hidden>\n"
 "Language-Team: Swedish <address@hidden>\n"
@@ -356,49 +356,49 @@
 msgid "Received last message for %s \n"
 msgstr "Mottog ogiltigt \"%s\" meddelande från \"%s\".\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:1948
-#: src/ats/gnunet-service-ats_addresses.c:1992
+#: src/ats/gnunet-service-ats_addresses.c:1974
+#: src/ats/gnunet-service-ats_addresses.c:2018
 #, c-format
 msgid ""
 "Could not load quota for network `%s':  `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1955
+#: src/ats/gnunet-service-ats_addresses.c:1981
 #, c-format
 msgid "Outbound quota configure for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1963
+#: src/ats/gnunet-service-ats_addresses.c:1989
 #, c-format
 msgid ""
 "No outbound quota configured for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1999
+#: src/ats/gnunet-service-ats_addresses.c:2025
 #, c-format
 msgid "Inbound quota configured for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2007
+#: src/ats/gnunet-service-ats_addresses.c:2033
 #, c-format
 msgid ""
 "No outbound quota configure for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2184
+#: src/ats/gnunet-service-ats_addresses.c:2211
 #, c-format
 msgid "Initializing solver `%s '`%s'\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2187
+#: src/ats/gnunet-service-ats_addresses.c:2214
 #, fuzzy, c-format
 msgid "Failed to initialize solver `%s'!\n"
 msgstr "Kunde inte initiera SQLite.\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:2210
+#: src/ats/gnunet-service-ats_addresses.c:2237
 #, fuzzy
 msgid "Failed to initialize solver!\n"
 msgstr "Kunde inte initiera SQLite.\n"
@@ -476,12 +476,12 @@
 msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:352 src/namestore/gnunet-namestore.c:550
-#: src/transport/gnunet-transport.c:829
+#: src/transport/gnunet-transport.c:940
 #, fuzzy, c-format
 msgid "Service `%s' is not running\n"
 msgstr "\"%s\" är inte en fil.\n"
 
-#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:838
+#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:949
 #, fuzzy, c-format
 msgid "Failed to parse peer identity `%s'\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
@@ -564,6 +564,7 @@
 msgstr "Skriv ut information om GNUnets motparter."
 
 #: src/consensus/gnunet-consensus-profiler.c:420
+#: src/secretsharing/gnunet-secretsharing-profiler.c:300
 #, fuzzy
 msgid "number of peers in consensus"
 msgstr "antal iterationer"
@@ -585,6 +586,7 @@
 msgstr "# sessionsnycklar accepterade"
 
 #: src/consensus/gnunet-consensus-profiler.c:432
+#: src/secretsharing/gnunet-secretsharing-profiler.c:309
 msgid "be more verbose (print received values)"
 msgstr ""
 
@@ -593,255 +595,260 @@
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:252
+#: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept #%u or /cancel %u the call.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:274
+#: src/conversation/gnunet-conversation.c:286
 #, c-format
 msgid "Call from `%s' terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:307
+#: src/conversation/gnunet-conversation.c:319
 #, c-format
 msgid "Call from `%s' suspended by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:312
+#: src/conversation/gnunet-conversation.c:324
 #, c-format
 msgid "Call from `%s' resumed by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:330
+#: src/conversation/gnunet-conversation.c:342
 #, c-format
 msgid "Ego `%s' no longer available, phone is now down.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:344
+#: src/conversation/gnunet-conversation.c:356
 #, fuzzy
 msgid "Failed to setup phone (internal error)\n"
 msgstr "Kunde inte skapa värdnyckel!\n"
 
-#: src/conversation/gnunet-conversation.c:356
+#: src/conversation/gnunet-conversation.c:368
 #, c-format
 msgid ""
 "Phone active on line %u.  Type `/help' for a list of available commands\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:378
+#: src/conversation/gnunet-conversation.c:390
 #, c-format
 msgid "Resolved address of `%s'. Now ringing other party.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:385
+#: src/conversation/gnunet-conversation.c:397
 #, fuzzy, c-format
 msgid "Connection established to `%s'\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
 
-#: src/conversation/gnunet-conversation.c:392
+#: src/conversation/gnunet-conversation.c:404
 #, fuzzy, c-format
 msgid "Failed to resolve `%s'\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
 
-#: src/conversation/gnunet-conversation.c:399
+#: src/conversation/gnunet-conversation.c:411
 msgid "Call terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:405
+#: src/conversation/gnunet-conversation.c:417
 #, c-format
 msgid "Connection to `%s' suspended (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:411
+#: src/conversation/gnunet-conversation.c:423
 #, c-format
 msgid "Connection to `%s' resumed (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:416
+#: src/conversation/gnunet-conversation.c:428
 msgid "Error with the call, restarting it\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:483
+#: src/conversation/gnunet-conversation.c:495
 #, fuzzy, c-format
 msgid "Unknown command `%s'\n"
 msgstr "Okänd operation \"%s\"\n"
 
-#: src/conversation/gnunet-conversation.c:499
-#: src/conversation/gnunet-conversation.c:513
+#: src/conversation/gnunet-conversation.c:511
+#: src/conversation/gnunet-conversation.c:525
 #, c-format
 msgid "Ego `%s' not available\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:506
-#: src/conversation/gnunet-conversation.c:563
+#: src/conversation/gnunet-conversation.c:518
+#: src/conversation/gnunet-conversation.c:575
 msgid "You are calling someone else already, hang up first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:521
-#: src/conversation/gnunet-conversation.c:576
+#: src/conversation/gnunet-conversation.c:533
+#: src/conversation/gnunet-conversation.c:588
 #, c-format
 msgid "You are answering call from `%s', hang up or suspend that call first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:532
+#: src/conversation/gnunet-conversation.c:544
 msgid "Call recipient missing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:587
+#: src/conversation/gnunet-conversation.c:599
 msgid "There is no incoming call to accept here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:604
+#: src/conversation/gnunet-conversation.c:616
 #, c-format
 msgid "There is no incoming call `%s' to accept right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:632
+#: src/conversation/gnunet-conversation.c:644
 msgid "We currently do not have an address.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:655
+#: src/conversation/gnunet-conversation.c:667
 #, c-format
 msgid "We are currently trying to locate the private key for the ego `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:660
+#: src/conversation/gnunet-conversation.c:672
 #, c-format
 msgid "We are listening for incoming calls for ego `%s' on line %u.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:666
-#: src/conversation/gnunet-conversation.c:690
+#: src/conversation/gnunet-conversation.c:678
+#: src/conversation/gnunet-conversation.c:702
 #, c-format
 msgid "You are having a conversation with `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:671
+#: src/conversation/gnunet-conversation.c:683
 msgid ""
 "We had an internal error setting up our phone line. You can still make "
 "calls.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:680
+#: src/conversation/gnunet-conversation.c:692
 #, c-format
 msgid "We are trying to find the network address to call `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:685
+#: src/conversation/gnunet-conversation.c:697
 #, c-format
 msgid "We are calling `%s', his phone should be ringing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:704
+#: src/conversation/gnunet-conversation.c:716
 msgid "Calls waiting:\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:710
+#: src/conversation/gnunet-conversation.c:722
 #, fuzzy, c-format
 msgid "#%u: `%s'\n"
 msgstr "Jag är ändpunkt \"%s\".\n"
 
-#: src/conversation/gnunet-conversation.c:738
-#: src/conversation/gnunet-conversation.c:753
+#: src/conversation/gnunet-conversation.c:750
+#: src/conversation/gnunet-conversation.c:765
 msgid "There is no call that could be suspended right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:786
-#: src/conversation/gnunet-conversation.c:802
+#: src/conversation/gnunet-conversation.c:798
+#: src/conversation/gnunet-conversation.c:814
 msgid "There is no call that could be resumed right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:809
+#: src/conversation/gnunet-conversation.c:821
 #, c-format
 msgid "Already talking with `%s', cannot resume a call right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:818
+#: src/conversation/gnunet-conversation.c:830
 msgid "There is no incoming call to resume here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:835
+#: src/conversation/gnunet-conversation.c:847
 #, c-format
 msgid "There is no incoming call `%s' to resume right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:870
+#: src/conversation/gnunet-conversation.c:882
 msgid "There is no call that could be cancelled right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:878
+#: src/conversation/gnunet-conversation.c:890
 msgid "There is no incoming call to refuse here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:895
+#: src/conversation/gnunet-conversation.c:907
 #, c-format
 msgid "There is no incoming call `%s' to refuse right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:922
+#: src/conversation/gnunet-conversation.c:934
 msgid "Use `/address' to find out which address this phone should have in GNS"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:924
+#: src/conversation/gnunet-conversation.c:936
 msgid "Use `/call USER.gnu' to call USER"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:926
+#: src/conversation/gnunet-conversation.c:938
 msgid "Use `/accept #NUM' to accept incoming call #NUM"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:928
+#: src/conversation/gnunet-conversation.c:940
 msgid "Use `/suspend' to suspend the active call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:930
+#: src/conversation/gnunet-conversation.c:942
 msgid ""
 "Use `/resume [#NUM]' to resume a call, #NUM is needed to resume incoming "
 "calls, no argument is needed to resume the current outgoing call."
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:932
+#: src/conversation/gnunet-conversation.c:944
 msgid "Use `/cancel' to reject or terminate a call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:934
+#: src/conversation/gnunet-conversation.c:946
 msgid "Use `/status' to print status information"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:936
+#: src/conversation/gnunet-conversation.c:948
 #, fuzzy
 msgid "Use `/quit' to terminate gnunet-conversation"
 msgstr "tillåter klienter att fastställa gnunetds konfiguration"
 
-#: src/conversation/gnunet-conversation.c:938
+#: src/conversation/gnunet-conversation.c:950
 msgid "Use `/help command' to get help for a specific command"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1093
+#: src/conversation/gnunet-conversation.c:1148
 #, fuzzy, c-format
 msgid "Name of our ego changed to `%s'\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/conversation/gnunet-conversation.c:1106
+#: src/conversation/gnunet-conversation.c:1161
 #, fuzzy, c-format
 msgid "Our ego `%s' was deleted!\n"
 msgstr "Pseudonym \"%s\" togs bort.\n"
 
-#: src/conversation/gnunet-conversation.c:1141
+#: src/conversation/gnunet-conversation.c:1196
 #, fuzzy
 msgid "You must specify the NAME of an ego to use\n"
 msgstr "Du måste ange en lista av filer att lägga in.\n"
 
-#: src/conversation/gnunet-conversation.c:1167
+#: src/conversation/gnunet-conversation.c:1220
+#, fuzzy
+msgid "Failed to start gnunet-helper-w32-console\n"
+msgstr "Misslyckades att starta samling.\n"
+
+#: src/conversation/gnunet-conversation.c:1246
 msgid "sets the NAME of the ego to use for the phone (and name resolution)"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1170
+#: src/conversation/gnunet-conversation.c:1249
 msgid "sets the LINE to use for the phone"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1185
+#: src/conversation/gnunet-conversation.c:1273
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
@@ -884,13 +891,13 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:211
-#: src/conversation/gnunet-helper-audio-record.c:362
+#: src/conversation/gnunet-helper-audio-record.c:365
 #, fuzzy
 msgid "Connection established.\n"
 msgstr "Samling stoppad.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:216
-#: src/conversation/gnunet-helper-audio-record.c:367
+#: src/conversation/gnunet-helper-audio-record.c:370
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s\n"
 msgstr "\"%s\" %s misslyckades: %s\n"
@@ -901,36 +908,36 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:243
-#: src/conversation/gnunet-helper-audio-record.c:393
+#: src/conversation/gnunet-helper-audio-record.c:396
 #, fuzzy, c-format
 msgid "Connection failure: %s\n"
 msgstr " Anslutning misslyckades (fel?)\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:264
-#: src/conversation/gnunet-helper-audio-record.c:416
+#: src/conversation/gnunet-helper-audio-record.c:419
 msgid "Wrong Spec\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:270
-#: src/conversation/gnunet-helper-audio-record.c:422
+#: src/conversation/gnunet-helper-audio-record.c:425
 #, fuzzy
 msgid "pa_mainloop_new() failed.\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:284
-#: src/conversation/gnunet-helper-audio-record.c:437
+#: src/conversation/gnunet-helper-audio-record.c:440
 #, fuzzy
 msgid "pa_context_new() failed.\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:291
-#: src/conversation/gnunet-helper-audio-record.c:443
+#: src/conversation/gnunet-helper-audio-record.c:446
 #, fuzzy, c-format
 msgid "pa_context_connect() failed: %s\n"
 msgstr "# av anslutna parter"
 
 #: src/conversation/gnunet-helper-audio-playback.c:297
-#: src/conversation/gnunet-helper-audio-record.c:449
+#: src/conversation/gnunet-helper-audio-record.c:452
 #, fuzzy
 msgid "pa_mainloop_run() failed.\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
@@ -940,46 +947,51 @@
 msgid "Read error from STDIN: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:237
+#: src/conversation/gnunet-helper-audio-playback-gst.c:341
+#, c-format
+msgid "Read error from STDIN: %d %s\n"
+msgstr ""
+
+#: src/conversation/gnunet-helper-audio-record.c:240
 #, fuzzy, c-format
 msgid "pa_stream_peek() failed: %s\n"
 msgstr "\"%s\" %s misslyckades: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:275
+#: src/conversation/gnunet-helper-audio-record.c:278
 msgid "Got signal, exiting.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:300
+#: src/conversation/gnunet-helper-audio-record.c:303
 #, fuzzy
 msgid "Stream successfully created.\n"
 msgstr "Åtkomst nekad för \"%s\" vid %s:%d.\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:305
+#: src/conversation/gnunet-helper-audio-record.c:308
 #, fuzzy, c-format
 msgid "pa_stream_get_buffer_attr() failed: %s\n"
 msgstr "\"%s\" %s misslyckades: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:313
+#: src/conversation/gnunet-helper-audio-record.c:316
 #, c-format
 msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:317
+#: src/conversation/gnunet-helper-audio-record.c:320
 #, c-format
 msgid "Using sample spec '%s', channel map '%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:324
+#: src/conversation/gnunet-helper-audio-record.c:327
 #, fuzzy, c-format
 msgid "Connected to device %s (%u, %ssuspended).\n"
 msgstr "\"%s\" ansluten till \"%s\".\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:333
+#: src/conversation/gnunet-helper-audio-record.c:336
 #, c-format
 msgid "Stream error: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:380
+#: src/conversation/gnunet-helper-audio-record.c:383
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s\n"
 msgstr ""
@@ -1026,17 +1038,17 @@
 msgstr "Jag är ändpunkt \"%s\".\n"
 
 #: src/core/gnunet-core.c:110 src/core/gnunet-core.c:138
-#: src/transport/gnunet-transport.c:609 src/transport/gnunet-transport.c:634
+#: src/transport/gnunet-transport.c:630 src/transport/gnunet-transport.c:650
 #, c-format
 msgid "%24s: %-17s %4s   (%u connections in total)\n"
 msgstr ""
 
-#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:611
+#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:631
 #, fuzzy
 msgid "Connected to"
 msgstr "\"%s\" ansluten till \"%s\".\n"
 
-#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:636
+#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:651
 #, fuzzy
 msgid "Disconnected from"
 msgstr "\"%s\" ansluten till \"%s\".\n"
@@ -1046,7 +1058,7 @@
 msgid "Invalid command line argument `%s'\n"
 msgstr "Ogiltiga kommandoradsargument:\n"
 
-#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1028
+#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1127
 #, fuzzy
 msgid "provide information about all current connections (continuously)"
 msgstr "Skriv ut information om GNUnets motparter."
@@ -1118,7 +1130,7 @@
 msgstr "# PING-meddelanden skapade"
 
 #: src/core/gnunet-service-core_kx.c:950
-#: src/transport/gnunet-service-transport_validation.c:974
+#: src/transport/gnunet-service-transport_validation.c:968
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# PING-meddelanden skapade"
@@ -1151,7 +1163,7 @@
 msgstr "# PING-meddelanden i klartext skickade"
 
 #: src/core/gnunet-service-core_kx.c:1095
-#: src/transport/gnunet-service-transport_validation.c:1285
+#: src/transport/gnunet-service-transport_validation.c:1280
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
@@ -1256,11 +1268,11 @@
 #: src/fs/gnunet-service-fs_cp.c:604 src/fs/gnunet-service-fs_cp.c:1499
 #: src/topology/gnunet-daemon-topology.c:706
 #: src/topology/gnunet-daemon-topology.c:807
-#: src/transport/gnunet-service-transport_neighbours.c:929
-#: src/transport/gnunet-service-transport_neighbours.c:1161
-#: src/transport/gnunet-service-transport_neighbours.c:1170
-#: src/transport/gnunet-service-transport_neighbours.c:3015
-#: src/transport/gnunet-service-transport_neighbours.c:3291
+#: src/transport/gnunet-service-transport_neighbours.c:837
+#: src/transport/gnunet-service-transport_neighbours.c:1069
+#: src/transport/gnunet-service-transport_neighbours.c:1078
+#: src/transport/gnunet-service-transport_neighbours.c:2920
+#: src/transport/gnunet-service-transport_neighbours.c:3181
 #, fuzzy
 msgid "# peers connected"
 msgstr "# av anslutna parter"
@@ -1339,6 +1351,9 @@
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:52
+#: src/testbed/generate-underlay-topology.c:47
+#: src/testbed/gnunet-daemon-latency-logger.c:52
+#: src/testbed/gnunet-daemon-testbed-underlay.c:55
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
 #: src/include/gnunet_common.h:602 src/include/gnunet_common.h:611
 #: src/scalarproduct/scalarproduct.h:61
@@ -1670,6 +1685,9 @@
 msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:57
+#: src/testbed/generate-underlay-topology.c:50
+#: src/testbed/gnunet-daemon-latency-logger.c:55
+#: src/testbed/gnunet-daemon-testbed-underlay.c:58
 #, fuzzy, c-format
 msgid "`%s' failed at %s:%u with error: %s"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
@@ -3392,7 +3410,7 @@
 msgstr "Kommando \"%s\" kräver ett argument (\"%s\").\n"
 
 #: src/fs/gnunet-publish.c:778 src/fs/gnunet-publish.c:785
-#: src/transport/gnunet-transport.c:865 src/transport/gnunet-transport.c:899
+#: src/transport/gnunet-transport.c:977 src/transport/gnunet-transport.c:1007
 #, c-format
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr ""
@@ -4040,8 +4058,8 @@
 #: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
 #: src/hostlist/hostlist-client.c:871 src/hostlist/hostlist-client.c:963
 #: src/hostlist/hostlist-client.c:968
-#: src/transport/plugin_transport_http_client.c:1070
-#: src/transport/plugin_transport_http_client.c:1085
+#: src/transport/plugin_transport_http_client.c:1062
+#: src/transport/plugin_transport_http_client.c:1077
 #, fuzzy, c-format
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
@@ -4333,37 +4351,37 @@
 msgid "Modified %u addresses \n"
 msgstr ""
 
-#: src/hello/hello.c:943
+#: src/hello/hello.c:944
 #, fuzzy
 msgid "Failed to parse HELLO message: missing expiration time\n"
 msgstr "Kunde inte spara konfiguration!"
 
-#: src/hello/hello.c:952
+#: src/hello/hello.c:953
 #, fuzzy
 msgid "Failed to parse HELLO message: invalid expiration time\n"
 msgstr "Kunde inte spara konfiguration!"
 
-#: src/hello/hello.c:962
+#: src/hello/hello.c:963
 #, fuzzy
 msgid "Failed to parse HELLO message: malformed\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/hello/hello.c:972
+#: src/hello/hello.c:973
 #, fuzzy
 msgid "Failed to parse HELLO message: missing transport plugin\n"
 msgstr "Kunde inte slå upp \"%s\": %s\n"
 
-#: src/hello/hello.c:989
+#: src/hello/hello.c:990
 #, c-format
 msgid "Plugin `%s' not found\n"
 msgstr ""
 
-#: src/hello/hello.c:998
+#: src/hello/hello.c:999
 #, c-format
 msgid "Plugin `%s' does not support URIs yet\n"
 msgstr ""
 
-#: src/hello/hello.c:1017
+#: src/hello/hello.c:1018
 #, fuzzy, c-format
 msgid "Failed to parse `%s' as an address for plugin `%s'\n"
 msgstr "Misslyckades att binda till UDP-port %d.\n"
@@ -4610,7 +4628,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556 src/peerinfo-tool/gnunet-peerinfo.c:651
-#: src/transport/gnunet-service-transport.c:946
+#: src/transport/gnunet-service-transport.c:867
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Kunde inte komma åt namnrymdsinformation.\n"
@@ -4722,49 +4740,34 @@
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/mesh/gnunet-mesh.c:342
+#: src/mesh/gnunet-mesh.c:343
 #, fuzzy, c-format
 msgid "Invalid target `%s'\n"
 msgstr "Ogiltigt argument: \"%s\"\n"
 
-#: src/mesh/gnunet-mesh.c:503
+#: src/mesh/gnunet-mesh.c:521
 #, fuzzy, c-format
 msgid "Invalid tunnel owner `%s'\n"
 msgstr "Ogiltigt format för IP: \"%s\"\n"
 
-#: src/mesh/gnunet-mesh.c:568
+#: src/mesh/gnunet-mesh.c:586
 msgid "You must NOT give a TARGET when using options\n"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:645
-#, fuzzy
-msgid "provide information about a particular channel"
-msgstr "Skriv ut information om GNUnets motparter."
-
-#: src/mesh/gnunet-mesh.c:648
-#, fuzzy
-msgid "provide information about a particular connection"
-msgstr "Skriv ut information om GNUnets motparter."
-
-#: src/mesh/gnunet-mesh.c:651
+#: src/mesh/gnunet-mesh.c:669
 msgid "activate echo mode"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:654
+#: src/mesh/gnunet-mesh.c:672
 #, fuzzy
 msgid "provide information about all tunnels"
 msgstr "Skriv ut information om GNUnets motparter."
 
-#: src/mesh/gnunet-mesh.c:657
-#, fuzzy
-msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
-msgstr "Skriv ut information om GNUnets motparter."
-
-#: src/mesh/gnunet-mesh.c:660
+#: src/mesh/gnunet-mesh.c:678
 msgid "port to listen to (default; 0)"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:663
+#: src/mesh/gnunet-mesh.c:681
 #, fuzzy
 msgid "provide information about a particular tunnel"
 msgstr "Skriv ut information om GNUnets motparter."
@@ -4896,7 +4899,7 @@
 msgstr ""
 
 #: src/namestore/gnunet-namestore.c:715
-#: src/peerinfo-tool/gnunet-peerinfo.c:703
+#: src/peerinfo-tool/gnunet-peerinfo.c:702
 #, fuzzy, c-format
 msgid "Invalid URI `%s'\n"
 msgstr "Ogiltiga argument: "
@@ -5067,55 +5070,55 @@
 msgid "NAT traversal with ICMP Server timed out.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:200
+#: src/nat/nat_auto.c:203
 msgid "NAT traversal with ICMP Server succeeded.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:201
+#: src/nat/nat_auto.c:204
 msgid "NAT traversal with ICMP Server failed.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:222
+#: src/nat/nat_auto.c:225
 #, fuzzy
 msgid "Testing connection reversal with ICMP server.\n"
 msgstr "Skriv ut information om GNUnets motparter."
 
-#: src/nat/nat_auto.c:269
+#: src/nat/nat_auto.c:274
 #, fuzzy, c-format
 msgid "Detected external IP `%s'\n"
 msgstr "Mottog ogiltig RPC \"%s\".\n"
 
-#: src/nat/nat_auto.c:339
+#: src/nat/nat_auto.c:344
 msgid "This system has a global IPv6 address, setting IPv6 to supported.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:355
+#: src/nat/nat_auto.c:360
 #, c-format
 msgid "Detected internal network address `%s'.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:408
+#: src/nat/nat_auto.c:413
 msgid "upnpc found, enabling its use\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:409
+#: src/nat/nat_auto.c:414
 #, fuzzy
 msgid "upnpc not found\n"
 msgstr "Kommando \"%s\" hittades inte!\n"
 
-#: src/nat/nat_auto.c:442
+#: src/nat/nat_auto.c:447
 msgid "gnunet-helper-nat-server found, testing it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:443
+#: src/nat/nat_auto.c:448
 msgid "No working gnunet-helper-nat-server found\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:477
+#: src/nat/nat_auto.c:482
 msgid "gnunet-helper-nat-client found, enabling it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:478
+#: src/nat/nat_auto.c:483
 msgid "gnunet-helper-nat-client not found or behind NAT, disabling it\n"
 msgstr ""
 
@@ -5129,40 +5132,66 @@
 msgid "Failed to start %s\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/nat/nat.c:1203
+#: src/nat/nat.c:1205
 msgid "malformed"
 msgstr ""
 
-#: src/nat/nat.c:1274 src/nat/nat.c:1286
+#: src/nat/nat.c:1276 src/nat/nat.c:1288
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1424
+#: src/nat/nat.c:1426
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1440
+#: src/nat/nat.c:1442
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:170
+#: src/nat/nat_mini.c:155
+msgid "no valid address was returned by `external-ip'"
+msgstr ""
+
+#: src/nat/nat_mini.c:175
+msgid "`external-ip' command not found"
+msgstr ""
+
+#: src/nat/nat_mini.c:201
 msgid "`external-ip' command not found\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:505
+#: src/nat/nat_mini.c:366
+#, fuzzy
+msgid "Failed to run `upnpc` command"
+msgstr "Misslyckades att starta samling.\n"
+
+#: src/nat/nat_mini.c:512
+msgid "`upnpc' command took too long, process killed"
+msgstr ""
+
+#: src/nat/nat_mini.c:540
+msgid "`upnpc' command failed to establish port mapping"
+msgstr ""
+
+#: src/nat/nat_mini.c:604
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_mini.c:608
 #, fuzzy
+msgid "`upnpc` command not found"
+msgstr "Kommando \"%s\" hittades inte!\n"
+
+#: src/nat/nat_test.c:351
+#, fuzzy
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/nat/nat_test.c:420
+#: src/nat/nat_test.c:423
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
@@ -5198,14 +5227,10 @@
 msgstr "Kan inte tillgå tjänsten"
 
 #: src/nse/gnunet-service-nse.c:1461
-#: src/revocation/gnunet-service-revocation.c:789
+#: src/revocation/gnunet-service-revocation.c:789 src/util/gnunet-scrypt.c:248
 msgid "Value is too large.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1488
-msgid "NSE service is lacking key configuration settings.  Exiting.\n"
-msgstr ""
-
 #: src/peerinfo/gnunet-service-peerinfo.c:215
 #, fuzzy, c-format
 msgid "Removing expired address of transport `%s'\n"
@@ -5318,54 +5343,49 @@
 msgid "Failure adding HELLO: %s\n"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:661
+#: src/peerinfo-tool/gnunet-peerinfo.c:666 src/util/gnunet-scrypt.c:224
 #, fuzzy, c-format
-msgid "Could not find option `%s:%s' in configuration.\n"
-msgstr "Kunde inte hitta motpart \"%s\" i routingtabell!\n"
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:667
-#, fuzzy, c-format
 msgid "Loading hostkey from `%s' failed.\n"
 msgstr "Tolkning av HTTP-svar för URL \"%s\" misslyckades.\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:725
+#: src/peerinfo-tool/gnunet-peerinfo.c:724
 #, c-format
 msgid "I am peer `%s'.\n"
 msgstr "Jag är ändpunkt \"%s\".\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:769
+#: src/peerinfo-tool/gnunet-peerinfo.c:768
 msgid "don't resolve host names"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:772
+#: src/peerinfo-tool/gnunet-peerinfo.c:771
 msgid "output only the identity strings"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:775
+#: src/peerinfo-tool/gnunet-peerinfo.c:774
 msgid "include friend-only information"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:778
+#: src/peerinfo-tool/gnunet-peerinfo.c:777
 msgid "output our own identity only"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:781
+#: src/peerinfo-tool/gnunet-peerinfo.c:780
 msgid "list all known peers"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:784
+#: src/peerinfo-tool/gnunet-peerinfo.c:783
 msgid "dump hello to file"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:787
+#: src/peerinfo-tool/gnunet-peerinfo.c:786
 msgid "also output HELLO uri(s)"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:790
+#: src/peerinfo-tool/gnunet-peerinfo.c:789
 msgid "add given HELLO uri to the database"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:801
+#: src/peerinfo-tool/gnunet-peerinfo.c:800
 #, fuzzy
 msgid "Print information about peers."
 msgstr "Skriv ut information om GNUnets motparter."
@@ -6012,6 +6032,14 @@
 msgid "Failed to send a message to the scalarproduct service\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
+#: src/secretsharing/gnunet-secretsharing-profiler.c:303
+msgid "dkg timeout"
+msgstr ""
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:306
+msgid "threshold"
+msgstr ""
+
 #: src/set/gnunet-service-set.c:1416
 #, fuzzy
 msgid "Could not connect to mesh service\n"
@@ -6144,19 +6172,94 @@
 "might have been lost!\n"
 msgstr ""
 
+#: src/testbed/generate-underlay-topology.c:223
+msgid "Need atleast 2 arguments\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:228
+msgid "Database filename missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:235
+msgid "Topology string missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:240
+#, fuzzy, c-format
+msgid "Invalid topology: %s\n"
+msgstr "Ogiltigt argument: \"%s\"\n"
+
+#: src/testbed/generate-underlay-topology.c:252
+#, c-format
+msgid "An argument is missing for given topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:258
+#, fuzzy, c-format
+msgid "Invalid argument `%s' given as topology argument\n"
+msgstr "Ogiltigt argument: \"%s\"\n"
+
+#: src/testbed/generate-underlay-topology.c:266
+#, c-format
+msgid "Filename argument missing for topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:280
+#, c-format
+msgid "Second argument for topology `%s' is missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:286
+#, fuzzy, c-format
+msgid "Invalid argument `%s'; expecting unsigned int\n"
+msgstr "Ogiltigt argument: \"%s\"\n"
+
+#: src/testbed/generate-underlay-topology.c:335
+#: src/testbed/gnunet-testbed-profiler.c:293
+msgid "create COUNT number of peers"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:344
+msgid ""
+"Generates SQLite3 database representing a given underlay topology.\n"
+"Usage: gnunet-underlay-topology [OPTIONS] db-filename TOPO [TOPOOPTS]\n"
+"The following options are available for TOPO followed by TOPOOPTS if "
+"applicable:\n"
+"\t LINE\n"
+"\t RING\n"
+"\t RANDOM <num_rnd_links>\n"
+"\t SMALL_WORLD <num_rnd_links>\n"
+"\t SMALL_WORLD_RING <num_rnd_links>\n"
+"\t CLIQUE\n"
+"\t 2D_TORUS\n"
+"\t SCALE_FREE <cap> <m>\n"
+"\t FROM_FILE <filename>\n"
+"TOPOOPTS:\n"
+"\t num_rnd_links: The number of random links\n"
+"\t cap: the maximum number of links a node can have\n"
+"\t m: the number of links a node should have while joining the network\n"
+"\t filename: the path of the file which contains topology information\n"
+"NOTE: the format of the above file is descibed here: https://www.gnunet.org/";
+"content/topology-file-format\n"
+msgstr ""
+
+#: src/testbed/gnunet-daemon-latency-logger.c:325
+msgid "Daemon to log latency values of connections to neighbours"
+msgstr ""
+
 #: src/testbed/gnunet-daemon-testbed-blacklist.c:264
 msgid ""
 "Daemon to restrict incoming transport layer connections during testbed "
 "deployments"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:300 src/testing/testing.c:293
-#: src/util/gnunet-ecc.c:217
+#: src/testbed/gnunet-daemon-testbed-underlay.c:235 src/testing/list-keys.c:50
+#: src/testing/testing.c:293 src/util/gnunet-ecc.c:217
 #, c-format
 msgid "Incorrect hostkey file format: %s\n"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:553
+#: src/testbed/gnunet-daemon-testbed-underlay.c:474
 msgid "Daemon to restrict underlay network in testbed deployments"
 msgstr ""
 
@@ -6195,10 +6298,6 @@
 msgid "Exiting as the number of peers is %u\n"
 msgstr "Maximalt antal chattklienter uppnått.\n"
 
-#: src/testbed/gnunet-testbed-profiler.c:293
-msgid "create COUNT number of peers"
-msgstr ""
-
 #: src/testbed/gnunet-testbed-profiler.c:296
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6235,100 +6334,100 @@
 msgid "Adding host %u failed with error: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
 
-#: src/testbed/testbed_api_testbed.c:820
+#: src/testbed/testbed_api_testbed.c:819
 msgid "Linking controllers failed. Exiting"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:989
+#: src/testbed/testbed_api_testbed.c:988
 #, c-format
 msgid "Host registration failed for a host. Error: %s\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1055
+#: src/testbed/testbed_api_testbed.c:1054
 msgid "Controller crash detected. Shutting down.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1144
+#: src/testbed/testbed_api_testbed.c:1143
 #, c-format
 msgid "Host %s cannot start testbed\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1148
+#: src/testbed/testbed_api_testbed.c:1147
 msgid "Testbed cannot be started on localhost\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1186
+#: src/testbed/testbed_api_testbed.c:1185
 msgid "Cannot start the master controller"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1204
+#: src/testbed/testbed_api_testbed.c:1203
 msgid "Shutting down testbed due to timeout while setup.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1264
+#: src/testbed/testbed_api_testbed.c:1263
 msgid "No hosts loaded from LoadLeveler. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1276
+#: src/testbed/testbed_api_testbed.c:1275
 msgid "No hosts loaded. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1300
+#: src/testbed/testbed_api_testbed.c:1299
 msgid "Specified topology must be supported by testbed"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1350
+#: src/testbed/testbed_api_testbed.c:1349
 #, c-format
 msgid ""
 "Maximum number of edges a peer can have in a scale free topology cannot be "
 "more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1366
+#: src/testbed/testbed_api_testbed.c:1365
 #, c-format
 msgid ""
 "The number of edges that can established when adding a new node to scale "
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:715
+#: src/testbed/testbed_api_topology.c:960
 #, fuzzy, c-format
 msgid "Topology file %s not found\n"
 msgstr "\"%s\" misslyckades: tabell hittades inte!\n"
 
-#: src/testbed/testbed_api_topology.c:721
+#: src/testbed/testbed_api_topology.c:966
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:728
+#: src/testbed/testbed_api_topology.c:973
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:750
+#: src/testbed/testbed_api_topology.c:995
 #, fuzzy, c-format
 msgid "Failed to read peer index from toology file: %s"
 msgstr "Kunde inte tolka konfigurationsfil \"%s\".\n"
 
-#: src/testbed/testbed_api_topology.c:759
-#: src/testbed/testbed_api_topology.c:783
+#: src/testbed/testbed_api_topology.c:1004
+#: src/testbed/testbed_api_topology.c:1028
 #, c-format
 msgid "Value in given topology file: %s out of range\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:765
-#: src/testbed/testbed_api_topology.c:789
+#: src/testbed/testbed_api_topology.c:1010
+#: src/testbed/testbed_api_topology.c:1034
 #, fuzzy, c-format
 msgid "Failed to read peer index from topology file: %s"
 msgstr "Kunde inte tolka konfigurationsfil \"%s\".\n"
 
-#: src/testbed/testbed_api_topology.c:771
-#: src/testbed/testbed_api_topology.c:795
+#: src/testbed/testbed_api_topology.c:1016
+#: src/testbed/testbed_api_topology.c:1040
 msgid "Topology file needs more peers than given ones\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:810
+#: src/testbed/testbed_api_topology.c:1074
 #, fuzzy, c-format
 msgid "Ignoring to connect peer %u to peer %u\n"
 msgstr "Kan inte ansluta till %u.%u.%u.%u:%u: %s\n"
@@ -6372,6 +6471,14 @@
 msgid "Command line tool to access the testing library"
 msgstr ""
 
+#: src/testing/list-keys.c:90
+msgid "list COUNT number of keys"
+msgstr ""
+
+#: src/testing/list-keys.c:93
+msgid "skip COUNT number of keys in the beginning"
+msgstr ""
+
 #: src/testing/testing.c:277
 #, c-format
 msgid "Hostkeys file not found: %s\n"
@@ -6507,38 +6614,38 @@
 msgstr ""
 
 #: src/transport/gnunet-service-transport_blacklist.c:455
-#: src/transport/gnunet-service-transport_blacklist.c:722
+#: src/transport/gnunet-service-transport_blacklist.c:725
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:206
+#: src/transport/gnunet-service-transport.c:201
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport.c:325
+#: src/transport/gnunet-service-transport.c:304
 #, fuzzy
 msgid "# bytes total received"
 msgstr "# byte krypterade"
 
-#: src/transport/gnunet-service-transport.c:399
+#: src/transport/gnunet-service-transport.c:371
 #, fuzzy
 msgid "# bytes payload received"
 msgstr "# byte dekrypterade"
 
-#: src/transport/gnunet-service-transport.c:574
+#: src/transport/gnunet-service-transport.c:527
 #, fuzzy, c-format
 msgid "Could not obtain a valid network for `%s' %s (%s)\n"
 msgstr "Kunde inte köra \"%s\": %s\n"
 
-#: src/transport/gnunet-service-transport.c:628
+#: src/transport/gnunet-service-transport.c:574
 #, c-format
 msgid ""
 "Address or session unknown: failed to update properties for peer `%s' plugin "
 "`%s' address `%s' session %p\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:916
+#: src/transport/gnunet-service-transport.c:837
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "GNUnet-konfiguration"
@@ -6552,16 +6659,16 @@
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:533
+#: src/transport/gnunet-service-transport_clients.c:540
 #, c-format
 msgid "Rejecting control connection from peer `%s', which is not me!\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:674
+#: src/transport/gnunet-service-transport_clients.c:681
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:731
+#: src/transport/gnunet-service-transport_clients.c:738
 #, fuzzy
 msgid "# REQUEST CONNECT messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
@@ -6570,165 +6677,165 @@
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1108
+#: src/transport/gnunet-service-transport_neighbours.c:1016
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1244
-#: src/transport/gnunet-service-transport_neighbours.c:1653
+#: src/transport/gnunet-service-transport_neighbours.c:1152
+#: src/transport/gnunet-service-transport_neighbours.c:1562
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1249
+#: src/transport/gnunet-service-transport_neighbours.c:1157
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1254
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1311
+#: src/transport/gnunet-service-transport_neighbours.c:1219
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1368
+#: src/transport/gnunet-service-transport_neighbours.c:1276
 #, fuzzy
 msgid "# keepalives sent"
 msgstr "# sessionsnycklar skickade"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1401
+#: src/transport/gnunet-service-transport_neighbours.c:1309
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1409
+#: src/transport/gnunet-service-transport_neighbours.c:1317
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1456
+#: src/transport/gnunet-service-transport_neighbours.c:1364
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1465
+#: src/transport/gnunet-service-transport_neighbours.c:1373
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1473
+#: src/transport/gnunet-service-transport_neighbours.c:1381
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (address changed)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1481
+#: src/transport/gnunet-service-transport_neighbours.c:1389
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (wrong nonce)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1558
+#: src/transport/gnunet-service-transport_neighbours.c:1467
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1592
+#: src/transport/gnunet-service-transport_neighbours.c:1501
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1517
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1700
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 #, fuzzy
 msgid "# SESSION_CONNECT messages sent"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1716
+#: src/transport/gnunet-service-transport_neighbours.c:1625
 #, fuzzy, c-format
 msgid "Failed to transmit CONNECT message via plugin to %s\n"
 msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1759
+#: src/transport/gnunet-service-transport_neighbours.c:1668
 #, fuzzy
 msgid "# CONNECT_ACK messages sent"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2236
+#: src/transport/gnunet-service-transport_neighbours.c:2149
 #, fuzzy
 msgid "# CONNECT messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2241
+#: src/transport/gnunet-service-transport_neighbours.c:2154
 #, c-format
 msgid "CONNECT request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2979
+#: src/transport/gnunet-service-transport_neighbours.c:2885
 #, fuzzy
 msgid "# CONNECT_ACK messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2987
+#: src/transport/gnunet-service-transport_neighbours.c:2893
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3002
-#: src/transport/gnunet-service-transport_neighbours.c:3039
+#: src/transport/gnunet-service-transport_neighbours.c:2908
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3052
+#: src/transport/gnunet-service-transport_neighbours.c:2957
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3085
+#: src/transport/gnunet-service-transport_neighbours.c:2987
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3265
+#: src/transport/gnunet-service-transport_neighbours.c:3156
 #, fuzzy
 msgid "# SESSION_ACK messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3284
+#: src/transport/gnunet-service-transport_neighbours.c:3175
 #, fuzzy
 msgid "# unexpected SESSION_ACK messages"
 msgstr "# krypterade PONG-meddelanden skickade"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3340
+#: src/transport/gnunet-service-transport_neighbours.c:3230
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3355
+#: src/transport/gnunet-service-transport_neighbours.c:3245
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3383
+#: src/transport/gnunet-service-transport_neighbours.c:3273
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3389
+#: src/transport/gnunet-service-transport_neighbours.c:3279
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3398
+#: src/transport/gnunet-service-transport_neighbours.c:3288
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3434
+#: src/transport/gnunet-service-transport_neighbours.c:3324
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3532
+#: src/transport/gnunet-service-transport_neighbours.c:3423
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# av anslutna parter"
@@ -6757,445 +6864,450 @@
 msgid "Did not load plugin `%s' due to missing functions\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:456
+#: src/transport/gnunet-service-transport_validation.c:452
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:526
+#: src/transport/gnunet-service-transport_validation.c:522
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:584
+#: src/transport/gnunet-service-transport_validation.c:580
 #, fuzzy
 msgid "# PING without HELLO messages sent"
 msgstr "# PING-meddelanden i klartext skickade"
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:681
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:969
+#: src/transport/gnunet-service-transport_validation.c:963
 #, fuzzy
 msgid "# PING message for different peer received"
 msgstr "# PING-meddelanden skapade"
 
-#: src/transport/gnunet-service-transport_validation.c:1019
+#: src/transport/gnunet-service-transport_validation.c:1014
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1029
+#: src/transport/gnunet-service-transport_validation.c:1024
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1032
+#: src/transport/gnunet-service-transport_validation.c:1027
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1040
+#: src/transport/gnunet-service-transport_validation.c:1035
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1052
+#: src/transport/gnunet-service-transport_validation.c:1047
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1060
+#: src/transport/gnunet-service-transport_validation.c:1055
 #, c-format
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1114
+#: src/transport/gnunet-service-transport_validation.c:1109
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1163
+#: src/transport/gnunet-service-transport_validation.c:1158
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1172
+#: src/transport/gnunet-service-transport_validation.c:1167
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1312
+#: src/transport/gnunet-service-transport_validation.c:1308
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1327
+#: src/transport/gnunet-service-transport_validation.c:1323
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1448
+#: src/transport/gnunet-service-transport_validation.c:1442
 #, fuzzy, c-format
+msgid "Validation received new %s message for peer `%s' with size %u\n"
+msgstr "Mottog ogiltigt \"%s\" meddelande från \"%s\".\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1449
+#, fuzzy, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
 
-#: src/transport/gnunet-transport.c:258
+#: src/transport/gnunet-transport.c:285
 #, fuzzy, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/transport/gnunet-transport.c:265
+#: src/transport/gnunet-transport.c:293
 #, c-format
 msgid "Received %llu bytes/s (%llu bytes in %s)\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:296
+#: src/transport/gnunet-transport.c:331
 #, fuzzy, c-format
 msgid "Failed to connect to `%s'\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:309
+#: src/transport/gnunet-transport.c:344
 #, fuzzy, c-format
 msgid "Failed to resolve address for peer `%s'\n"
 msgstr "Misslyckades att binda till UDP-port %d.\n"
 
-#: src/transport/gnunet-transport.c:318
+#: src/transport/gnunet-transport.c:354
 #, fuzzy
 msgid "Failed to list connections, timeout occured\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:423
+#: src/transport/gnunet-transport.c:453
 msgid "No transport plugins configured, peer will never communicate\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:436
+#: src/transport/gnunet-transport.c:467
 #, c-format
 msgid "No port configured for plugin `%s', cannot test it\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:506
+#: src/transport/gnunet-transport.c:530
 #, fuzzy, c-format
 msgid "Transmitting %u bytes to %s\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/transport/gnunet-transport.c:529
+#: src/transport/gnunet-transport.c:551
 #, fuzzy, c-format
 msgid "Successfully connected to `%s'\n"
 msgstr "Åtkomst nekad för \"%s\" vid %s:%d.\n"
 
-#: src/transport/gnunet-transport.c:552
+#: src/transport/gnunet-transport.c:575
 #, c-format
 msgid ""
 "Successfully connected to `%s', starting to send benchmark data in %u Kb "
 "blocks\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:587
+#: src/transport/gnunet-transport.c:608
 #, fuzzy, c-format
 msgid "Disconnected from peer `%s' while benchmarking\n"
 msgstr "\"%s\" ansluten till \"%s\".\n"
 
-#: src/transport/gnunet-transport.c:660
+#: src/transport/gnunet-transport.c:670
 #, c-format
 msgid "Received %u bytes from %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:685
-#, fuzzy, c-format
-msgid "Peer `%s': %s %s\n"
-msgstr "Jag är ändpunkt \"%s\".\n"
-
-#: src/transport/gnunet-transport.c:704
+#: src/transport/gnunet-transport.c:693
 #, c-format
-msgid "Peer `%s': %s <unable to resolve address>\n"
+msgid "Peer `%s': %s %s in state `%s' until %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:772
+#: src/transport/gnunet-transport.c:703
 #, fuzzy, c-format
-msgid "Peer `%s' disconnected\n"
-msgstr "# av anslutna parter"
+msgid "Peer `%s': %s %s\n"
+msgstr "Jag är ändpunkt \"%s\".\n"
 
-#: src/transport/gnunet-transport.c:802
+#: src/transport/gnunet-transport.c:916
 #, fuzzy
 msgid "Failed to send connect request to transport service\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:848
+#: src/transport/gnunet-transport.c:959
 #, c-format
 msgid ""
 "Multiple operations given. Please choose only one operation: %s, %s, %s, %s, "
 "%s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:855
+#: src/transport/gnunet-transport.c:967
 #, c-format
 msgid ""
 "No operation given. Please choose one operation: %s, %s, %s, %s, %s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:878 src/transport/gnunet-transport.c:910
-#: src/transport/gnunet-transport.c:932 src/transport/gnunet-transport.c:969
+#: src/transport/gnunet-transport.c:986 src/transport/gnunet-transport.c:1016
+#: src/transport/gnunet-transport.c:1039 src/transport/gnunet-transport.c:1070
 #, fuzzy
 msgid "Failed to connect to transport service\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:887 src/transport/gnunet-transport.c:917
+#: src/transport/gnunet-transport.c:995 src/transport/gnunet-transport.c:1025
 #, fuzzy
 msgid "Failed to send request to transport service\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:937
+#: src/transport/gnunet-transport.c:1044
 msgid "Starting to receive benchmark data\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1019
+#: src/transport/gnunet-transport.c:1116
+#, fuzzy
+msgid "print information for all peers (instead of only connected peers )"
+msgstr "Skriv ut information om GNUnets motparter."
+
+#: src/transport/gnunet-transport.c:1119
 msgid "measure how fast we are receiving data from all peers (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1022
+#: src/transport/gnunet-transport.c:1121
 #, fuzzy
 msgid "connect to a peer"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:1025
+#: src/transport/gnunet-transport.c:1124
 #, fuzzy
 msgid "provide information about all current connections (once)"
 msgstr "Skriv ut information om GNUnets motparter."
 
-#: src/transport/gnunet-transport.c:1031
+#: src/transport/gnunet-transport.c:1130
 #, fuzzy
 msgid ""
 "provide information about all connects and disconnect events (continuously)"
 msgstr "Skriv ut information om GNUnets motparter."
 
-#: src/transport/gnunet-transport.c:1034
+#: src/transport/gnunet-transport.c:1132
 #, fuzzy
 msgid "do not resolve hostnames"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/transport/gnunet-transport.c:1037
+#: src/transport/gnunet-transport.c:1134
 msgid "peer identity"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1041
+#: src/transport/gnunet-transport.c:1136
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1044
+#: src/transport/gnunet-transport.c:1139
 msgid "test transport configuration (involves external server)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1055
+#: src/transport/gnunet-transport.c:1148
 #, fuzzy
 msgid "Direct access to transport service."
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/plugin_transport_bluetooth.c:616
+#: src/transport/plugin_transport_bluetooth.c:618
 msgid "# Bluetooth ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:635
+#: src/transport/plugin_transport_bluetooth.c:637
 #, fuzzy
 msgid "# Bluetooth messages defragmented"
 msgstr "# PING-meddelanden skapade"
 
-#: src/transport/plugin_transport_bluetooth.c:681
-#: src/transport/plugin_transport_bluetooth.c:731
-#: src/transport/plugin_transport_bluetooth.c:1881
+#: src/transport/plugin_transport_bluetooth.c:683
+#: src/transport/plugin_transport_bluetooth.c:733
+#: src/transport/plugin_transport_bluetooth.c:1888
 #, fuzzy
 msgid "# Bluetooth sessions allocated"
 msgstr "# sessionsnycklar accepterade"
 
-#: src/transport/plugin_transport_bluetooth.c:806
+#: src/transport/plugin_transport_bluetooth.c:808
 #, fuzzy
 msgid "# Bluetooth message fragments sent"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_bluetooth.c:830
+#: src/transport/plugin_transport_bluetooth.c:832
 msgid "# Bluetooth messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:938
-#: src/transport/plugin_transport_bluetooth.c:1023
-#: src/transport/plugin_transport_bluetooth.c:1883
+#: src/transport/plugin_transport_bluetooth.c:940
+#: src/transport/plugin_transport_bluetooth.c:1026
+#: src/transport/plugin_transport_bluetooth.c:1890
 #, fuzzy
 msgid "# Bluetooth MAC endpoints allocated"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_bluetooth.c:1250
+#: src/transport/plugin_transport_bluetooth.c:1254
 #, fuzzy
 msgid "# HELLO messages received via Bluetooth"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_bluetooth.c:1276
+#: src/transport/plugin_transport_bluetooth.c:1277
 #, fuzzy
 msgid "# fragments received via Bluetooth"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_bluetooth.c:1286
+#: src/transport/plugin_transport_bluetooth.c:1287
 #, fuzzy
 msgid "# ACKs received via Bluetooth"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_bluetooth.c:1343
+#: src/transport/plugin_transport_bluetooth.c:1347
 #, fuzzy
 msgid "# Bluetooth DATA messages discarded due to CRC32 error"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/plugin_transport_bluetooth.c:1455
+#: src/transport/plugin_transport_bluetooth.c:1458
 #, fuzzy
 msgid "# DATA messages received via Bluetooth"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_bluetooth.c:1490
+#: src/transport/plugin_transport_bluetooth.c:1493
 #, fuzzy
 msgid "# Bluetooth DATA messages processed"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_bluetooth.c:1553
+#: src/transport/plugin_transport_bluetooth.c:1556
 #, fuzzy
 msgid "# HELLO beacons sent via Bluetooth"
 msgstr "# byte skickade via UDP"
 
-#: src/transport/plugin_transport_bluetooth.c:1666
+#: src/transport/plugin_transport_bluetooth.c:1669
 msgid "Bluetooth address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1862
+#: src/transport/plugin_transport_bluetooth.c:1869
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run bluetooth transport\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1618
+#: src/transport/plugin_transport_http_client.c:1621
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1693
-#: src/transport/plugin_transport_http_server.c:3001
+#: src/transport/plugin_transport_http_client.c:1696
+#: src/transport/plugin_transport_http_server.c:3006
 #, fuzzy, c-format
 msgid "Shutting down plugin `%s'\n"
 msgstr "Testar transport(er) %s\n"
 
-#: src/transport/plugin_transport_http_client.c:1718
-#: src/transport/plugin_transport_http_server.c:3059
+#: src/transport/plugin_transport_http_client.c:1721
+#: src/transport/plugin_transport_http_server.c:3062
 #, fuzzy, c-format
 msgid "Shutdown for plugin `%s' complete\n"
 msgstr ""
 "Uppladdning av \"%s\" klar, aktuell genomsnittshastighet är %8.3f kbps.\n"
 
-#: src/transport/plugin_transport_http_client.c:1746
-#: src/transport/plugin_transport_http_server.c:2901
+#: src/transport/plugin_transport_http_client.c:1749
+#: src/transport/plugin_transport_http_server.c:2906
 #, fuzzy, c-format
 msgid "Maximum number of connections is %u\n"
 msgstr "Maximalt antal chattklienter uppnått.\n"
 
-#: src/transport/plugin_transport_http_server.c:1416
+#: src/transport/plugin_transport_http_server.c:1402
 #, c-format
 msgid ""
 "Access from connection %p (%u of %u) for `%s' `%s' url `%s' with upload data "
 "size %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1680
+#: src/transport/plugin_transport_http_server.c:1663
 #, c-format
 msgid "Accepting connection (%u of %u) from `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1688
+#: src/transport/plugin_transport_http_server.c:1671
 #, c-format
 msgid ""
 "Server reached maximum number connections (%u), rejecting new connection\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1974
+#: src/transport/plugin_transport_http_server.c:1957
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1998
+#: src/transport/plugin_transport_http_server.c:1981
 #, c-format
 msgid "No usable TLS certificate found and creating one at `%s/%s' failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2405
+#: src/transport/plugin_transport_http_server.c:2404
 #, fuzzy
 msgid "Require valid port number for service in configuration!\n"
 msgstr "Inga applikationer definierade i konfiguration!\n"
 
-#: src/transport/plugin_transport_http_server.c:2437 src/util/service.c:696
+#: src/transport/plugin_transport_http_server.c:2436 src/util/service.c:696
 #, fuzzy, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
 
-#: src/transport/plugin_transport_http_server.c:2454 src/util/service.c:713
+#: src/transport/plugin_transport_http_server.c:2453 src/util/service.c:713
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "Misslyckades att binda till UDP-port %d.\n"
 
-#: src/transport/plugin_transport_http_server.c:2565
+#: src/transport/plugin_transport_http_server.c:2564
 #, c-format
 msgid "Found %u addresses to report to NAT service\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2637
+#: src/transport/plugin_transport_http_server.c:2636
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2724
+#: src/transport/plugin_transport_http_server.c:2729
 #, c-format
 msgid "IPv4 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2738
+#: src/transport/plugin_transport_http_server.c:2743
 #, c-format
 msgid "IPv6 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2745
+#: src/transport/plugin_transport_http_server.c:2750
 msgid "Neither IPv4 nor IPv6 are enabled! Fix in configuration\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2756
+#: src/transport/plugin_transport_http_server.c:2761
 #, fuzzy
 msgid "Port is required! Fix in configuration\n"
 msgstr " gconfig\tGTK-konfiguration\n"
 
-#: src/transport/plugin_transport_http_server.c:2763
+#: src/transport/plugin_transport_http_server.c:2768
 #, fuzzy, c-format
 msgid "Using port %u\n"
 msgstr "Testar transport(er) %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2778
+#: src/transport/plugin_transport_http_server.c:2783
 #, fuzzy, c-format
 msgid "Specific IPv4 address `%s' in configuration file is invalid!\n"
 msgstr ""
 "Du måste ange ett positivt nummer för \"%s\" i konfigurationen i sektion \"%s"
 "\".\n"
 
-#: src/transport/plugin_transport_http_server.c:2788
+#: src/transport/plugin_transport_http_server.c:2793
 #, fuzzy, c-format
 msgid "Binding to IPv4 address %s\n"
 msgstr "Ogiltigt svar på \"%s\".\n"
 
-#: src/transport/plugin_transport_http_server.c:2809
+#: src/transport/plugin_transport_http_server.c:2814
 #, fuzzy, c-format
 msgid "Specific IPv6 address `%s' in configuration file is invalid!\n"
 msgstr ""
 "Du måste ange ett positivt nummer för \"%s\" i konfigurationen i sektion \"%s"
 "\".\n"
 
-#: src/transport/plugin_transport_http_server.c:2819
+#: src/transport/plugin_transport_http_server.c:2824
 #, fuzzy, c-format
 msgid "Binding to IPv6 address %s\n"
 msgstr "Ogiltigt svar på \"%s\".\n"
 
-#: src/transport/plugin_transport_http_server.c:2871
+#: src/transport/plugin_transport_http_server.c:2876
 #, fuzzy, c-format
 msgid "Using external hostname `%s'\n"
 msgstr "Startade samling \"%s\".\n"
 
-#: src/transport/plugin_transport_http_server.c:2887
+#: src/transport/plugin_transport_http_server.c:2892
 #, fuzzy, c-format
 msgid "Notifying transport only about hostname `%s'\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
@@ -7248,233 +7360,232 @@
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:576
+#: src/transport/plugin_transport_tcp.c:559
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:799
-#: src/transport/plugin_transport_tcp.c:980
-#: src/transport/plugin_transport_tcp.c:2120
-#: src/transport/plugin_transport_tcp.c:2723
+#: src/transport/plugin_transport_tcp.c:766
+#: src/transport/plugin_transport_tcp.c:930
+#: src/transport/plugin_transport_tcp.c:1973
+#: src/transport/plugin_transport_tcp.c:2527
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# sessionsnycklar accepterade"
 
-#: src/transport/plugin_transport_tcp.c:836
-#: src/transport/plugin_transport_tcp.c:973
-#: src/transport/plugin_transport_tcp.c:1062
-#: src/transport/plugin_transport_tcp.c:1112
-#: src/transport/plugin_transport_tcp.c:1291
-#: src/transport/plugin_transport_tcp.c:1310
+#: src/transport/plugin_transport_tcp.c:797
+#: src/transport/plugin_transport_tcp.c:923
+#: src/transport/plugin_transport_tcp.c:1009
+#: src/transport/plugin_transport_tcp.c:1056
+#: src/transport/plugin_transport_tcp.c:1219
+#: src/transport/plugin_transport_tcp.c:1237
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# byte skickades via TCP"
 
-#: src/transport/plugin_transport_tcp.c:840
+#: src/transport/plugin_transport_tcp.c:800
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:1066
+#: src/transport/plugin_transport_tcp.c:1012
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:1115
+#: src/transport/plugin_transport_tcp.c:1059
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/plugin_transport_tcp.c:1264
+#: src/transport/plugin_transport_tcp.c:1193
 #, c-format
 msgid "Trying to send with invalid session %p\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1521
-#: src/transport/plugin_transport_udp.c:1488
+#: src/transport/plugin_transport_tcp.c:1427
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1645
+#: src/transport/plugin_transport_tcp.c:1532
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2170
+#: src/transport/plugin_transport_tcp.c:2021
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_tcp.c:2355
+#: src/transport/plugin_transport_tcp.c:2189
 msgid "# bytes received via TCP"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_tcp.c:2433
+#: src/transport/plugin_transport_tcp.c:2253
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2602 src/util/service.c:589
+#: src/transport/plugin_transport_tcp.c:2407 src/util/service.c:589
 #: src/util/service.c:595
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2616
+#: src/transport/plugin_transport_tcp.c:2421
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/transport/plugin_transport_tcp.c:2712
+#: src/transport/plugin_transport_tcp.c:2516
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
+#: src/transport/plugin_transport_tcp.c:2520
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2718
+#: src/transport/plugin_transport_tcp.c:2523
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:173
+#: src/transport/plugin_transport_udp_broadcasting.c:167
 #, fuzzy
 msgid "# IPv6 multicast HELLO beacons received via udp"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:222
+#: src/transport/plugin_transport_udp_broadcasting.c:210
 #, fuzzy
 msgid "# IPv4 broadcast HELLO beacons received via udp"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:606
+#: src/transport/plugin_transport_udp_broadcasting.c:594
 msgid ""
 "Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:629
+#: src/transport/plugin_transport_udp_broadcasting.c:617
 #, c-format
 msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1599
+#: src/transport/plugin_transport_udp.c:1406
 #, c-format
 msgid ""
 "Trying to create session for address of unexpected length %u (should be %u "
 "or %u)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2680
+#: src/transport/plugin_transport_udp.c:2474
 #, c-format
 msgid ""
 "UDP could not transmit message to `%s': Network seems down, please check "
 "your network configuration\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2694
+#: src/transport/plugin_transport_udp.c:2488
 msgid ""
 "UDP could not transmit IPv6 message! Please check your network configuration "
 "and disable IPv6 if your connection does not have a global IPv6 address\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2993
+#: src/transport/plugin_transport_udp.c:2817
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "Misslyckades att binda till UDP6-port %d.\n"
 
-#: src/transport/plugin_transport_udp.c:3091
+#: src/transport/plugin_transport_udp.c:2912
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:3134
+#: src/transport/plugin_transport_udp.c:2951
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Ogiltigt svar på \"%s\".\n"
 
-#: src/transport/plugin_transport_udp.c:3200
+#: src/transport/plugin_transport_udp.c:3021
 #, fuzzy
 msgid "Failed to create network sockets, plugin failed\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/transport/plugin_transport_unix.c:1657
+#: src/transport/plugin_transport_unix.c:1624
 #, fuzzy
 msgid "Failed to open UNIX listen socket\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
 
-#: src/transport/plugin_transport_wlan.c:623
+#: src/transport/plugin_transport_wlan.c:625
 msgid "# WLAN ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:642
+#: src/transport/plugin_transport_wlan.c:644
 #, fuzzy
 msgid "# WLAN messages defragmented"
 msgstr "# PING-meddelanden skapade"
 
-#: src/transport/plugin_transport_wlan.c:691
-#: src/transport/plugin_transport_wlan.c:778
-#: src/transport/plugin_transport_wlan.c:1937
+#: src/transport/plugin_transport_wlan.c:693
+#: src/transport/plugin_transport_wlan.c:780
+#: src/transport/plugin_transport_wlan.c:1952
 #, fuzzy
 msgid "# WLAN sessions allocated"
 msgstr "# sessionsnycklar accepterade"
 
-#: src/transport/plugin_transport_wlan.c:883
+#: src/transport/plugin_transport_wlan.c:886
 #, fuzzy
 msgid "# WLAN message fragments sent"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_wlan.c:907
+#: src/transport/plugin_transport_wlan.c:910
 msgid "# WLAN messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1015
-#: src/transport/plugin_transport_wlan.c:1101
-#: src/transport/plugin_transport_wlan.c:1939
+#: src/transport/plugin_transport_wlan.c:1018
+#: src/transport/plugin_transport_wlan.c:1105
+#: src/transport/plugin_transport_wlan.c:1954
 #, fuzzy
 msgid "# WLAN MAC endpoints allocated"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_wlan.c:1297
+#: src/transport/plugin_transport_wlan.c:1301
 #, fuzzy
 msgid "# HELLO messages received via WLAN"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_wlan.c:1323
+#: src/transport/plugin_transport_wlan.c:1325
 #, fuzzy
 msgid "# fragments received via WLAN"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_wlan.c:1333
+#: src/transport/plugin_transport_wlan.c:1335
 #, fuzzy
 msgid "# ACKs received via WLAN"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_wlan.c:1390
+#: src/transport/plugin_transport_wlan.c:1395
 #, fuzzy
 msgid "# WLAN DATA messages discarded due to CRC32 error"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/plugin_transport_wlan.c:1511
+#: src/transport/plugin_transport_wlan.c:1517
 #, fuzzy
 msgid "# DATA messages received via WLAN"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_wlan.c:1546
+#: src/transport/plugin_transport_wlan.c:1552
 #, fuzzy
 msgid "# WLAN DATA messages processed"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_wlan.c:1609
+#: src/transport/plugin_transport_wlan.c:1620
 #, fuzzy
 msgid "# HELLO beacons sent via WLAN"
 msgstr "# byte skickade via UDP"
 
-#: src/transport/plugin_transport_wlan.c:1722
+#: src/transport/plugin_transport_wlan.c:1733
 msgid "WLAN address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1918
+#: src/transport/plugin_transport_wlan.c:1933
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run WLAN transport\n"
 msgstr ""
@@ -7937,6 +8048,27 @@
 msgid "Use build-in GNUnet stub resolver"
 msgstr ""
 
+#: src/util/gnunet-scrypt.c:279
+msgid "number of bits to require for the proof of work"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:282
+msgid "file with private key, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:285
+msgid "file with proof of work, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:288
+msgid "time to wait between calculations"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:299
+#, fuzzy
+msgid "Manipulate GNUnet proof of work files"
+msgstr "skriv ut ett värde från konfigurationsfilen till standard ut"
+
 #: src/util/gnunet-service-resolver.c:283
 #, fuzzy, c-format
 msgid "Could not resolve `%s' (%s): %s\n"
@@ -8212,114 +8344,114 @@
 msgid "b"
 msgstr "b"
 
-#: src/util/strings.c:444
+#: src/util/strings.c:433
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
 msgstr ""
 
-#: src/util/strings.c:572
+#: src/util/strings.c:561
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 
-#: src/util/strings.c:669
+#: src/util/strings.c:658
 msgid "µs"
 msgstr ""
 
-#: src/util/strings.c:673
+#: src/util/strings.c:662
 msgid "forever"
 msgstr ""
 
-#: src/util/strings.c:675
+#: src/util/strings.c:664
 msgid "0 ms"
 msgstr ""
 
-#: src/util/strings.c:681
+#: src/util/strings.c:670
 msgid "ms"
 msgstr "ms"
 
-#: src/util/strings.c:687
+#: src/util/strings.c:676
 msgid "s"
 msgstr "s"
 
-#: src/util/strings.c:693
+#: src/util/strings.c:682
 msgid "m"
 msgstr "m"
 
-#: src/util/strings.c:699
+#: src/util/strings.c:688
 msgid "h"
 msgstr "h"
 
-#: src/util/strings.c:706
+#: src/util/strings.c:695
 #, fuzzy
 msgid "day"
 msgstr " dagar"
 
-#: src/util/strings.c:708
+#: src/util/strings.c:697
 #, fuzzy
 msgid "days"
 msgstr " dagar"
 
-#: src/util/strings.c:737
+#: src/util/strings.c:726
 msgid "end of time"
 msgstr ""
 
-#: src/util/strings.c:1170
+#: src/util/strings.c:1159
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
 
-#: src/util/strings.c:1178
+#: src/util/strings.c:1167
 msgid "IPv6 address did contain ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1184
+#: src/util/strings.c:1173
 msgid "IPv6 address did contain ']' before ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1191
+#: src/util/strings.c:1180
 msgid "IPv6 address did contain a valid port number after the last ':'\n"
 msgstr ""
 
-#: src/util/strings.c:1200
+#: src/util/strings.c:1189
 #, fuzzy, c-format
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Ogiltigt svar på \"%s\".\n"
 
-#: src/util/strings.c:1406 src/util/strings.c:1422
+#: src/util/strings.c:1395 src/util/strings.c:1411
 msgid "Port not in range\n"
 msgstr ""
 
-#: src/util/strings.c:1431
+#: src/util/strings.c:1420
 #, fuzzy, c-format
 msgid "Malformed port policy `%s'\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/util/strings.c:1514 src/util/strings.c:1545 src/util/strings.c:1593
-#: src/util/strings.c:1614
+#: src/util/strings.c:1503 src/util/strings.c:1534 src/util/strings.c:1582
+#: src/util/strings.c:1603
 #, c-format
 msgid "Invalid format for IP: `%s'\n"
 msgstr "Ogiltigt format för IP: \"%s\"\n"
 
-#: src/util/strings.c:1571
+#: src/util/strings.c:1560
 #, c-format
 msgid "Invalid network notation ('/%d' is not legal in IPv4 CIDR)."
 msgstr "Ogiltig nätverksnotation (\"/%d\" är inte giltig i IPv4 CIDR)."
 
-#: src/util/strings.c:1623
+#: src/util/strings.c:1612
 #, fuzzy, c-format
 msgid "Invalid format: `%s'\n"
 msgstr "Ogiltigt format för IP: \"%s\"\n"
 
-#: src/util/strings.c:1675
+#: src/util/strings.c:1664
 #, c-format
 msgid "Invalid network notation (does not end with ';': `%s')\n"
 msgstr "Ogiltig nätverksnotation (slutar inte med \";\": \"%s\")\n"
 
-#: src/util/strings.c:1725
+#: src/util/strings.c:1714
 #, fuzzy, c-format
 msgid "Wrong format `%s' for netmask\n"
 msgstr "Fel format \"%s\" för nätmask: %s\n"
 
-#: src/util/strings.c:1756
+#: src/util/strings.c:1745
 #, fuzzy, c-format
 msgid "Wrong format `%s' for network\n"
 msgstr "Fel format \"%s\" för nätverk: %s\n"
@@ -8524,6 +8656,26 @@
 msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d med fel: %s\n"
 
 #, fuzzy
+#~ msgid "provide information about a particular channel"
+#~ msgstr "Skriv ut information om GNUnets motparter."
+
+#, fuzzy
+#~ msgid "provide information about a particular connection"
+#~ msgstr "Skriv ut information om GNUnets motparter."
+
+#, fuzzy
+#~ msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
+#~ msgstr "Skriv ut information om GNUnets motparter."
+
+#, fuzzy
+#~ msgid "Could not find option `%s:%s' in configuration.\n"
+#~ msgstr "Kunde inte hitta motpart \"%s\" i routingtabell!\n"
+
+#, fuzzy
+#~ msgid "Peer `%s' disconnected\n"
+#~ msgstr "# av anslutna parter"
+
+#, fuzzy
 #~ msgid "Transport plugin: `%s' port %llu\n"
 #~ msgstr "Testar transport(er) %s\n"
 
@@ -9032,10 +9184,6 @@
 #~ msgstr "Kunde inte skapa värdnyckel!\n"
 
 #, fuzzy
-#~ msgid "Failed to start `gnunet-peerinfo' process.\n"
-#~ msgstr "Misslyckades att starta samling.\n"
-
-#, fuzzy
 #~ msgid "Failed to start `ssh' process.\n"
 #~ msgstr "Misslyckades att starta samling.\n"
 

Modified: gnunet/po/vi.po
===================================================================
--- gnunet/po/vi.po     2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/po/vi.po     2014-01-20 19:08:47 UTC (rev 31956)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2014-01-05 13:20+0100\n"
+"POT-Creation-Date: 2014-01-14 18:39+0100\n"
 "PO-Revision-Date: 2008-09-10 22:05+0930\n"
 "Last-Translator: Clytie Siddall <address@hidden>\n"
 "Language-Team: Vietnamese <address@hidden>\n"
@@ -362,49 +362,49 @@
 msgid "Received last message for %s \n"
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:1948
-#: src/ats/gnunet-service-ats_addresses.c:1992
+#: src/ats/gnunet-service-ats_addresses.c:1974
+#: src/ats/gnunet-service-ats_addresses.c:2018
 #, c-format
 msgid ""
 "Could not load quota for network `%s':  `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1955
+#: src/ats/gnunet-service-ats_addresses.c:1981
 #, c-format
 msgid "Outbound quota configure for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1963
+#: src/ats/gnunet-service-ats_addresses.c:1989
 #, c-format
 msgid ""
 "No outbound quota configured for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1999
+#: src/ats/gnunet-service-ats_addresses.c:2025
 #, c-format
 msgid "Inbound quota configured for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2007
+#: src/ats/gnunet-service-ats_addresses.c:2033
 #, c-format
 msgid ""
 "No outbound quota configure for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2184
+#: src/ats/gnunet-service-ats_addresses.c:2211
 #, c-format
 msgid "Initializing solver `%s '`%s'\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2187
+#: src/ats/gnunet-service-ats_addresses.c:2214
 #, fuzzy, c-format
 msgid "Failed to initialize solver `%s'!\n"
 msgstr "Không thể sơ khởi SQLite: %s.\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:2210
+#: src/ats/gnunet-service-ats_addresses.c:2237
 #, fuzzy
 msgid "Failed to initialize solver!\n"
 msgstr "Không thể sơ khởi SQLite: %s.\n"
@@ -482,12 +482,12 @@
 msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:352 src/namestore/gnunet-namestore.c:550
-#: src/transport/gnunet-transport.c:829
+#: src/transport/gnunet-transport.c:940
 #, fuzzy, c-format
 msgid "Service `%s' is not running\n"
 msgstr "« %s » không phải là một tập tin.\n"
 
-#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:838
+#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:949
 #, fuzzy, c-format
 msgid "Failed to parse peer identity `%s'\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
@@ -570,6 +570,7 @@
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
 #: src/consensus/gnunet-consensus-profiler.c:420
+#: src/secretsharing/gnunet-secretsharing-profiler.c:300
 #, fuzzy
 msgid "number of peers in consensus"
 msgstr "số lần lặp lại"
@@ -591,6 +592,7 @@
 msgstr "# các khoá phiên chạy được chấp nhận"
 
 #: src/consensus/gnunet-consensus-profiler.c:432
+#: src/secretsharing/gnunet-secretsharing-profiler.c:309
 msgid "be more verbose (print received values)"
 msgstr ""
 
@@ -599,255 +601,260 @@
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:252
+#: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept #%u or /cancel %u the call.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:274
+#: src/conversation/gnunet-conversation.c:286
 #, c-format
 msgid "Call from `%s' terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:307
+#: src/conversation/gnunet-conversation.c:319
 #, c-format
 msgid "Call from `%s' suspended by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:312
+#: src/conversation/gnunet-conversation.c:324
 #, c-format
 msgid "Call from `%s' resumed by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:330
+#: src/conversation/gnunet-conversation.c:342
 #, c-format
 msgid "Ego `%s' no longer available, phone is now down.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:344
+#: src/conversation/gnunet-conversation.c:356
 #, fuzzy
 msgid "Failed to setup phone (internal error)\n"
 msgstr "Lỗi lấy thông kê về truyền tải.\n"
 
-#: src/conversation/gnunet-conversation.c:356
+#: src/conversation/gnunet-conversation.c:368
 #, c-format
 msgid ""
 "Phone active on line %u.  Type `/help' for a list of available commands\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:378
+#: src/conversation/gnunet-conversation.c:390
 #, c-format
 msgid "Resolved address of `%s'. Now ringing other party.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:385
+#: src/conversation/gnunet-conversation.c:397
 #, fuzzy, c-format
 msgid "Connection established to `%s'\n"
 msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 
-#: src/conversation/gnunet-conversation.c:392
+#: src/conversation/gnunet-conversation.c:404
 #, fuzzy, c-format
 msgid "Failed to resolve `%s'\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/conversation/gnunet-conversation.c:399
+#: src/conversation/gnunet-conversation.c:411
 msgid "Call terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:405
+#: src/conversation/gnunet-conversation.c:417
 #, c-format
 msgid "Connection to `%s' suspended (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:411
+#: src/conversation/gnunet-conversation.c:423
 #, c-format
 msgid "Connection to `%s' resumed (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:416
+#: src/conversation/gnunet-conversation.c:428
 msgid "Error with the call, restarting it\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:483
+#: src/conversation/gnunet-conversation.c:495
 #, fuzzy, c-format
 msgid "Unknown command `%s'\n"
 msgstr "Không rõ câu lệnh « %s ».\n"
 
-#: src/conversation/gnunet-conversation.c:499
-#: src/conversation/gnunet-conversation.c:513
+#: src/conversation/gnunet-conversation.c:511
+#: src/conversation/gnunet-conversation.c:525
 #, c-format
 msgid "Ego `%s' not available\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:506
-#: src/conversation/gnunet-conversation.c:563
+#: src/conversation/gnunet-conversation.c:518
+#: src/conversation/gnunet-conversation.c:575
 msgid "You are calling someone else already, hang up first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:521
-#: src/conversation/gnunet-conversation.c:576
+#: src/conversation/gnunet-conversation.c:533
+#: src/conversation/gnunet-conversation.c:588
 #, c-format
 msgid "You are answering call from `%s', hang up or suspend that call first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:532
+#: src/conversation/gnunet-conversation.c:544
 msgid "Call recipient missing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:587
+#: src/conversation/gnunet-conversation.c:599
 msgid "There is no incoming call to accept here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:604
+#: src/conversation/gnunet-conversation.c:616
 #, c-format
 msgid "There is no incoming call `%s' to accept right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:632
+#: src/conversation/gnunet-conversation.c:644
 msgid "We currently do not have an address.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:655
+#: src/conversation/gnunet-conversation.c:667
 #, c-format
 msgid "We are currently trying to locate the private key for the ego `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:660
+#: src/conversation/gnunet-conversation.c:672
 #, c-format
 msgid "We are listening for incoming calls for ego `%s' on line %u.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:666
-#: src/conversation/gnunet-conversation.c:690
+#: src/conversation/gnunet-conversation.c:678
+#: src/conversation/gnunet-conversation.c:702
 #, c-format
 msgid "You are having a conversation with `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:671
+#: src/conversation/gnunet-conversation.c:683
 msgid ""
 "We had an internal error setting up our phone line. You can still make "
 "calls.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:680
+#: src/conversation/gnunet-conversation.c:692
 #, fuzzy, c-format
 msgid "We are trying to find the network address to call `%s'.\n"
 msgstr "GNUnet bây giờ sử dụng địa chỉ IP %s.\n"
 
-#: src/conversation/gnunet-conversation.c:685
+#: src/conversation/gnunet-conversation.c:697
 #, c-format
 msgid "We are calling `%s', his phone should be ringing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:704
+#: src/conversation/gnunet-conversation.c:716
 msgid "Calls waiting:\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:710
+#: src/conversation/gnunet-conversation.c:722
 #, fuzzy, c-format
 msgid "#%u: `%s'\n"
 msgstr "Tôi là đồng đẳng « %s ».\n"
 
-#: src/conversation/gnunet-conversation.c:738
-#: src/conversation/gnunet-conversation.c:753
+#: src/conversation/gnunet-conversation.c:750
+#: src/conversation/gnunet-conversation.c:765
 msgid "There is no call that could be suspended right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:786
-#: src/conversation/gnunet-conversation.c:802
+#: src/conversation/gnunet-conversation.c:798
+#: src/conversation/gnunet-conversation.c:814
 msgid "There is no call that could be resumed right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:809
+#: src/conversation/gnunet-conversation.c:821
 #, c-format
 msgid "Already talking with `%s', cannot resume a call right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:818
+#: src/conversation/gnunet-conversation.c:830
 msgid "There is no incoming call to resume here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:835
+#: src/conversation/gnunet-conversation.c:847
 #, c-format
 msgid "There is no incoming call `%s' to resume right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:870
+#: src/conversation/gnunet-conversation.c:882
 msgid "There is no call that could be cancelled right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:878
+#: src/conversation/gnunet-conversation.c:890
 msgid "There is no incoming call to refuse here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:895
+#: src/conversation/gnunet-conversation.c:907
 #, c-format
 msgid "There is no incoming call `%s' to refuse right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:922
+#: src/conversation/gnunet-conversation.c:934
 msgid "Use `/address' to find out which address this phone should have in GNS"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:924
+#: src/conversation/gnunet-conversation.c:936
 msgid "Use `/call USER.gnu' to call USER"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:926
+#: src/conversation/gnunet-conversation.c:938
 msgid "Use `/accept #NUM' to accept incoming call #NUM"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:928
+#: src/conversation/gnunet-conversation.c:940
 msgid "Use `/suspend' to suspend the active call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:930
+#: src/conversation/gnunet-conversation.c:942
 msgid ""
 "Use `/resume [#NUM]' to resume a call, #NUM is needed to resume incoming "
 "calls, no argument is needed to resume the current outgoing call."
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:932
+#: src/conversation/gnunet-conversation.c:944
 msgid "Use `/cancel' to reject or terminate a call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:934
+#: src/conversation/gnunet-conversation.c:946
 msgid "Use `/status' to print status information"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:936
+#: src/conversation/gnunet-conversation.c:948
 #, fuzzy
 msgid "Use `/quit' to terminate gnunet-conversation"
 msgstr "Gõ chuỗi « /quit » để thoát khỏi trình gnunet-chat"
 
-#: src/conversation/gnunet-conversation.c:938
+#: src/conversation/gnunet-conversation.c:950
 msgid "Use `/help command' to get help for a specific command"
 msgstr "Gõ chuỗi « /help LỆNH » để xem trợ giúp về lệnh đó"
 
-#: src/conversation/gnunet-conversation.c:1093
+#: src/conversation/gnunet-conversation.c:1148
 #, fuzzy, c-format
 msgid "Name of our ego changed to `%s'\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/conversation/gnunet-conversation.c:1106
+#: src/conversation/gnunet-conversation.c:1161
 #, fuzzy, c-format
 msgid "Our ego `%s' was deleted!\n"
 msgstr "Biệt hiệu « %s » bị xoá.\n"
 
-#: src/conversation/gnunet-conversation.c:1141
+#: src/conversation/gnunet-conversation.c:1196
 #, fuzzy
 msgid "You must specify the NAME of an ego to use\n"
 msgstr "Phải ghi rõ chỉ một tên tập tin để chèn.\n"
 
-#: src/conversation/gnunet-conversation.c:1167
+#: src/conversation/gnunet-conversation.c:1220
+#, fuzzy
+msgid "Failed to start gnunet-helper-w32-console\n"
+msgstr "Lỗi bắt đầu thu thập.\n"
+
+#: src/conversation/gnunet-conversation.c:1246
 msgid "sets the NAME of the ego to use for the phone (and name resolution)"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1170
+#: src/conversation/gnunet-conversation.c:1249
 msgid "sets the LINE to use for the phone"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1185
+#: src/conversation/gnunet-conversation.c:1273
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
@@ -889,13 +896,13 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:211
-#: src/conversation/gnunet-helper-audio-record.c:362
+#: src/conversation/gnunet-helper-audio-record.c:365
 #, fuzzy
 msgid "Connection established.\n"
 msgstr "Thu thập bị dừng.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:216
-#: src/conversation/gnunet-helper-audio-record.c:367
+#: src/conversation/gnunet-helper-audio-record.c:370
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s\n"
 msgstr "SMTP: « %s » bị lỗi: %s\n"
@@ -906,36 +913,36 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:243
-#: src/conversation/gnunet-helper-audio-record.c:393
+#: src/conversation/gnunet-helper-audio-record.c:396
 #, fuzzy, c-format
 msgid "Connection failure: %s\n"
 msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:264
-#: src/conversation/gnunet-helper-audio-record.c:416
+#: src/conversation/gnunet-helper-audio-record.c:419
 msgid "Wrong Spec\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:270
-#: src/conversation/gnunet-helper-audio-record.c:422
+#: src/conversation/gnunet-helper-audio-record.c:425
 #, fuzzy
 msgid "pa_mainloop_new() failed.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:284
-#: src/conversation/gnunet-helper-audio-record.c:437
+#: src/conversation/gnunet-helper-audio-record.c:440
 #, fuzzy
 msgid "pa_context_new() failed.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:291
-#: src/conversation/gnunet-helper-audio-record.c:443
+#: src/conversation/gnunet-helper-audio-record.c:446
 #, fuzzy, c-format
 msgid "pa_context_connect() failed: %s\n"
 msgstr "# của các đồng đẳng đã kết nối"
 
 #: src/conversation/gnunet-helper-audio-playback.c:297
-#: src/conversation/gnunet-helper-audio-record.c:449
+#: src/conversation/gnunet-helper-audio-record.c:452
 #, fuzzy
 msgid "pa_mainloop_run() failed.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
@@ -945,46 +952,51 @@
 msgid "Read error from STDIN: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:237
+#: src/conversation/gnunet-helper-audio-playback-gst.c:341
+#, c-format
+msgid "Read error from STDIN: %d %s\n"
+msgstr ""
+
+#: src/conversation/gnunet-helper-audio-record.c:240
 #, fuzzy, c-format
 msgid "pa_stream_peek() failed: %s\n"
 msgstr "SMTP: « %s » bị lỗi: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:275
+#: src/conversation/gnunet-helper-audio-record.c:278
 msgid "Got signal, exiting.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:300
+#: src/conversation/gnunet-helper-audio-record.c:303
 #, fuzzy
 msgid "Stream successfully created.\n"
 msgstr "Không đủ quyền cho « %s ».\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:305
+#: src/conversation/gnunet-helper-audio-record.c:308
 #, fuzzy, c-format
 msgid "pa_stream_get_buffer_attr() failed: %s\n"
 msgstr "SMTP: « %s » bị lỗi: %s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:313
+#: src/conversation/gnunet-helper-audio-record.c:316
 #, c-format
 msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:317
+#: src/conversation/gnunet-helper-audio-record.c:320
 #, c-format
 msgid "Using sample spec '%s', channel map '%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:324
+#: src/conversation/gnunet-helper-audio-record.c:327
 #, fuzzy, c-format
 msgid "Connected to device %s (%u, %ssuspended).\n"
 msgstr "« %s » được kết nối tới « %s ».\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:333
+#: src/conversation/gnunet-helper-audio-record.c:336
 #, c-format
 msgid "Stream error: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:380
+#: src/conversation/gnunet-helper-audio-record.c:383
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s\n"
 msgstr "Gặp lỗi khi tải lên tập tin: %s\n"
@@ -1029,17 +1041,17 @@
 msgstr "Tôi là đồng đẳng « %s ».\n"
 
 #: src/core/gnunet-core.c:110 src/core/gnunet-core.c:138
-#: src/transport/gnunet-transport.c:609 src/transport/gnunet-transport.c:634
+#: src/transport/gnunet-transport.c:630 src/transport/gnunet-transport.c:650
 #, c-format
 msgid "%24s: %-17s %4s   (%u connections in total)\n"
 msgstr ""
 
-#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:611
+#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:631
 #, fuzzy
 msgid "Connected to"
 msgstr "« %s » được kết nối tới « %s ».\n"
 
-#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:636
+#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:651
 #, fuzzy
 msgid "Disconnected from"
 msgstr "« %.*s » được kết nối tới « %.*s ».\n"
@@ -1049,7 +1061,7 @@
 msgid "Invalid command line argument `%s'\n"
 msgstr "Đối số không hợp lệ cho « %s ».\n"
 
-#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1028
+#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1127
 #, fuzzy
 msgid "provide information about all current connections (continuously)"
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
@@ -1122,7 +1134,7 @@
 msgstr "# các thông báo được chắp liền"
 
 #: src/core/gnunet-service-core_kx.c:950
-#: src/transport/gnunet-service-transport_validation.c:974
+#: src/transport/gnunet-service-transport_validation.c:968
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# các thông báo PING được tạo"
@@ -1155,7 +1167,7 @@
 msgstr "# các thông báo PING nhập thô được gửi"
 
 #: src/core/gnunet-service-core_kx.c:1095
-#: src/transport/gnunet-service-transport_validation.c:1285
+#: src/transport/gnunet-service-transport_validation.c:1280
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
@@ -1260,11 +1272,11 @@
 #: src/fs/gnunet-service-fs_cp.c:604 src/fs/gnunet-service-fs_cp.c:1499
 #: src/topology/gnunet-daemon-topology.c:706
 #: src/topology/gnunet-daemon-topology.c:807
-#: src/transport/gnunet-service-transport_neighbours.c:929
-#: src/transport/gnunet-service-transport_neighbours.c:1161
-#: src/transport/gnunet-service-transport_neighbours.c:1170
-#: src/transport/gnunet-service-transport_neighbours.c:3015
-#: src/transport/gnunet-service-transport_neighbours.c:3291
+#: src/transport/gnunet-service-transport_neighbours.c:837
+#: src/transport/gnunet-service-transport_neighbours.c:1069
+#: src/transport/gnunet-service-transport_neighbours.c:1078
+#: src/transport/gnunet-service-transport_neighbours.c:2920
+#: src/transport/gnunet-service-transport_neighbours.c:3181
 #, fuzzy
 msgid "# peers connected"
 msgstr "# của các đồng đẳng đã kết nối"
@@ -1345,6 +1357,9 @@
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:52
+#: src/testbed/generate-underlay-topology.c:47
+#: src/testbed/gnunet-daemon-latency-logger.c:52
+#: src/testbed/gnunet-daemon-testbed-underlay.c:55
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
 #: src/include/gnunet_common.h:602 src/include/gnunet_common.h:611
 #: src/scalarproduct/scalarproduct.h:61
@@ -1690,6 +1705,9 @@
 msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:57
+#: src/testbed/generate-underlay-topology.c:50
+#: src/testbed/gnunet-daemon-latency-logger.c:55
+#: src/testbed/gnunet-daemon-testbed-underlay.c:58
 #, fuzzy, c-format
 msgid "`%s' failed at %s:%u with error: %s"
 msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s"
@@ -3415,7 +3433,7 @@
 msgstr "Tùy chọn « %s » cần thiết khi dùng tùy chọn « %s ».\n"
 
 #: src/fs/gnunet-publish.c:778 src/fs/gnunet-publish.c:785
-#: src/transport/gnunet-transport.c:865 src/transport/gnunet-transport.c:899
+#: src/transport/gnunet-transport.c:977 src/transport/gnunet-transport.c:1007
 #, c-format
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr "Tùy chọn « %s » không có nghĩa khi không có tùy chọn « %s ».\n"
@@ -4091,8 +4109,8 @@
 #: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
 #: src/hostlist/hostlist-client.c:871 src/hostlist/hostlist-client.c:963
 #: src/hostlist/hostlist-client.c:968
-#: src/transport/plugin_transport_http_client.c:1070
-#: src/transport/plugin_transport_http_client.c:1085
+#: src/transport/plugin_transport_http_client.c:1062
+#: src/transport/plugin_transport_http_client.c:1077
 #, c-format
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "%s bị lỗi tại %s:%d: « %s »\n"
@@ -4385,37 +4403,37 @@
 msgid "Modified %u addresses \n"
 msgstr ""
 
-#: src/hello/hello.c:943
+#: src/hello/hello.c:944
 #, fuzzy
 msgid "Failed to parse HELLO message: missing expiration time\n"
 msgstr "Lỗi lưu cấu hình."
 
-#: src/hello/hello.c:952
+#: src/hello/hello.c:953
 #, fuzzy
 msgid "Failed to parse HELLO message: invalid expiration time\n"
 msgstr "Lỗi lưu cấu hình."
 
-#: src/hello/hello.c:962
+#: src/hello/hello.c:963
 #, fuzzy
 msgid "Failed to parse HELLO message: malformed\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
-#: src/hello/hello.c:972
+#: src/hello/hello.c:973
 #, fuzzy
 msgid "Failed to parse HELLO message: missing transport plugin\n"
 msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n"
 
-#: src/hello/hello.c:989
+#: src/hello/hello.c:990
 #, c-format
 msgid "Plugin `%s' not found\n"
 msgstr ""
 
-#: src/hello/hello.c:998
+#: src/hello/hello.c:999
 #, c-format
 msgid "Plugin `%s' does not support URIs yet\n"
 msgstr ""
 
-#: src/hello/hello.c:1017
+#: src/hello/hello.c:1018
 #, fuzzy, c-format
 msgid "Failed to parse `%s' as an address for plugin `%s'\n"
 msgstr "Lỗi đóng kết đến cổng %s %d.\n"
@@ -4674,7 +4692,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556 src/peerinfo-tool/gnunet-peerinfo.c:651
-#: src/transport/gnunet-service-transport.c:946
+#: src/transport/gnunet-service-transport.c:867
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Không thể truy cập đến thông tin về không gian tên.\n"
@@ -4786,49 +4804,34 @@
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
-#: src/mesh/gnunet-mesh.c:342
+#: src/mesh/gnunet-mesh.c:343
 #, fuzzy, c-format
 msgid "Invalid target `%s'\n"
 msgstr "Đối số không hợp lệ cho « %s ».\n"
 
-#: src/mesh/gnunet-mesh.c:503
+#: src/mesh/gnunet-mesh.c:521
 #, fuzzy, c-format
 msgid "Invalid tunnel owner `%s'\n"
 msgstr "Địa chỉ IP định dạng sai: %s\n"
 
-#: src/mesh/gnunet-mesh.c:568
+#: src/mesh/gnunet-mesh.c:586
 msgid "You must NOT give a TARGET when using options\n"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:645
-#, fuzzy
-msgid "provide information about a particular channel"
-msgstr "In ra thông tin về các đồng đẳng GNUnet."
-
-#: src/mesh/gnunet-mesh.c:648
-#, fuzzy
-msgid "provide information about a particular connection"
-msgstr "In ra thông tin về các đồng đẳng GNUnet."
-
-#: src/mesh/gnunet-mesh.c:651
+#: src/mesh/gnunet-mesh.c:669
 msgid "activate echo mode"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:654
+#: src/mesh/gnunet-mesh.c:672
 #, fuzzy
 msgid "provide information about all tunnels"
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
-#: src/mesh/gnunet-mesh.c:657
-#, fuzzy
-msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
-msgstr "In ra thông tin về các đồng đẳng GNUnet."
-
-#: src/mesh/gnunet-mesh.c:660
+#: src/mesh/gnunet-mesh.c:678
 msgid "port to listen to (default; 0)"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:663
+#: src/mesh/gnunet-mesh.c:681
 #, fuzzy
 msgid "provide information about a particular tunnel"
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
@@ -4954,7 +4957,7 @@
 msgstr ""
 
 #: src/namestore/gnunet-namestore.c:715
-#: src/peerinfo-tool/gnunet-peerinfo.c:703
+#: src/peerinfo-tool/gnunet-peerinfo.c:702
 #, fuzzy, c-format
 msgid "Invalid URI `%s'\n"
 msgstr "Dữ liệu nhập không hợp lệ.\n"
@@ -5124,54 +5127,54 @@
 msgid "NAT traversal with ICMP Server timed out.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:200
+#: src/nat/nat_auto.c:203
 msgid "NAT traversal with ICMP Server succeeded.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:201
+#: src/nat/nat_auto.c:204
 msgid "NAT traversal with ICMP Server failed.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:222
+#: src/nat/nat_auto.c:225
 #, fuzzy
 msgid "Testing connection reversal with ICMP server.\n"
 msgstr "Cổng để liên lạc với giao diện người dùng GNUnet"
 
-#: src/nat/nat_auto.c:269
+#: src/nat/nat_auto.c:274
 #, c-format
 msgid "Detected external IP `%s'\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:339
+#: src/nat/nat_auto.c:344
 msgid "This system has a global IPv6 address, setting IPv6 to supported.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:355
+#: src/nat/nat_auto.c:360
 #, fuzzy, c-format
 msgid "Detected internal network address `%s'.\n"
 msgstr "GNUnet bây giờ sử dụng địa chỉ IP %s.\n"
 
-#: src/nat/nat_auto.c:408
+#: src/nat/nat_auto.c:413
 msgid "upnpc found, enabling its use\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:409
+#: src/nat/nat_auto.c:414
 msgid "upnpc not found\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:442
+#: src/nat/nat_auto.c:447
 msgid "gnunet-helper-nat-server found, testing it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:443
+#: src/nat/nat_auto.c:448
 msgid "No working gnunet-helper-nat-server found\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:477
+#: src/nat/nat_auto.c:482
 msgid "gnunet-helper-nat-client found, enabling it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:478
+#: src/nat/nat_auto.c:483
 msgid "gnunet-helper-nat-client not found or behind NAT, disabling it\n"
 msgstr ""
 
@@ -5185,40 +5188,65 @@
 msgid "Failed to start %s\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/nat/nat.c:1203
+#: src/nat/nat.c:1205
 msgid "malformed"
 msgstr ""
 
-#: src/nat/nat.c:1274 src/nat/nat.c:1286
+#: src/nat/nat.c:1276 src/nat/nat.c:1288
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1424
+#: src/nat/nat.c:1426
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1440
+#: src/nat/nat.c:1442
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:170
+#: src/nat/nat_mini.c:155
+msgid "no valid address was returned by `external-ip'"
+msgstr ""
+
+#: src/nat/nat_mini.c:175
+msgid "`external-ip' command not found"
+msgstr ""
+
+#: src/nat/nat_mini.c:201
 msgid "`external-ip' command not found\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:505
+#: src/nat/nat_mini.c:366
+#, fuzzy
+msgid "Failed to run `upnpc` command"
+msgstr "Lỗi bắt đầu thu thập.\n"
+
+#: src/nat/nat_mini.c:512
+msgid "`upnpc' command took too long, process killed"
+msgstr ""
+
+#: src/nat/nat_mini.c:540
+msgid "`upnpc' command failed to establish port mapping"
+msgstr ""
+
+#: src/nat/nat_mini.c:604
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_mini.c:608
+msgid "`upnpc` command not found"
+msgstr ""
+
+#: src/nat/nat_test.c:351
 #, fuzzy
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/nat/nat_test.c:420
+#: src/nat/nat_test.c:423
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
@@ -5254,15 +5282,11 @@
 msgstr "Không thể truy cập đến dịch vụ"
 
 #: src/nse/gnunet-service-nse.c:1461
-#: src/revocation/gnunet-service-revocation.c:789
+#: src/revocation/gnunet-service-revocation.c:789 src/util/gnunet-scrypt.c:248
 #, fuzzy
 msgid "Value is too large.\n"
 msgstr "Giá trị không nằm trong phạm vi được phép."
 
-#: src/nse/gnunet-service-nse.c:1488
-msgid "NSE service is lacking key configuration settings.  Exiting.\n"
-msgstr ""
-
 #: src/peerinfo/gnunet-service-peerinfo.c:215
 #, fuzzy, c-format
 msgid "Removing expired address of transport `%s'\n"
@@ -5381,55 +5405,50 @@
 msgid "Failure adding HELLO: %s\n"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:661
-#, fuzzy, c-format
-msgid "Could not find option `%s:%s' in configuration.\n"
-msgstr "Không tìm thấy phương pháp « %s%s » trong thư viện « %s ».\n"
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:667
+#: src/peerinfo-tool/gnunet-peerinfo.c:666 src/util/gnunet-scrypt.c:224
 #, c-format
 msgid "Loading hostkey from `%s' failed.\n"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:725
+#: src/peerinfo-tool/gnunet-peerinfo.c:724
 #, c-format
 msgid "I am peer `%s'.\n"
 msgstr "Tôi là đồng đẳng « %s ».\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:769
+#: src/peerinfo-tool/gnunet-peerinfo.c:768
 msgid "don't resolve host names"
 msgstr "không quyết định các tên máy"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:772
+#: src/peerinfo-tool/gnunet-peerinfo.c:771
 msgid "output only the identity strings"
 msgstr "chỉ xuất những chuỗi nhận diện"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:775
+#: src/peerinfo-tool/gnunet-peerinfo.c:774
 msgid "include friend-only information"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:778
+#: src/peerinfo-tool/gnunet-peerinfo.c:777
 msgid "output our own identity only"
 msgstr "chỉ xuất nhận diện mình"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:781
+#: src/peerinfo-tool/gnunet-peerinfo.c:780
 #, fuzzy
 msgid "list all known peers"
 msgstr "liệt kê mọi bộ tiếp hợp mạng"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:784
+#: src/peerinfo-tool/gnunet-peerinfo.c:783
 msgid "dump hello to file"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:787
+#: src/peerinfo-tool/gnunet-peerinfo.c:786
 msgid "also output HELLO uri(s)"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:790
+#: src/peerinfo-tool/gnunet-peerinfo.c:789
 msgid "add given HELLO uri to the database"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:801
+#: src/peerinfo-tool/gnunet-peerinfo.c:800
 #, fuzzy
 msgid "Print information about peers."
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
@@ -6075,6 +6094,14 @@
 msgid "Failed to send a message to the scalarproduct service\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
+#: src/secretsharing/gnunet-secretsharing-profiler.c:303
+msgid "dkg timeout"
+msgstr ""
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:306
+msgid "threshold"
+msgstr ""
+
 #: src/set/gnunet-service-set.c:1416
 #, fuzzy
 msgid "Could not connect to mesh service\n"
@@ -6207,19 +6234,94 @@
 "might have been lost!\n"
 msgstr ""
 
+#: src/testbed/generate-underlay-topology.c:223
+msgid "Need atleast 2 arguments\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:228
+msgid "Database filename missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:235
+msgid "Topology string missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:240
+#, fuzzy, c-format
+msgid "Invalid topology: %s\n"
+msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#: src/testbed/generate-underlay-topology.c:252
+#, c-format
+msgid "An argument is missing for given topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:258
+#, fuzzy, c-format
+msgid "Invalid argument `%s' given as topology argument\n"
+msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#: src/testbed/generate-underlay-topology.c:266
+#, c-format
+msgid "Filename argument missing for topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:280
+#, c-format
+msgid "Second argument for topology `%s' is missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:286
+#, fuzzy, c-format
+msgid "Invalid argument `%s'; expecting unsigned int\n"
+msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#: src/testbed/generate-underlay-topology.c:335
+#: src/testbed/gnunet-testbed-profiler.c:293
+msgid "create COUNT number of peers"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:344
+msgid ""
+"Generates SQLite3 database representing a given underlay topology.\n"
+"Usage: gnunet-underlay-topology [OPTIONS] db-filename TOPO [TOPOOPTS]\n"
+"The following options are available for TOPO followed by TOPOOPTS if "
+"applicable:\n"
+"\t LINE\n"
+"\t RING\n"
+"\t RANDOM <num_rnd_links>\n"
+"\t SMALL_WORLD <num_rnd_links>\n"
+"\t SMALL_WORLD_RING <num_rnd_links>\n"
+"\t CLIQUE\n"
+"\t 2D_TORUS\n"
+"\t SCALE_FREE <cap> <m>\n"
+"\t FROM_FILE <filename>\n"
+"TOPOOPTS:\n"
+"\t num_rnd_links: The number of random links\n"
+"\t cap: the maximum number of links a node can have\n"
+"\t m: the number of links a node should have while joining the network\n"
+"\t filename: the path of the file which contains topology information\n"
+"NOTE: the format of the above file is descibed here: https://www.gnunet.org/";
+"content/topology-file-format\n"
+msgstr ""
+
+#: src/testbed/gnunet-daemon-latency-logger.c:325
+msgid "Daemon to log latency values of connections to neighbours"
+msgstr ""
+
 #: src/testbed/gnunet-daemon-testbed-blacklist.c:264
 msgid ""
 "Daemon to restrict incoming transport layer connections during testbed "
 "deployments"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:300 src/testing/testing.c:293
-#: src/util/gnunet-ecc.c:217
+#: src/testbed/gnunet-daemon-testbed-underlay.c:235 src/testing/list-keys.c:50
+#: src/testing/testing.c:293 src/util/gnunet-ecc.c:217
 #, c-format
 msgid "Incorrect hostkey file format: %s\n"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:553
+#: src/testbed/gnunet-daemon-testbed-underlay.c:474
 msgid "Daemon to restrict underlay network in testbed deployments"
 msgstr ""
 
@@ -6258,10 +6360,6 @@
 msgid "Exiting as the number of peers is %u\n"
 msgstr "tăng sổ tối đa các kết nối TCP/IP"
 
-#: src/testbed/gnunet-testbed-profiler.c:293
-msgid "create COUNT number of peers"
-msgstr ""
-
 #: src/testbed/gnunet-testbed-profiler.c:296
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6298,100 +6396,100 @@
 msgid "Adding host %u failed with error: %s\n"
 msgstr "« %s » thất bại với mã lỗi %d: %s\n"
 
-#: src/testbed/testbed_api_testbed.c:820
+#: src/testbed/testbed_api_testbed.c:819
 msgid "Linking controllers failed. Exiting"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:989
+#: src/testbed/testbed_api_testbed.c:988
 #, c-format
 msgid "Host registration failed for a host. Error: %s\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1055
+#: src/testbed/testbed_api_testbed.c:1054
 msgid "Controller crash detected. Shutting down.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1144
+#: src/testbed/testbed_api_testbed.c:1143
 #, c-format
 msgid "Host %s cannot start testbed\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1148
+#: src/testbed/testbed_api_testbed.c:1147
 msgid "Testbed cannot be started on localhost\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1186
+#: src/testbed/testbed_api_testbed.c:1185
 msgid "Cannot start the master controller"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1204
+#: src/testbed/testbed_api_testbed.c:1203
 msgid "Shutting down testbed due to timeout while setup.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1264
+#: src/testbed/testbed_api_testbed.c:1263
 msgid "No hosts loaded from LoadLeveler. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1276
+#: src/testbed/testbed_api_testbed.c:1275
 msgid "No hosts loaded. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1300
+#: src/testbed/testbed_api_testbed.c:1299
 msgid "Specified topology must be supported by testbed"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1350
+#: src/testbed/testbed_api_testbed.c:1349
 #, c-format
 msgid ""
 "Maximum number of edges a peer can have in a scale free topology cannot be "
 "more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1366
+#: src/testbed/testbed_api_testbed.c:1365
 #, c-format
 msgid ""
 "The number of edges that can established when adding a new node to scale "
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:715
+#: src/testbed/testbed_api_topology.c:960
 #, fuzzy, c-format
 msgid "Topology file %s not found\n"
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/testbed/testbed_api_topology.c:721
+#: src/testbed/testbed_api_topology.c:966
 #, fuzzy, c-format
 msgid "Topology file %s has no data\n"
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/testbed/testbed_api_topology.c:728
+#: src/testbed/testbed_api_topology.c:973
 #, fuzzy, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/testbed/testbed_api_topology.c:750
+#: src/testbed/testbed_api_topology.c:995
 #, fuzzy, c-format
 msgid "Failed to read peer index from toology file: %s"
 msgstr "Không thể truy cập đến tập tin gnunet-directory « %s »\n"
 
-#: src/testbed/testbed_api_topology.c:759
-#: src/testbed/testbed_api_topology.c:783
+#: src/testbed/testbed_api_topology.c:1004
+#: src/testbed/testbed_api_topology.c:1028
 #, c-format
 msgid "Value in given topology file: %s out of range\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:765
-#: src/testbed/testbed_api_topology.c:789
+#: src/testbed/testbed_api_topology.c:1010
+#: src/testbed/testbed_api_topology.c:1034
 #, fuzzy, c-format
 msgid "Failed to read peer index from topology file: %s"
 msgstr "Không thể truy cập đến tập tin gnunet-directory « %s »\n"
 
-#: src/testbed/testbed_api_topology.c:771
-#: src/testbed/testbed_api_topology.c:795
+#: src/testbed/testbed_api_topology.c:1016
+#: src/testbed/testbed_api_topology.c:1040
 msgid "Topology file needs more peers than given ones\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:810
+#: src/testbed/testbed_api_topology.c:1074
 #, fuzzy, c-format
 msgid "Ignoring to connect peer %u to peer %u\n"
 msgstr "đang kết nối đồng đẳng %s:%d tới đồng đẳng %s:%d\n"
@@ -6435,6 +6533,14 @@
 msgid "Command line tool to access the testing library"
 msgstr ""
 
+#: src/testing/list-keys.c:90
+msgid "list COUNT number of keys"
+msgstr ""
+
+#: src/testing/list-keys.c:93
+msgid "skip COUNT number of keys in the beginning"
+msgstr ""
+
 #: src/testing/testing.c:277
 #, c-format
 msgid "Hostkeys file not found: %s\n"
@@ -6576,38 +6682,38 @@
 msgstr ""
 
 #: src/transport/gnunet-service-transport_blacklist.c:455
-#: src/transport/gnunet-service-transport_blacklist.c:722
+#: src/transport/gnunet-service-transport_blacklist.c:725
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:206
+#: src/transport/gnunet-service-transport.c:201
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "# Các quảng cáo đồng đẳng bị hủy do trọng tải"
 
-#: src/transport/gnunet-service-transport.c:325
+#: src/transport/gnunet-service-transport.c:304
 #, fuzzy
 msgid "# bytes total received"
 msgstr "# tổng số nội dung lỗ hổng được nhận"
 
-#: src/transport/gnunet-service-transport.c:399
+#: src/transport/gnunet-service-transport.c:371
 #, fuzzy
 msgid "# bytes payload received"
 msgstr "# các byte đã giải mã"
 
-#: src/transport/gnunet-service-transport.c:574
+#: src/transport/gnunet-service-transport.c:527
 #, fuzzy, c-format
 msgid "Could not obtain a valid network for `%s' %s (%s)\n"
 msgstr "Không thể lấy địa chỉ IP cho giao diện « %s », dùng « %s ».\n"
 
-#: src/transport/gnunet-service-transport.c:628
+#: src/transport/gnunet-service-transport.c:574
 #, c-format
 msgid ""
 "Address or session unknown: failed to update properties for peer `%s' plugin "
 "`%s' address `%s' session %p\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:916
+#: src/transport/gnunet-service-transport.c:837
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "Lưu cấu hình ngay bây giờ không?"
@@ -6622,16 +6728,16 @@
 msgid "# messages dropped due to slow client"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/transport/gnunet-service-transport_clients.c:533
+#: src/transport/gnunet-service-transport_clients.c:540
 #, c-format
 msgid "Rejecting control connection from peer `%s', which is not me!\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:674
+#: src/transport/gnunet-service-transport_clients.c:681
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:731
+#: src/transport/gnunet-service-transport_clients.c:738
 #, fuzzy
 msgid "# REQUEST CONNECT messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
@@ -6640,167 +6746,167 @@
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1108
+#: src/transport/gnunet-service-transport_neighbours.c:1016
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1244
-#: src/transport/gnunet-service-transport_neighbours.c:1653
+#: src/transport/gnunet-service-transport_neighbours.c:1152
+#: src/transport/gnunet-service-transport_neighbours.c:1562
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# các byte thông báo gửi đi bị loại bỏ"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1249
+#: src/transport/gnunet-service-transport_neighbours.c:1157
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# các byte kiểu %d được gửi "
 
-#: src/transport/gnunet-service-transport_neighbours.c:1254
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# các byte thông báo gửi đi bị loại bỏ"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1311
+#: src/transport/gnunet-service-transport_neighbours.c:1219
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1368
+#: src/transport/gnunet-service-transport_neighbours.c:1276
 #, fuzzy
 msgid "# keepalives sent"
 msgstr "# các khoá phiên chạy được gửi"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1401
+#: src/transport/gnunet-service-transport_neighbours.c:1309
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1409
+#: src/transport/gnunet-service-transport_neighbours.c:1317
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1456
+#: src/transport/gnunet-service-transport_neighbours.c:1364
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1465
+#: src/transport/gnunet-service-transport_neighbours.c:1373
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1473
+#: src/transport/gnunet-service-transport_neighbours.c:1381
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (address changed)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1481
+#: src/transport/gnunet-service-transport_neighbours.c:1389
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (wrong nonce)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1558
+#: src/transport/gnunet-service-transport_neighbours.c:1467
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1592
+#: src/transport/gnunet-service-transport_neighbours.c:1501
 #, fuzzy
 msgid "# bandwidth quota violations by other peers"
 msgstr "theo dõi gnunetd sử dụng dải thông"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1517
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1700
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 #, fuzzy
 msgid "# SESSION_CONNECT messages sent"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1716
+#: src/transport/gnunet-service-transport_neighbours.c:1625
 #, fuzzy, c-format
 msgid "Failed to transmit CONNECT message via plugin to %s\n"
 msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1759
+#: src/transport/gnunet-service-transport_neighbours.c:1668
 #, fuzzy
 msgid "# CONNECT_ACK messages sent"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2236
+#: src/transport/gnunet-service-transport_neighbours.c:2149
 #, fuzzy
 msgid "# CONNECT messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2241
+#: src/transport/gnunet-service-transport_neighbours.c:2154
 #, c-format
 msgid "CONNECT request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2979
+#: src/transport/gnunet-service-transport_neighbours.c:2885
 #, fuzzy
 msgid "# CONNECT_ACK messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2987
+#: src/transport/gnunet-service-transport_neighbours.c:2893
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3002
-#: src/transport/gnunet-service-transport_neighbours.c:3039
+#: src/transport/gnunet-service-transport_neighbours.c:2908
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3052
+#: src/transport/gnunet-service-transport_neighbours.c:2957
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3085
+#: src/transport/gnunet-service-transport_neighbours.c:2987
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3265
+#: src/transport/gnunet-service-transport_neighbours.c:3156
 #, fuzzy
 msgid "# SESSION_ACK messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3284
+#: src/transport/gnunet-service-transport_neighbours.c:3175
 #, fuzzy
 msgid "# unexpected SESSION_ACK messages"
 msgstr "# các thông báo PONG đã mật mã được gửi"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3340
+#: src/transport/gnunet-service-transport_neighbours.c:3230
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3355
+#: src/transport/gnunet-service-transport_neighbours.c:3245
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3383
+#: src/transport/gnunet-service-transport_neighbours.c:3273
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3389
+#: src/transport/gnunet-service-transport_neighbours.c:3279
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3398
+#: src/transport/gnunet-service-transport_neighbours.c:3288
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3434
+#: src/transport/gnunet-service-transport_neighbours.c:3324
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3532
+#: src/transport/gnunet-service-transport_neighbours.c:3423
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
@@ -6829,442 +6935,447 @@
 msgid "Did not load plugin `%s' due to missing functions\n"
 msgstr "Lỗi nạp phần bổ sung « %s » tại %s:%d. Đang hủy nạp phần bổ sung.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:456
+#: src/transport/gnunet-service-transport_validation.c:452
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:526
+#: src/transport/gnunet-service-transport_validation.c:522
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:584
+#: src/transport/gnunet-service-transport_validation.c:580
 #, fuzzy
 msgid "# PING without HELLO messages sent"
 msgstr "# các thông báo PONG nhập thô được gửi"
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:681
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:969
+#: src/transport/gnunet-service-transport_validation.c:963
 #, fuzzy
 msgid "# PING message for different peer received"
 msgstr "# các thông báo PING được tạo"
 
-#: src/transport/gnunet-service-transport_validation.c:1019
+#: src/transport/gnunet-service-transport_validation.c:1014
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1029
+#: src/transport/gnunet-service-transport_validation.c:1024
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1032
+#: src/transport/gnunet-service-transport_validation.c:1027
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1040
+#: src/transport/gnunet-service-transport_validation.c:1035
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1052
+#: src/transport/gnunet-service-transport_validation.c:1047
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1060
+#: src/transport/gnunet-service-transport_validation.c:1055
 #, c-format
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1114
+#: src/transport/gnunet-service-transport_validation.c:1109
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1163
+#: src/transport/gnunet-service-transport_validation.c:1158
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1172
+#: src/transport/gnunet-service-transport_validation.c:1167
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1312
+#: src/transport/gnunet-service-transport_validation.c:1308
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1327
+#: src/transport/gnunet-service-transport_validation.c:1323
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1448
+#: src/transport/gnunet-service-transport_validation.c:1442
 #, fuzzy, c-format
+msgid "Validation received new %s message for peer `%s' with size %u\n"
+msgstr "Nhận yêu cầu định tuyến\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1449
+#, fuzzy, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n"
 
-#: src/transport/gnunet-transport.c:258
+#: src/transport/gnunet-transport.c:285
 #, fuzzy, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
 msgstr "Đang thử tải danh sách các máy xuống « %s »\n"
 
-#: src/transport/gnunet-transport.c:265
+#: src/transport/gnunet-transport.c:293
 #, fuzzy, c-format
 msgid "Received %llu bytes/s (%llu bytes in %s)\n"
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/transport/gnunet-transport.c:296
+#: src/transport/gnunet-transport.c:331
 #, fuzzy, c-format
 msgid "Failed to connect to `%s'\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:309
+#: src/transport/gnunet-transport.c:344
 #, fuzzy, c-format
 msgid "Failed to resolve address for peer `%s'\n"
 msgstr "Lỗi đóng kết đến cổng %s %d.\n"
 
-#: src/transport/gnunet-transport.c:318
+#: src/transport/gnunet-transport.c:354
 #, fuzzy
 msgid "Failed to list connections, timeout occured\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
-#: src/transport/gnunet-transport.c:423
+#: src/transport/gnunet-transport.c:453
 msgid "No transport plugins configured, peer will never communicate\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:436
+#: src/transport/gnunet-transport.c:467
 #, c-format
 msgid "No port configured for plugin `%s', cannot test it\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:506
+#: src/transport/gnunet-transport.c:530
 #, fuzzy, c-format
 msgid "Transmitting %u bytes to %s\n"
 msgstr "Đang thử tải danh sách các máy xuống « %s »\n"
 
-#: src/transport/gnunet-transport.c:529
+#: src/transport/gnunet-transport.c:551
 #, fuzzy, c-format
 msgid "Successfully connected to `%s'\n"
 msgstr "Không đủ quyền cho « %s ».\n"
 
-#: src/transport/gnunet-transport.c:552
+#: src/transport/gnunet-transport.c:575
 #, c-format
 msgid ""
 "Successfully connected to `%s', starting to send benchmark data in %u Kb "
 "blocks\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:587
+#: src/transport/gnunet-transport.c:608
 #, fuzzy, c-format
 msgid "Disconnected from peer `%s' while benchmarking\n"
 msgstr "« %.*s » được kết nối tới « %.*s ».\n"
 
-#: src/transport/gnunet-transport.c:660
+#: src/transport/gnunet-transport.c:670
 #, fuzzy, c-format
 msgid "Received %u bytes from %s\n"
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/transport/gnunet-transport.c:685
-#, fuzzy, c-format
-msgid "Peer `%s': %s %s\n"
-msgstr "Tôi là đồng đẳng « %s ».\n"
-
-#: src/transport/gnunet-transport.c:704
+#: src/transport/gnunet-transport.c:693
 #, c-format
-msgid "Peer `%s': %s <unable to resolve address>\n"
+msgid "Peer `%s': %s %s in state `%s' until %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:772
+#: src/transport/gnunet-transport.c:703
 #, fuzzy, c-format
-msgid "Peer `%s' disconnected\n"
-msgstr "# của các đồng đẳng đã kết nối"
+msgid "Peer `%s': %s %s\n"
+msgstr "Tôi là đồng đẳng « %s ».\n"
 
-#: src/transport/gnunet-transport.c:802
+#: src/transport/gnunet-transport.c:916
 #, fuzzy
 msgid "Failed to send connect request to transport service\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:848
+#: src/transport/gnunet-transport.c:959
 #, c-format
 msgid ""
 "Multiple operations given. Please choose only one operation: %s, %s, %s, %s, "
 "%s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:855
+#: src/transport/gnunet-transport.c:967
 #, c-format
 msgid ""
 "No operation given. Please choose one operation: %s, %s, %s, %s, %s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:878 src/transport/gnunet-transport.c:910
-#: src/transport/gnunet-transport.c:932 src/transport/gnunet-transport.c:969
+#: src/transport/gnunet-transport.c:986 src/transport/gnunet-transport.c:1016
+#: src/transport/gnunet-transport.c:1039 src/transport/gnunet-transport.c:1070
 #, fuzzy
 msgid "Failed to connect to transport service\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:887 src/transport/gnunet-transport.c:917
+#: src/transport/gnunet-transport.c:995 src/transport/gnunet-transport.c:1025
 #, fuzzy
 msgid "Failed to send request to transport service\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:937
+#: src/transport/gnunet-transport.c:1044
 msgid "Starting to receive benchmark data\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1019
+#: src/transport/gnunet-transport.c:1116
+#, fuzzy
+msgid "print information for all peers (instead of only connected peers )"
+msgstr "In ra thông tin về các đồng đẳng GNUnet."
+
+#: src/transport/gnunet-transport.c:1119
 msgid "measure how fast we are receiving data from all peers (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1022
+#: src/transport/gnunet-transport.c:1121
 #, fuzzy
 msgid "connect to a peer"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/transport/gnunet-transport.c:1025
+#: src/transport/gnunet-transport.c:1124
 #, fuzzy
 msgid "provide information about all current connections (once)"
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
-#: src/transport/gnunet-transport.c:1031
+#: src/transport/gnunet-transport.c:1130
 #, fuzzy
 msgid ""
 "provide information about all connects and disconnect events (continuously)"
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
-#: src/transport/gnunet-transport.c:1034
+#: src/transport/gnunet-transport.c:1132
 #, fuzzy
 msgid "do not resolve hostnames"
 msgstr "không quyết định các tên máy"
 
-#: src/transport/gnunet-transport.c:1037
+#: src/transport/gnunet-transport.c:1134
 msgid "peer identity"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1041
+#: src/transport/gnunet-transport.c:1136
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1044
+#: src/transport/gnunet-transport.c:1139
 msgid "test transport configuration (involves external server)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1055
+#: src/transport/gnunet-transport.c:1148
 #, fuzzy
 msgid "Direct access to transport service."
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/transport/plugin_transport_bluetooth.c:616
+#: src/transport/plugin_transport_bluetooth.c:618
 msgid "# Bluetooth ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:635
+#: src/transport/plugin_transport_bluetooth.c:637
 #, fuzzy
 msgid "# Bluetooth messages defragmented"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/plugin_transport_bluetooth.c:681
-#: src/transport/plugin_transport_bluetooth.c:731
-#: src/transport/plugin_transport_bluetooth.c:1881
+#: src/transport/plugin_transport_bluetooth.c:683
+#: src/transport/plugin_transport_bluetooth.c:733
+#: src/transport/plugin_transport_bluetooth.c:1888
 #, fuzzy
 msgid "# Bluetooth sessions allocated"
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/transport/plugin_transport_bluetooth.c:806
+#: src/transport/plugin_transport_bluetooth.c:808
 #, fuzzy
 msgid "# Bluetooth message fragments sent"
 msgstr "# các thông báo bị tế phân"
 
-#: src/transport/plugin_transport_bluetooth.c:830
+#: src/transport/plugin_transport_bluetooth.c:832
 msgid "# Bluetooth messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:938
-#: src/transport/plugin_transport_bluetooth.c:1023
-#: src/transport/plugin_transport_bluetooth.c:1883
+#: src/transport/plugin_transport_bluetooth.c:940
+#: src/transport/plugin_transport_bluetooth.c:1026
+#: src/transport/plugin_transport_bluetooth.c:1890
 #, fuzzy
 msgid "# Bluetooth MAC endpoints allocated"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/transport/plugin_transport_bluetooth.c:1250
+#: src/transport/plugin_transport_bluetooth.c:1254
 #, fuzzy
 msgid "# HELLO messages received via Bluetooth"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_bluetooth.c:1276
+#: src/transport/plugin_transport_bluetooth.c:1277
 #, fuzzy
 msgid "# fragments received via Bluetooth"
 msgstr "# các mảnh bị loại bỏ"
 
-#: src/transport/plugin_transport_bluetooth.c:1286
+#: src/transport/plugin_transport_bluetooth.c:1287
 #, fuzzy
 msgid "# ACKs received via Bluetooth"
 msgstr "# các byte đã nhận qua TCP"
 
-#: src/transport/plugin_transport_bluetooth.c:1343
+#: src/transport/plugin_transport_bluetooth.c:1347
 #, fuzzy
 msgid "# Bluetooth DATA messages discarded due to CRC32 error"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/plugin_transport_bluetooth.c:1455
+#: src/transport/plugin_transport_bluetooth.c:1458
 #, fuzzy
 msgid "# DATA messages received via Bluetooth"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_bluetooth.c:1490
+#: src/transport/plugin_transport_bluetooth.c:1493
 #, fuzzy
 msgid "# Bluetooth DATA messages processed"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_bluetooth.c:1553
+#: src/transport/plugin_transport_bluetooth.c:1556
 #, fuzzy
 msgid "# HELLO beacons sent via Bluetooth"
 msgstr "# các byte đã gửi qua UDP"
 
-#: src/transport/plugin_transport_bluetooth.c:1666
+#: src/transport/plugin_transport_bluetooth.c:1669
 msgid "Bluetooth address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1862
+#: src/transport/plugin_transport_bluetooth.c:1869
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run bluetooth transport\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1618
+#: src/transport/plugin_transport_http_client.c:1621
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1693
-#: src/transport/plugin_transport_http_server.c:3001
+#: src/transport/plugin_transport_http_client.c:1696
+#: src/transport/plugin_transport_http_server.c:3006
 #, fuzzy, c-format
 msgid "Shutting down plugin `%s'\n"
 msgstr "Đang nạp các truyền tải « %s »\n"
 
-#: src/transport/plugin_transport_http_client.c:1718
-#: src/transport/plugin_transport_http_server.c:3059
+#: src/transport/plugin_transport_http_client.c:1721
+#: src/transport/plugin_transport_http_server.c:3062
 #, fuzzy, c-format
 msgid "Shutdown for plugin `%s' complete\n"
 msgstr "Tải lên « %s » hoàn thành, địa chỉ URI là « %s ».\n"
 
-#: src/transport/plugin_transport_http_client.c:1746
-#: src/transport/plugin_transport_http_server.c:2901
+#: src/transport/plugin_transport_http_client.c:1749
+#: src/transport/plugin_transport_http_server.c:2906
 #, fuzzy, c-format
 msgid "Maximum number of connections is %u\n"
 msgstr "tăng sổ tối đa các kết nối TCP/IP"
 
-#: src/transport/plugin_transport_http_server.c:1416
+#: src/transport/plugin_transport_http_server.c:1402
 #, c-format
 msgid ""
 "Access from connection %p (%u of %u) for `%s' `%s' url `%s' with upload data "
 "size %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1680
+#: src/transport/plugin_transport_http_server.c:1663
 #, c-format
 msgid "Accepting connection (%u of %u) from `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1688
+#: src/transport/plugin_transport_http_server.c:1671
 #, c-format
 msgid ""
 "Server reached maximum number connections (%u), rejecting new connection\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1974
+#: src/transport/plugin_transport_http_server.c:1957
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1998
+#: src/transport/plugin_transport_http_server.c:1981
 #, c-format
 msgid "No usable TLS certificate found and creating one at `%s/%s' failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2405
+#: src/transport/plugin_transport_http_server.c:2404
 #, fuzzy
 msgid "Require valid port number for service in configuration!\n"
 msgstr "Lỗi lưu cấu hình."
 
-#: src/transport/plugin_transport_http_server.c:2437 src/util/service.c:696
+#: src/transport/plugin_transport_http_server.c:2436 src/util/service.c:696
 #, fuzzy, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2454 src/util/service.c:713
+#: src/transport/plugin_transport_http_server.c:2453 src/util/service.c:713
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "Lỗi đóng kết đến cổng %s %d.\n"
 
-#: src/transport/plugin_transport_http_server.c:2565
+#: src/transport/plugin_transport_http_server.c:2564
 #, c-format
 msgid "Found %u addresses to report to NAT service\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2637
+#: src/transport/plugin_transport_http_server.c:2636
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2724
+#: src/transport/plugin_transport_http_server.c:2729
 #, c-format
 msgid "IPv4 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2738
+#: src/transport/plugin_transport_http_server.c:2743
 #, c-format
 msgid "IPv6 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2745
+#: src/transport/plugin_transport_http_server.c:2750
 msgid "Neither IPv4 nor IPv6 are enabled! Fix in configuration\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2756
+#: src/transport/plugin_transport_http_server.c:2761
 #, fuzzy
 msgid "Port is required! Fix in configuration\n"
 msgstr ""
 "\n"
 "Kết thúc cấu hình.\n"
 
-#: src/transport/plugin_transport_http_server.c:2763
+#: src/transport/plugin_transport_http_server.c:2768
 #, fuzzy, c-format
 msgid "Using port %u\n"
 msgstr "Đang thử nghiệm (các) truyền tải %s\n"
 
-#: src/transport/plugin_transport_http_server.c:2778
+#: src/transport/plugin_transport_http_server.c:2783
 #, fuzzy, c-format
 msgid "Specific IPv4 address `%s' in configuration file is invalid!\n"
 msgstr "Đang thử dùng tập tin « %s » cho cấu hình MySQL.\n"
 
-#: src/transport/plugin_transport_http_server.c:2788
+#: src/transport/plugin_transport_http_server.c:2793
 #, fuzzy, c-format
 msgid "Binding to IPv4 address %s\n"
 msgstr "Mức ưu tiên tiến trình không hợp lê « %s ».\n"
 
-#: src/transport/plugin_transport_http_server.c:2809
+#: src/transport/plugin_transport_http_server.c:2814
 #, fuzzy, c-format
 msgid "Specific IPv6 address `%s' in configuration file is invalid!\n"
 msgstr "Đang thử dùng tập tin « %s » cho cấu hình MySQL.\n"
 
-#: src/transport/plugin_transport_http_server.c:2819
+#: src/transport/plugin_transport_http_server.c:2824
 #, fuzzy, c-format
 msgid "Binding to IPv6 address %s\n"
 msgstr "Mức ưu tiên tiến trình không hợp lê « %s ».\n"
 
-#: src/transport/plugin_transport_http_server.c:2871
+#: src/transport/plugin_transport_http_server.c:2876
 #, fuzzy, c-format
 msgid "Using external hostname `%s'\n"
 msgstr "Đang bắt đầu tài về « %s »\n"
 
-#: src/transport/plugin_transport_http_server.c:2887
+#: src/transport/plugin_transport_http_server.c:2892
 #, fuzzy, c-format
 msgid "Notifying transport only about hostname `%s'\n"
 msgstr "không quyết định các tên máy"
@@ -7311,233 +7422,232 @@
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# các byte loại đi bởi SMTP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:576
+#: src/transport/plugin_transport_tcp.c:559
 #, fuzzy, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr "Gặp sự kiện bất thường: %d\n"
 
-#: src/transport/plugin_transport_tcp.c:799
-#: src/transport/plugin_transport_tcp.c:980
-#: src/transport/plugin_transport_tcp.c:2120
-#: src/transport/plugin_transport_tcp.c:2723
+#: src/transport/plugin_transport_tcp.c:766
+#: src/transport/plugin_transport_tcp.c:930
+#: src/transport/plugin_transport_tcp.c:1973
+#: src/transport/plugin_transport_tcp.c:2527
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/transport/plugin_transport_tcp.c:836
-#: src/transport/plugin_transport_tcp.c:973
-#: src/transport/plugin_transport_tcp.c:1062
-#: src/transport/plugin_transport_tcp.c:1112
-#: src/transport/plugin_transport_tcp.c:1291
-#: src/transport/plugin_transport_tcp.c:1310
+#: src/transport/plugin_transport_tcp.c:797
+#: src/transport/plugin_transport_tcp.c:923
+#: src/transport/plugin_transport_tcp.c:1009
+#: src/transport/plugin_transport_tcp.c:1056
+#: src/transport/plugin_transport_tcp.c:1219
+#: src/transport/plugin_transport_tcp.c:1237
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# các byte đã gừi qua TCP"
 
-#: src/transport/plugin_transport_tcp.c:840
+#: src/transport/plugin_transport_tcp.c:800
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# các byte loại đi bởi TCP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:1066
+#: src/transport/plugin_transport_tcp.c:1012
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# các byte loại đi bởi TCP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:1115
+#: src/transport/plugin_transport_tcp.c:1059
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# các byte được gửi"
 
-#: src/transport/plugin_transport_tcp.c:1264
+#: src/transport/plugin_transport_tcp.c:1193
 #, c-format
 msgid "Trying to send with invalid session %p\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1521
-#: src/transport/plugin_transport_udp.c:1488
+#: src/transport/plugin_transport_tcp.c:1427
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1645
+#: src/transport/plugin_transport_tcp.c:1532
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2170
+#: src/transport/plugin_transport_tcp.c:2021
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_tcp.c:2355
+#: src/transport/plugin_transport_tcp.c:2189
 msgid "# bytes received via TCP"
 msgstr "# các byte đã nhận qua TCP"
 
-#: src/transport/plugin_transport_tcp.c:2433
+#: src/transport/plugin_transport_tcp.c:2253
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2602 src/util/service.c:589
+#: src/transport/plugin_transport_tcp.c:2407 src/util/service.c:589
 #: src/util/service.c:595
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2616
+#: src/transport/plugin_transport_tcp.c:2421
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/transport/plugin_transport_tcp.c:2712
+#: src/transport/plugin_transport_tcp.c:2516
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
+#: src/transport/plugin_transport_tcp.c:2520
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2718
+#: src/transport/plugin_transport_tcp.c:2523
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:173
+#: src/transport/plugin_transport_udp_broadcasting.c:167
 #, fuzzy
 msgid "# IPv6 multicast HELLO beacons received via udp"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:222
+#: src/transport/plugin_transport_udp_broadcasting.c:210
 #, fuzzy
 msgid "# IPv4 broadcast HELLO beacons received via udp"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:606
+#: src/transport/plugin_transport_udp_broadcasting.c:594
 msgid ""
 "Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:629
+#: src/transport/plugin_transport_udp_broadcasting.c:617
 #, c-format
 msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1599
+#: src/transport/plugin_transport_udp.c:1406
 #, c-format
 msgid ""
 "Trying to create session for address of unexpected length %u (should be %u "
 "or %u)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2680
+#: src/transport/plugin_transport_udp.c:2474
 #, c-format
 msgid ""
 "UDP could not transmit message to `%s': Network seems down, please check "
 "your network configuration\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2694
+#: src/transport/plugin_transport_udp.c:2488
 msgid ""
 "UDP could not transmit IPv6 message! Please check your network configuration "
 "and disable IPv6 if your connection does not have a global IPv6 address\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2993
+#: src/transport/plugin_transport_udp.c:2817
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/transport/plugin_transport_udp.c:3091
+#: src/transport/plugin_transport_udp.c:2912
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:3134
+#: src/transport/plugin_transport_udp.c:2951
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Mức ưu tiên tiến trình không hợp lê « %s ».\n"
 
-#: src/transport/plugin_transport_udp.c:3200
+#: src/transport/plugin_transport_udp.c:3021
 #, fuzzy
 msgid "Failed to create network sockets, plugin failed\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/transport/plugin_transport_unix.c:1657
+#: src/transport/plugin_transport_unix.c:1624
 #, fuzzy
 msgid "Failed to open UNIX listen socket\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/transport/plugin_transport_wlan.c:623
+#: src/transport/plugin_transport_wlan.c:625
 msgid "# WLAN ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:642
+#: src/transport/plugin_transport_wlan.c:644
 #, fuzzy
 msgid "# WLAN messages defragmented"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/plugin_transport_wlan.c:691
-#: src/transport/plugin_transport_wlan.c:778
-#: src/transport/plugin_transport_wlan.c:1937
+#: src/transport/plugin_transport_wlan.c:693
+#: src/transport/plugin_transport_wlan.c:780
+#: src/transport/plugin_transport_wlan.c:1952
 #, fuzzy
 msgid "# WLAN sessions allocated"
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/transport/plugin_transport_wlan.c:883
+#: src/transport/plugin_transport_wlan.c:886
 #, fuzzy
 msgid "# WLAN message fragments sent"
 msgstr "# các thông báo bị tế phân"
 
-#: src/transport/plugin_transport_wlan.c:907
+#: src/transport/plugin_transport_wlan.c:910
 msgid "# WLAN messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1015
-#: src/transport/plugin_transport_wlan.c:1101
-#: src/transport/plugin_transport_wlan.c:1939
+#: src/transport/plugin_transport_wlan.c:1018
+#: src/transport/plugin_transport_wlan.c:1105
+#: src/transport/plugin_transport_wlan.c:1954
 #, fuzzy
 msgid "# WLAN MAC endpoints allocated"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/transport/plugin_transport_wlan.c:1297
+#: src/transport/plugin_transport_wlan.c:1301
 #, fuzzy
 msgid "# HELLO messages received via WLAN"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_wlan.c:1323
+#: src/transport/plugin_transport_wlan.c:1325
 #, fuzzy
 msgid "# fragments received via WLAN"
 msgstr "# các mảnh bị loại bỏ"
 
-#: src/transport/plugin_transport_wlan.c:1333
+#: src/transport/plugin_transport_wlan.c:1335
 #, fuzzy
 msgid "# ACKs received via WLAN"
 msgstr "# các byte đã nhận qua TCP"
 
-#: src/transport/plugin_transport_wlan.c:1390
+#: src/transport/plugin_transport_wlan.c:1395
 #, fuzzy
 msgid "# WLAN DATA messages discarded due to CRC32 error"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/plugin_transport_wlan.c:1511
+#: src/transport/plugin_transport_wlan.c:1517
 #, fuzzy
 msgid "# DATA messages received via WLAN"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_wlan.c:1546
+#: src/transport/plugin_transport_wlan.c:1552
 #, fuzzy
 msgid "# WLAN DATA messages processed"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_wlan.c:1609
+#: src/transport/plugin_transport_wlan.c:1620
 #, fuzzy
 msgid "# HELLO beacons sent via WLAN"
 msgstr "# các byte đã gửi qua UDP"
 
-#: src/transport/plugin_transport_wlan.c:1722
+#: src/transport/plugin_transport_wlan.c:1733
 msgid "WLAN address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1918
+#: src/transport/plugin_transport_wlan.c:1933
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run WLAN transport\n"
 msgstr ""
@@ -8003,6 +8113,27 @@
 msgid "Use build-in GNUnet stub resolver"
 msgstr ""
 
+#: src/util/gnunet-scrypt.c:279
+msgid "number of bits to require for the proof of work"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:282
+msgid "file with private key, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:285
+msgid "file with proof of work, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:288
+msgid "time to wait between calculations"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:299
+#, fuzzy
+msgid "Manipulate GNUnet proof of work files"
+msgstr "cập nhật một giá trị trong tập tin cấu hình"
+
 #: src/util/gnunet-service-resolver.c:283
 #, c-format
 msgid "Could not resolve `%s' (%s): %s\n"
@@ -8274,115 +8405,115 @@
 msgid "b"
 msgstr "b"
 
-#: src/util/strings.c:444
+#: src/util/strings.c:433
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
 msgstr ""
 
-#: src/util/strings.c:572
+#: src/util/strings.c:561
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 "Lỗi mở rộng biến môi trường « $HOME »: chưa đặt biến môi trường « HOME »"
 
-#: src/util/strings.c:669
+#: src/util/strings.c:658
 msgid "µs"
 msgstr ""
 
-#: src/util/strings.c:673
+#: src/util/strings.c:662
 msgid "forever"
 msgstr ""
 
-#: src/util/strings.c:675
+#: src/util/strings.c:664
 msgid "0 ms"
 msgstr ""
 
-#: src/util/strings.c:681
+#: src/util/strings.c:670
 msgid "ms"
 msgstr "mg"
 
-#: src/util/strings.c:687
+#: src/util/strings.c:676
 msgid "s"
 msgstr "g"
 
-#: src/util/strings.c:693
+#: src/util/strings.c:682
 msgid "m"
 msgstr "p"
 
-#: src/util/strings.c:699
+#: src/util/strings.c:688
 msgid "h"
 msgstr "g"
 
-#: src/util/strings.c:706
+#: src/util/strings.c:695
 #, fuzzy
 msgid "day"
 msgstr " ngày"
 
-#: src/util/strings.c:708
+#: src/util/strings.c:697
 #, fuzzy
 msgid "days"
 msgstr " ngày"
 
-#: src/util/strings.c:737
+#: src/util/strings.c:726
 msgid "end of time"
 msgstr ""
 
-#: src/util/strings.c:1170
+#: src/util/strings.c:1159
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
 
-#: src/util/strings.c:1178
+#: src/util/strings.c:1167
 msgid "IPv6 address did contain ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1184
+#: src/util/strings.c:1173
 msgid "IPv6 address did contain ']' before ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1191
+#: src/util/strings.c:1180
 msgid "IPv6 address did contain a valid port number after the last ':'\n"
 msgstr ""
 
-#: src/util/strings.c:1200
+#: src/util/strings.c:1189
 #, fuzzy, c-format
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Mức ưu tiên tiến trình không hợp lê « %s ».\n"
 
-#: src/util/strings.c:1406 src/util/strings.c:1422
+#: src/util/strings.c:1395 src/util/strings.c:1411
 msgid "Port not in range\n"
 msgstr ""
 
-#: src/util/strings.c:1431
+#: src/util/strings.c:1420
 #, fuzzy, c-format
 msgid "Malformed port policy `%s'\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/util/strings.c:1514 src/util/strings.c:1545 src/util/strings.c:1593
-#: src/util/strings.c:1614
+#: src/util/strings.c:1503 src/util/strings.c:1534 src/util/strings.c:1582
+#: src/util/strings.c:1603
 #, c-format
 msgid "Invalid format for IP: `%s'\n"
 msgstr "Địa chỉ IP định dạng sai: %s\n"
 
-#: src/util/strings.c:1571
+#: src/util/strings.c:1560
 #, c-format
 msgid "Invalid network notation ('/%d' is not legal in IPv4 CIDR)."
 msgstr "Ký hiệu mạng sai (« /%d » không hợp lệ trong CIDR IPv4)."
 
-#: src/util/strings.c:1623
+#: src/util/strings.c:1612
 #, fuzzy, c-format
 msgid "Invalid format: `%s'\n"
 msgstr "Địa chỉ IP định dạng sai: %s\n"
 
-#: src/util/strings.c:1675
+#: src/util/strings.c:1664
 #, c-format
 msgid "Invalid network notation (does not end with ';': `%s')\n"
 msgstr "Ký hiệu mạng sai (không kết thúc với « ; »: « %s »)\n"
 
-#: src/util/strings.c:1725
+#: src/util/strings.c:1714
 #, fuzzy, c-format
 msgid "Wrong format `%s' for netmask\n"
 msgstr "Mặt nạ mạng có định dạng sai « %s »: %s\n"
 
-#: src/util/strings.c:1756
+#: src/util/strings.c:1745
 #, fuzzy, c-format
 msgid "Wrong format `%s' for network\n"
 msgstr "Mạng có định dạng sai « %s »: %s\n"
@@ -8587,6 +8718,26 @@
 msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với lỗi: %s\n"
 
 #, fuzzy
+#~ msgid "provide information about a particular channel"
+#~ msgstr "In ra thông tin về các đồng đẳng GNUnet."
+
+#, fuzzy
+#~ msgid "provide information about a particular connection"
+#~ msgstr "In ra thông tin về các đồng đẳng GNUnet."
+
+#, fuzzy
+#~ msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
+#~ msgstr "In ra thông tin về các đồng đẳng GNUnet."
+
+#, fuzzy
+#~ msgid "Could not find option `%s:%s' in configuration.\n"
+#~ msgstr "Không tìm thấy phương pháp « %s%s » trong thư viện « %s ».\n"
+
+#, fuzzy
+#~ msgid "Peer `%s' disconnected\n"
+#~ msgstr "# của các đồng đẳng đã kết nối"
+
+#, fuzzy
 #~ msgid "Transport plugin: `%s' port %llu\n"
 #~ msgstr "Đang nạp các truyền tải « %s »\n"
 
@@ -9231,10 +9382,6 @@
 #~ msgstr "Lỗi bắt đầu thu thập.\n"
 
 #, fuzzy
-#~ msgid "Failed to start `gnunet-peerinfo' process.\n"
-#~ msgstr "Lỗi bắt đầu thu thập.\n"
-
-#, fuzzy
 #~ msgid "Failed to start `ssh' process.\n"
 #~ msgstr "Lỗi bắt đầu thu thập.\n"
 

Modified: gnunet/po/zh_CN.po
===================================================================
--- gnunet/po/zh_CN.po  2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/po/zh_CN.po  2014-01-20 19:08:47 UTC (rev 31956)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2014-01-05 13:20+0100\n"
+"POT-Creation-Date: 2014-01-14 18:39+0100\n"
 "PO-Revision-Date: 2011-07-09 12:12+0800\n"
 "Last-Translator: Wylmer Wang <address@hidden>\n"
 "Language-Team: Chinese (simplified) <address@hidden>\n"
@@ -355,49 +355,49 @@
 msgid "Received last message for %s \n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1948
-#: src/ats/gnunet-service-ats_addresses.c:1992
+#: src/ats/gnunet-service-ats_addresses.c:1974
+#: src/ats/gnunet-service-ats_addresses.c:2018
 #, c-format
 msgid ""
 "Could not load quota for network `%s':  `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1955
+#: src/ats/gnunet-service-ats_addresses.c:1981
 #, c-format
 msgid "Outbound quota configure for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1963
+#: src/ats/gnunet-service-ats_addresses.c:1989
 #, c-format
 msgid ""
 "No outbound quota configured for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:1999
+#: src/ats/gnunet-service-ats_addresses.c:2025
 #, c-format
 msgid "Inbound quota configured for network `%s' is %llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2007
+#: src/ats/gnunet-service-ats_addresses.c:2033
 #, c-format
 msgid ""
 "No outbound quota configure for network `%s', assigning default bandwidth "
 "%llu\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2184
+#: src/ats/gnunet-service-ats_addresses.c:2211
 #, c-format
 msgid "Initializing solver `%s '`%s'\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_addresses.c:2187
+#: src/ats/gnunet-service-ats_addresses.c:2214
 #, fuzzy, c-format
 msgid "Failed to initialize solver `%s'!\n"
 msgstr "无法初始化 SQLite:%s。\n"
 
-#: src/ats/gnunet-service-ats_addresses.c:2210
+#: src/ats/gnunet-service-ats_addresses.c:2237
 #, fuzzy
 msgid "Failed to initialize solver!\n"
 msgstr "无法初始化 SQLite:%s。\n"
@@ -475,12 +475,12 @@
 msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:352 src/namestore/gnunet-namestore.c:550
-#: src/transport/gnunet-transport.c:829
+#: src/transport/gnunet-transport.c:940
 #, fuzzy, c-format
 msgid "Service `%s' is not running\n"
 msgstr "服务已删除。\n"
 
-#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:838
+#: src/ats-tool/gnunet-ats.c:364 src/transport/gnunet-transport.c:949
 #, fuzzy, c-format
 msgid "Failed to parse peer identity `%s'\n"
 msgstr "解析配置文件“%s”失败\n"
@@ -563,6 +563,7 @@
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
 #: src/consensus/gnunet-consensus-profiler.c:420
+#: src/secretsharing/gnunet-secretsharing-profiler.c:300
 #, fuzzy
 msgid "number of peers in consensus"
 msgstr "迭代次数"
@@ -583,6 +584,7 @@
 msgstr ""
 
 #: src/consensus/gnunet-consensus-profiler.c:432
+#: src/secretsharing/gnunet-secretsharing-profiler.c:309
 msgid "be more verbose (print received values)"
 msgstr ""
 
@@ -591,254 +593,259 @@
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:252
+#: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept #%u or /cancel %u the call.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:274
+#: src/conversation/gnunet-conversation.c:286
 #, c-format
 msgid "Call from `%s' terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:307
+#: src/conversation/gnunet-conversation.c:319
 #, c-format
 msgid "Call from `%s' suspended by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:312
+#: src/conversation/gnunet-conversation.c:324
 #, c-format
 msgid "Call from `%s' resumed by other user\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:330
+#: src/conversation/gnunet-conversation.c:342
 #, c-format
 msgid "Ego `%s' no longer available, phone is now down.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:344
+#: src/conversation/gnunet-conversation.c:356
 #, fuzzy
 msgid "Failed to setup phone (internal error)\n"
 msgstr "发送消息失败。\n"
 
-#: src/conversation/gnunet-conversation.c:356
+#: src/conversation/gnunet-conversation.c:368
 #, c-format
 msgid ""
 "Phone active on line %u.  Type `/help' for a list of available commands\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:378
+#: src/conversation/gnunet-conversation.c:390
 #, c-format
 msgid "Resolved address of `%s'. Now ringing other party.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:385
+#: src/conversation/gnunet-conversation.c:397
 #, fuzzy, c-format
 msgid "Connection established to `%s'\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
 
-#: src/conversation/gnunet-conversation.c:392
+#: src/conversation/gnunet-conversation.c:404
 #, fuzzy, c-format
 msgid "Failed to resolve `%s'\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/conversation/gnunet-conversation.c:399
+#: src/conversation/gnunet-conversation.c:411
 msgid "Call terminated\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:405
+#: src/conversation/gnunet-conversation.c:417
 #, c-format
 msgid "Connection to `%s' suspended (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:411
+#: src/conversation/gnunet-conversation.c:423
 #, c-format
 msgid "Connection to `%s' resumed (by other user)\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:416
+#: src/conversation/gnunet-conversation.c:428
 msgid "Error with the call, restarting it\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:483
+#: src/conversation/gnunet-conversation.c:495
 #, fuzzy, c-format
 msgid "Unknown command `%s'\n"
 msgstr "未知的命令“%s”。\n"
 
-#: src/conversation/gnunet-conversation.c:499
-#: src/conversation/gnunet-conversation.c:513
+#: src/conversation/gnunet-conversation.c:511
+#: src/conversation/gnunet-conversation.c:525
 #, c-format
 msgid "Ego `%s' not available\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:506
-#: src/conversation/gnunet-conversation.c:563
+#: src/conversation/gnunet-conversation.c:518
+#: src/conversation/gnunet-conversation.c:575
 msgid "You are calling someone else already, hang up first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:521
-#: src/conversation/gnunet-conversation.c:576
+#: src/conversation/gnunet-conversation.c:533
+#: src/conversation/gnunet-conversation.c:588
 #, c-format
 msgid "You are answering call from `%s', hang up or suspend that call first!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:532
+#: src/conversation/gnunet-conversation.c:544
 msgid "Call recipient missing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:587
+#: src/conversation/gnunet-conversation.c:599
 msgid "There is no incoming call to accept here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:604
+#: src/conversation/gnunet-conversation.c:616
 #, c-format
 msgid "There is no incoming call `%s' to accept right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:632
+#: src/conversation/gnunet-conversation.c:644
 msgid "We currently do not have an address.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:655
+#: src/conversation/gnunet-conversation.c:667
 #, c-format
 msgid "We are currently trying to locate the private key for the ego `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:660
+#: src/conversation/gnunet-conversation.c:672
 #, c-format
 msgid "We are listening for incoming calls for ego `%s' on line %u.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:666
-#: src/conversation/gnunet-conversation.c:690
+#: src/conversation/gnunet-conversation.c:678
+#: src/conversation/gnunet-conversation.c:702
 #, c-format
 msgid "You are having a conversation with `%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:671
+#: src/conversation/gnunet-conversation.c:683
 msgid ""
 "We had an internal error setting up our phone line. You can still make "
 "calls.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:680
+#: src/conversation/gnunet-conversation.c:692
 #, fuzzy, c-format
 msgid "We are trying to find the network address to call `%s'.\n"
 msgstr "GNUnet 现在使用 IP 地址 %s。\n"
 
-#: src/conversation/gnunet-conversation.c:685
+#: src/conversation/gnunet-conversation.c:697
 #, c-format
 msgid "We are calling `%s', his phone should be ringing.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:704
+#: src/conversation/gnunet-conversation.c:716
 msgid "Calls waiting:\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:710
+#: src/conversation/gnunet-conversation.c:722
 #, fuzzy, c-format
 msgid "#%u: `%s'\n"
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/conversation/gnunet-conversation.c:738
-#: src/conversation/gnunet-conversation.c:753
+#: src/conversation/gnunet-conversation.c:750
+#: src/conversation/gnunet-conversation.c:765
 msgid "There is no call that could be suspended right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:786
-#: src/conversation/gnunet-conversation.c:802
+#: src/conversation/gnunet-conversation.c:798
+#: src/conversation/gnunet-conversation.c:814
 msgid "There is no call that could be resumed right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:809
+#: src/conversation/gnunet-conversation.c:821
 #, c-format
 msgid "Already talking with `%s', cannot resume a call right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:818
+#: src/conversation/gnunet-conversation.c:830
 msgid "There is no incoming call to resume here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:835
+#: src/conversation/gnunet-conversation.c:847
 #, c-format
 msgid "There is no incoming call `%s' to resume right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:870
+#: src/conversation/gnunet-conversation.c:882
 msgid "There is no call that could be cancelled right now.\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:878
+#: src/conversation/gnunet-conversation.c:890
 msgid "There is no incoming call to refuse here!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:895
+#: src/conversation/gnunet-conversation.c:907
 #, c-format
 msgid "There is no incoming call `%s' to refuse right now!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:922
+#: src/conversation/gnunet-conversation.c:934
 msgid "Use `/address' to find out which address this phone should have in GNS"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:924
+#: src/conversation/gnunet-conversation.c:936
 msgid "Use `/call USER.gnu' to call USER"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:926
+#: src/conversation/gnunet-conversation.c:938
 msgid "Use `/accept #NUM' to accept incoming call #NUM"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:928
+#: src/conversation/gnunet-conversation.c:940
 msgid "Use `/suspend' to suspend the active call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:930
+#: src/conversation/gnunet-conversation.c:942
 msgid ""
 "Use `/resume [#NUM]' to resume a call, #NUM is needed to resume incoming "
 "calls, no argument is needed to resume the current outgoing call."
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:932
+#: src/conversation/gnunet-conversation.c:944
 msgid "Use `/cancel' to reject or terminate a call"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:934
+#: src/conversation/gnunet-conversation.c:946
 msgid "Use `/status' to print status information"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:936
+#: src/conversation/gnunet-conversation.c:948
 msgid "Use `/quit' to terminate gnunet-conversation"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:938
+#: src/conversation/gnunet-conversation.c:950
 msgid "Use `/help command' to get help for a specific command"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1093
+#: src/conversation/gnunet-conversation.c:1148
 #, fuzzy, c-format
 msgid "Name of our ego changed to `%s'\n"
 msgstr "发送消息失败。\n"
 
-#: src/conversation/gnunet-conversation.c:1106
+#: src/conversation/gnunet-conversation.c:1161
 #, c-format
 msgid "Our ego `%s' was deleted!\n"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1141
+#: src/conversation/gnunet-conversation.c:1196
 #, fuzzy
 msgid "You must specify the NAME of an ego to use\n"
 msgstr "您必须指定一个昵称\n"
 
-#: src/conversation/gnunet-conversation.c:1167
+#: src/conversation/gnunet-conversation.c:1220
+#, fuzzy
+msgid "Failed to start gnunet-helper-w32-console\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/conversation/gnunet-conversation.c:1246
 msgid "sets the NAME of the ego to use for the phone (and name resolution)"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1170
+#: src/conversation/gnunet-conversation.c:1249
 msgid "sets the LINE to use for the phone"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1185
+#: src/conversation/gnunet-conversation.c:1273
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
@@ -880,12 +887,12 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:211
-#: src/conversation/gnunet-helper-audio-record.c:362
+#: src/conversation/gnunet-helper-audio-record.c:365
 msgid "Connection established.\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:216
-#: src/conversation/gnunet-helper-audio-record.c:367
+#: src/conversation/gnunet-helper-audio-record.c:370
 #, fuzzy, c-format
 msgid "pa_stream_new() failed: %s\n"
 msgstr "“%s”说:%s\n"
@@ -896,34 +903,34 @@
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:243
-#: src/conversation/gnunet-helper-audio-record.c:393
+#: src/conversation/gnunet-helper-audio-record.c:396
 #, fuzzy, c-format
 msgid "Connection failure: %s\n"
 msgstr "“%s”已连接到“%s”。\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:264
-#: src/conversation/gnunet-helper-audio-record.c:416
+#: src/conversation/gnunet-helper-audio-record.c:419
 msgid "Wrong Spec\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:270
-#: src/conversation/gnunet-helper-audio-record.c:422
+#: src/conversation/gnunet-helper-audio-record.c:425
 msgid "pa_mainloop_new() failed.\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:284
-#: src/conversation/gnunet-helper-audio-record.c:437
+#: src/conversation/gnunet-helper-audio-record.c:440
 msgid "pa_context_new() failed.\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-playback.c:291
-#: src/conversation/gnunet-helper-audio-record.c:443
+#: src/conversation/gnunet-helper-audio-record.c:446
 #, fuzzy, c-format
 msgid "pa_context_connect() failed: %s\n"
 msgstr "“%s”说:%s\n"
 
 #: src/conversation/gnunet-helper-audio-playback.c:297
-#: src/conversation/gnunet-helper-audio-record.c:449
+#: src/conversation/gnunet-helper-audio-record.c:452
 msgid "pa_mainloop_run() failed.\n"
 msgstr ""
 
@@ -932,46 +939,51 @@
 msgid "Read error from STDIN: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:237
+#: src/conversation/gnunet-helper-audio-playback-gst.c:341
+#, c-format
+msgid "Read error from STDIN: %d %s\n"
+msgstr ""
+
+#: src/conversation/gnunet-helper-audio-record.c:240
 #, fuzzy, c-format
 msgid "pa_stream_peek() failed: %s\n"
 msgstr "“%s”说:%s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:275
+#: src/conversation/gnunet-helper-audio-record.c:278
 msgid "Got signal, exiting.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:300
+#: src/conversation/gnunet-helper-audio-record.c:303
 #, fuzzy
 msgid "Stream successfully created.\n"
 msgstr "“%s”已连接到“%s”。\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:305
+#: src/conversation/gnunet-helper-audio-record.c:308
 #, fuzzy, c-format
 msgid "pa_stream_get_buffer_attr() failed: %s\n"
 msgstr "“%s”说:%s\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:313
+#: src/conversation/gnunet-helper-audio-record.c:316
 #, c-format
 msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:317
+#: src/conversation/gnunet-helper-audio-record.c:320
 #, c-format
 msgid "Using sample spec '%s', channel map '%s'.\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:324
+#: src/conversation/gnunet-helper-audio-record.c:327
 #, fuzzy, c-format
 msgid "Connected to device %s (%u, %ssuspended).\n"
 msgstr "“%s”已连接到“%s”。\n"
 
-#: src/conversation/gnunet-helper-audio-record.c:333
+#: src/conversation/gnunet-helper-audio-record.c:336
 #, c-format
 msgid "Stream error: %s\n"
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-record.c:380
+#: src/conversation/gnunet-helper-audio-record.c:383
 #, fuzzy, c-format
 msgid "pa_stream_connect_record() failed: %s\n"
 msgstr "“%s”说:%s\n"
@@ -1015,17 +1027,17 @@
 msgstr ""
 
 #: src/core/gnunet-core.c:110 src/core/gnunet-core.c:138
-#: src/transport/gnunet-transport.c:609 src/transport/gnunet-transport.c:634
+#: src/transport/gnunet-transport.c:630 src/transport/gnunet-transport.c:650
 #, c-format
 msgid "%24s: %-17s %4s   (%u connections in total)\n"
 msgstr ""
 
-#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:611
+#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:631
 #, fuzzy
 msgid "Connected to"
 msgstr "“%s”已连接到“%s”。\n"
 
-#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:636
+#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:651
 #, fuzzy
 msgid "Disconnected from"
 msgstr "“%s”已连接到“%s”。\n"
@@ -1035,7 +1047,7 @@
 msgid "Invalid command line argument `%s'\n"
 msgstr "“%s”的参数无效。\n"
 
-#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1028
+#: src/core/gnunet-core.c:201 src/transport/gnunet-transport.c:1127
 msgid "provide information about all current connections (continuously)"
 msgstr ""
 
@@ -1102,7 +1114,7 @@
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:950
-#: src/transport/gnunet-service-transport_validation.c:974
+#: src/transport/gnunet-service-transport_validation.c:968
 msgid "# PING messages received"
 msgstr ""
 
@@ -1130,7 +1142,7 @@
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1095
-#: src/transport/gnunet-service-transport_validation.c:1285
+#: src/transport/gnunet-service-transport_validation.c:1280
 msgid "# PONG messages received"
 msgstr ""
 
@@ -1220,11 +1232,11 @@
 #: src/fs/gnunet-service-fs_cp.c:604 src/fs/gnunet-service-fs_cp.c:1499
 #: src/topology/gnunet-daemon-topology.c:706
 #: src/topology/gnunet-daemon-topology.c:807
-#: src/transport/gnunet-service-transport_neighbours.c:929
-#: src/transport/gnunet-service-transport_neighbours.c:1161
-#: src/transport/gnunet-service-transport_neighbours.c:1170
-#: src/transport/gnunet-service-transport_neighbours.c:3015
-#: src/transport/gnunet-service-transport_neighbours.c:3291
+#: src/transport/gnunet-service-transport_neighbours.c:837
+#: src/transport/gnunet-service-transport_neighbours.c:1069
+#: src/transport/gnunet-service-transport_neighbours.c:1078
+#: src/transport/gnunet-service-transport_neighbours.c:2920
+#: src/transport/gnunet-service-transport_neighbours.c:3181
 msgid "# peers connected"
 msgstr ""
 
@@ -1299,6 +1311,9 @@
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:52
+#: src/testbed/generate-underlay-topology.c:47
+#: src/testbed/gnunet-daemon-latency-logger.c:52
+#: src/testbed/gnunet-daemon-testbed-underlay.c:55
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
 #: src/include/gnunet_common.h:602 src/include/gnunet_common.h:611
 #: src/scalarproduct/scalarproduct.h:61
@@ -1616,6 +1631,9 @@
 msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:57
+#: src/testbed/generate-underlay-topology.c:50
+#: src/testbed/gnunet-daemon-latency-logger.c:55
+#: src/testbed/gnunet-daemon-testbed-underlay.c:58
 #, fuzzy, c-format
 msgid "`%s' failed at %s:%u with error: %s"
 msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
@@ -3272,7 +3290,7 @@
 msgstr ""
 
 #: src/fs/gnunet-publish.c:778 src/fs/gnunet-publish.c:785
-#: src/transport/gnunet-transport.c:865 src/transport/gnunet-transport.c:899
+#: src/transport/gnunet-transport.c:977 src/transport/gnunet-transport.c:1007
 #, c-format
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr ""
@@ -3888,8 +3906,8 @@
 #: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
 #: src/hostlist/hostlist-client.c:871 src/hostlist/hostlist-client.c:963
 #: src/hostlist/hostlist-client.c:968
-#: src/transport/plugin_transport_http_client.c:1070
-#: src/transport/plugin_transport_http_client.c:1085
+#: src/transport/plugin_transport_http_client.c:1062
+#: src/transport/plugin_transport_http_client.c:1077
 #, c-format
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr ""
@@ -4181,36 +4199,36 @@
 msgid "Modified %u addresses \n"
 msgstr ""
 
-#: src/hello/hello.c:943
+#: src/hello/hello.c:944
 #, fuzzy
 msgid "Failed to parse HELLO message: missing expiration time\n"
 msgstr "保存配置失败。"
 
-#: src/hello/hello.c:952
+#: src/hello/hello.c:953
 #, fuzzy
 msgid "Failed to parse HELLO message: invalid expiration time\n"
 msgstr "保存配置失败。"
 
-#: src/hello/hello.c:962
+#: src/hello/hello.c:963
 #, fuzzy
 msgid "Failed to parse HELLO message: malformed\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/hello/hello.c:972
+#: src/hello/hello.c:973
 msgid "Failed to parse HELLO message: missing transport plugin\n"
 msgstr ""
 
-#: src/hello/hello.c:989
+#: src/hello/hello.c:990
 #, c-format
 msgid "Plugin `%s' not found\n"
 msgstr ""
 
-#: src/hello/hello.c:998
+#: src/hello/hello.c:999
 #, c-format
 msgid "Plugin `%s' does not support URIs yet\n"
 msgstr ""
 
-#: src/hello/hello.c:1017
+#: src/hello/hello.c:1018
 #, fuzzy, c-format
 msgid "Failed to parse `%s' as an address for plugin `%s'\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
@@ -4453,7 +4471,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556 src/peerinfo-tool/gnunet-peerinfo.c:651
-#: src/transport/gnunet-service-transport.c:946
+#: src/transport/gnunet-service-transport.c:867
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 
@@ -4564,48 +4582,34 @@
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/mesh/gnunet-mesh.c:342
+#: src/mesh/gnunet-mesh.c:343
 #, fuzzy, c-format
 msgid "Invalid target `%s'\n"
 msgstr "“%s”的参数无效。\n"
 
-#: src/mesh/gnunet-mesh.c:503
+#: src/mesh/gnunet-mesh.c:521
 #, fuzzy, c-format
 msgid "Invalid tunnel owner `%s'\n"
 msgstr "IP 格式无效:“%s”\n"
 
-#: src/mesh/gnunet-mesh.c:568
+#: src/mesh/gnunet-mesh.c:586
 msgid "You must NOT give a TARGET when using options\n"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:645
-#, fuzzy
-msgid "provide information about a particular channel"
-msgstr "无法获取有关用户“%s”的信息:%s\n"
-
-#: src/mesh/gnunet-mesh.c:648
-#, fuzzy
-msgid "provide information about a particular connection"
-msgstr "无法获取有关用户“%s”的信息:%s\n"
-
-#: src/mesh/gnunet-mesh.c:651
+#: src/mesh/gnunet-mesh.c:669
 msgid "activate echo mode"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:654
+#: src/mesh/gnunet-mesh.c:672
 #, fuzzy
 msgid "provide information about all tunnels"
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
-#: src/mesh/gnunet-mesh.c:657
-msgid "provide information about all tunnels (continuously) NOT IMPLEMENTED"
-msgstr ""
-
-#: src/mesh/gnunet-mesh.c:660
+#: src/mesh/gnunet-mesh.c:678
 msgid "port to listen to (default; 0)"
 msgstr ""
 
-#: src/mesh/gnunet-mesh.c:663
+#: src/mesh/gnunet-mesh.c:681
 #, fuzzy
 msgid "provide information about a particular tunnel"
 msgstr "无法获取有关用户“%s”的信息:%s\n"
@@ -4730,7 +4734,7 @@
 msgstr ""
 
 #: src/namestore/gnunet-namestore.c:715
-#: src/peerinfo-tool/gnunet-peerinfo.c:703
+#: src/peerinfo-tool/gnunet-peerinfo.c:702
 #, fuzzy, c-format
 msgid "Invalid URI `%s'\n"
 msgstr "无效条目。\n"
@@ -4900,53 +4904,53 @@
 msgid "NAT traversal with ICMP Server timed out.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:200
+#: src/nat/nat_auto.c:203
 msgid "NAT traversal with ICMP Server succeeded.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:201
+#: src/nat/nat_auto.c:204
 msgid "NAT traversal with ICMP Server failed.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:222
+#: src/nat/nat_auto.c:225
 msgid "Testing connection reversal with ICMP server.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:269
+#: src/nat/nat_auto.c:274
 #, c-format
 msgid "Detected external IP `%s'\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:339
+#: src/nat/nat_auto.c:344
 msgid "This system has a global IPv6 address, setting IPv6 to supported.\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:355
+#: src/nat/nat_auto.c:360
 #, fuzzy, c-format
 msgid "Detected internal network address `%s'.\n"
 msgstr "GNUnet 现在使用 IP 地址 %s。\n"
 
-#: src/nat/nat_auto.c:408
+#: src/nat/nat_auto.c:413
 msgid "upnpc found, enabling its use\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:409
+#: src/nat/nat_auto.c:414
 msgid "upnpc not found\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:442
+#: src/nat/nat_auto.c:447
 msgid "gnunet-helper-nat-server found, testing it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:443
+#: src/nat/nat_auto.c:448
 msgid "No working gnunet-helper-nat-server found\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:477
+#: src/nat/nat_auto.c:482
 msgid "gnunet-helper-nat-client found, enabling it\n"
 msgstr ""
 
-#: src/nat/nat_auto.c:478
+#: src/nat/nat_auto.c:483
 msgid "gnunet-helper-nat-client not found or behind NAT, disabling it\n"
 msgstr ""
 
@@ -4960,39 +4964,64 @@
 msgid "Failed to start %s\n"
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/nat/nat.c:1203
+#: src/nat/nat.c:1205
 msgid "malformed"
 msgstr ""
 
-#: src/nat/nat.c:1274 src/nat/nat.c:1286
+#: src/nat/nat.c:1276 src/nat/nat.c:1288
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1424
+#: src/nat/nat.c:1426
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1440
+#: src/nat/nat.c:1442
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:170
+#: src/nat/nat_mini.c:155
+msgid "no valid address was returned by `external-ip'"
+msgstr ""
+
+#: src/nat/nat_mini.c:175
+msgid "`external-ip' command not found"
+msgstr ""
+
+#: src/nat/nat_mini.c:201
 msgid "`external-ip' command not found\n"
 msgstr ""
 
-#: src/nat/nat_mini.c:505
+#: src/nat/nat_mini.c:366
+#, fuzzy
+msgid "Failed to run `upnpc` command"
+msgstr "运行 %s失败:%s %d\n"
+
+#: src/nat/nat_mini.c:512
+msgid "`upnpc' command took too long, process killed"
+msgstr ""
+
+#: src/nat/nat_mini.c:540
+msgid "`upnpc' command failed to establish port mapping"
+msgstr ""
+
+#: src/nat/nat_mini.c:604
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_mini.c:608
+msgid "`upnpc` command not found"
+msgstr ""
+
+#: src/nat/nat_test.c:351
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr ""
 
-#: src/nat/nat_test.c:420
+#: src/nat/nat_test.c:423
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
@@ -5027,15 +5056,11 @@
 msgstr "无法访问该服务"
 
 #: src/nse/gnunet-service-nse.c:1461
-#: src/revocation/gnunet-service-revocation.c:789
+#: src/revocation/gnunet-service-revocation.c:789 src/util/gnunet-scrypt.c:248
 #, fuzzy
 msgid "Value is too large.\n"
 msgstr "值不在合法范围内。"
 
-#: src/nse/gnunet-service-nse.c:1488
-msgid "NSE service is lacking key configuration settings.  Exiting.\n"
-msgstr ""
-
 #: src/peerinfo/gnunet-service-peerinfo.c:215
 #, c-format
 msgid "Removing expired address of transport `%s'\n"
@@ -5147,55 +5172,50 @@
 msgid "Failure adding HELLO: %s\n"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:661
-#, fuzzy, c-format
-msgid "Could not find option `%s:%s' in configuration.\n"
-msgstr "找不到主机“%s”的 IP:%s\n"
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:667
+#: src/peerinfo-tool/gnunet-peerinfo.c:666 src/util/gnunet-scrypt.c:224
 #, c-format
 msgid "Loading hostkey from `%s' failed.\n"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:725
+#: src/peerinfo-tool/gnunet-peerinfo.c:724
 #, c-format
 msgid "I am peer `%s'.\n"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:769
+#: src/peerinfo-tool/gnunet-peerinfo.c:768
 msgid "don't resolve host names"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:772
+#: src/peerinfo-tool/gnunet-peerinfo.c:771
 msgid "output only the identity strings"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:775
+#: src/peerinfo-tool/gnunet-peerinfo.c:774
 msgid "include friend-only information"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:778
+#: src/peerinfo-tool/gnunet-peerinfo.c:777
 msgid "output our own identity only"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:781
+#: src/peerinfo-tool/gnunet-peerinfo.c:780
 #, fuzzy
 msgid "list all known peers"
 msgstr "列出所有网络适配器"
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:784
+#: src/peerinfo-tool/gnunet-peerinfo.c:783
 msgid "dump hello to file"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:787
+#: src/peerinfo-tool/gnunet-peerinfo.c:786
 msgid "also output HELLO uri(s)"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:790
+#: src/peerinfo-tool/gnunet-peerinfo.c:789
 msgid "add given HELLO uri to the database"
 msgstr ""
 
-#: src/peerinfo-tool/gnunet-peerinfo.c:801
+#: src/peerinfo-tool/gnunet-peerinfo.c:800
 #, fuzzy
 msgid "Print information about peers."
 msgstr "无法获取有关用户“%s”的信息:%s\n"
@@ -5825,6 +5845,14 @@
 msgid "Failed to send a message to the scalarproduct service\n"
 msgstr "初始化“%s”服务失败。\n"
 
+#: src/secretsharing/gnunet-secretsharing-profiler.c:303
+msgid "dkg timeout"
+msgstr ""
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:306
+msgid "threshold"
+msgstr ""
+
 #: src/set/gnunet-service-set.c:1416
 #, fuzzy
 msgid "Could not connect to mesh service\n"
@@ -5957,19 +5985,94 @@
 "might have been lost!\n"
 msgstr ""
 
+#: src/testbed/generate-underlay-topology.c:223
+msgid "Need atleast 2 arguments\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:228
+msgid "Database filename missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:235
+msgid "Topology string missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:240
+#, fuzzy, c-format
+msgid "Invalid topology: %s\n"
+msgstr "“%s”的参数无效。\n"
+
+#: src/testbed/generate-underlay-topology.c:252
+#, c-format
+msgid "An argument is missing for given topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:258
+#, fuzzy, c-format
+msgid "Invalid argument `%s' given as topology argument\n"
+msgstr "“%s”的参数无效。\n"
+
+#: src/testbed/generate-underlay-topology.c:266
+#, c-format
+msgid "Filename argument missing for topology `%s'\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:280
+#, c-format
+msgid "Second argument for topology `%s' is missing\n"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:286
+#, fuzzy, c-format
+msgid "Invalid argument `%s'; expecting unsigned int\n"
+msgstr "“%s”的参数无效。\n"
+
+#: src/testbed/generate-underlay-topology.c:335
+#: src/testbed/gnunet-testbed-profiler.c:293
+msgid "create COUNT number of peers"
+msgstr ""
+
+#: src/testbed/generate-underlay-topology.c:344
+msgid ""
+"Generates SQLite3 database representing a given underlay topology.\n"
+"Usage: gnunet-underlay-topology [OPTIONS] db-filename TOPO [TOPOOPTS]\n"
+"The following options are available for TOPO followed by TOPOOPTS if "
+"applicable:\n"
+"\t LINE\n"
+"\t RING\n"
+"\t RANDOM <num_rnd_links>\n"
+"\t SMALL_WORLD <num_rnd_links>\n"
+"\t SMALL_WORLD_RING <num_rnd_links>\n"
+"\t CLIQUE\n"
+"\t 2D_TORUS\n"
+"\t SCALE_FREE <cap> <m>\n"
+"\t FROM_FILE <filename>\n"
+"TOPOOPTS:\n"
+"\t num_rnd_links: The number of random links\n"
+"\t cap: the maximum number of links a node can have\n"
+"\t m: the number of links a node should have while joining the network\n"
+"\t filename: the path of the file which contains topology information\n"
+"NOTE: the format of the above file is descibed here: https://www.gnunet.org/";
+"content/topology-file-format\n"
+msgstr ""
+
+#: src/testbed/gnunet-daemon-latency-logger.c:325
+msgid "Daemon to log latency values of connections to neighbours"
+msgstr ""
+
 #: src/testbed/gnunet-daemon-testbed-blacklist.c:264
 msgid ""
 "Daemon to restrict incoming transport layer connections during testbed "
 "deployments"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:300 src/testing/testing.c:293
-#: src/util/gnunet-ecc.c:217
+#: src/testbed/gnunet-daemon-testbed-underlay.c:235 src/testing/list-keys.c:50
+#: src/testing/testing.c:293 src/util/gnunet-ecc.c:217
 #, c-format
 msgid "Incorrect hostkey file format: %s\n"
 msgstr ""
 
-#: src/testbed/gnunet-daemon-testbed-underlay.c:553
+#: src/testbed/gnunet-daemon-testbed-underlay.c:474
 msgid "Daemon to restrict underlay network in testbed deployments"
 msgstr ""
 
@@ -6007,10 +6110,6 @@
 msgid "Exiting as the number of peers is %u\n"
 msgstr "增加 TCP/IP 的最大连接数"
 
-#: src/testbed/gnunet-testbed-profiler.c:293
-msgid "create COUNT number of peers"
-msgstr ""
-
 #: src/testbed/gnunet-testbed-profiler.c:296
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6047,100 +6146,100 @@
 msgid "Adding host %u failed with error: %s\n"
 msgstr "“%s”以错误码 %d 失败:%s\n"
 
-#: src/testbed/testbed_api_testbed.c:820
+#: src/testbed/testbed_api_testbed.c:819
 msgid "Linking controllers failed. Exiting"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:989
+#: src/testbed/testbed_api_testbed.c:988
 #, c-format
 msgid "Host registration failed for a host. Error: %s\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1055
+#: src/testbed/testbed_api_testbed.c:1054
 msgid "Controller crash detected. Shutting down.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1144
+#: src/testbed/testbed_api_testbed.c:1143
 #, c-format
 msgid "Host %s cannot start testbed\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1148
+#: src/testbed/testbed_api_testbed.c:1147
 msgid "Testbed cannot be started on localhost\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1186
+#: src/testbed/testbed_api_testbed.c:1185
 msgid "Cannot start the master controller"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1204
+#: src/testbed/testbed_api_testbed.c:1203
 msgid "Shutting down testbed due to timeout while setup.\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1264
+#: src/testbed/testbed_api_testbed.c:1263
 msgid "No hosts loaded from LoadLeveler. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1276
+#: src/testbed/testbed_api_testbed.c:1275
 msgid "No hosts loaded. Need at least one host\n"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1300
+#: src/testbed/testbed_api_testbed.c:1299
 msgid "Specified topology must be supported by testbed"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1350
+#: src/testbed/testbed_api_testbed.c:1349
 #, c-format
 msgid ""
 "Maximum number of edges a peer can have in a scale free topology cannot be "
 "more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_testbed.c:1366
+#: src/testbed/testbed_api_testbed.c:1365
 #, c-format
 msgid ""
 "The number of edges that can established when adding a new node to scale "
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:715
+#: src/testbed/testbed_api_topology.c:960
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:721
+#: src/testbed/testbed_api_topology.c:966
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:728
+#: src/testbed/testbed_api_topology.c:973
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:750
+#: src/testbed/testbed_api_topology.c:995
 #, fuzzy, c-format
 msgid "Failed to read peer index from toology file: %s"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/testbed/testbed_api_topology.c:759
-#: src/testbed/testbed_api_topology.c:783
+#: src/testbed/testbed_api_topology.c:1004
+#: src/testbed/testbed_api_topology.c:1028
 #, c-format
 msgid "Value in given topology file: %s out of range\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:765
-#: src/testbed/testbed_api_topology.c:789
+#: src/testbed/testbed_api_topology.c:1010
+#: src/testbed/testbed_api_topology.c:1034
 #, fuzzy, c-format
 msgid "Failed to read peer index from topology file: %s"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/testbed/testbed_api_topology.c:771
-#: src/testbed/testbed_api_topology.c:795
+#: src/testbed/testbed_api_topology.c:1016
+#: src/testbed/testbed_api_topology.c:1040
 msgid "Topology file needs more peers than given ones\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:810
+#: src/testbed/testbed_api_topology.c:1074
 #, fuzzy, c-format
 msgid "Ignoring to connect peer %u to peer %u\n"
 msgstr "无法连接到 %s:%u:%s\n"
@@ -6184,6 +6283,14 @@
 msgid "Command line tool to access the testing library"
 msgstr ""
 
+#: src/testing/list-keys.c:90
+msgid "list COUNT number of keys"
+msgstr ""
+
+#: src/testing/list-keys.c:93
+msgid "skip COUNT number of keys in the beginning"
+msgstr ""
+
 #: src/testing/testing.c:277
 #, c-format
 msgid "Hostkeys file not found: %s\n"
@@ -6319,35 +6426,35 @@
 msgstr ""
 
 #: src/transport/gnunet-service-transport_blacklist.c:455
-#: src/transport/gnunet-service-transport_blacklist.c:722
+#: src/transport/gnunet-service-transport_blacklist.c:725
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:206
+#: src/transport/gnunet-service-transport.c:201
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:325
+#: src/transport/gnunet-service-transport.c:304
 msgid "# bytes total received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:399
+#: src/transport/gnunet-service-transport.c:371
 msgid "# bytes payload received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:574
+#: src/transport/gnunet-service-transport.c:527
 #, fuzzy, c-format
 msgid "Could not obtain a valid network for `%s' %s (%s)\n"
 msgstr "无法利用“%2$s”获取接口“%1$s”的 IP。\n"
 
-#: src/transport/gnunet-service-transport.c:628
+#: src/transport/gnunet-service-transport.c:574
 #, c-format
 msgid ""
 "Address or session unknown: failed to update properties for peer `%s' plugin "
 "`%s' address `%s' session %p\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:916
+#: src/transport/gnunet-service-transport.c:837
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "立即保存配置?"
@@ -6361,16 +6468,16 @@
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:533
+#: src/transport/gnunet-service-transport_clients.c:540
 #, c-format
 msgid "Rejecting control connection from peer `%s', which is not me!\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:674
+#: src/transport/gnunet-service-transport_clients.c:681
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_clients.c:731
+#: src/transport/gnunet-service-transport_clients.c:738
 msgid "# REQUEST CONNECT messages received"
 msgstr ""
 
@@ -6378,143 +6485,143 @@
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1108
+#: src/transport/gnunet-service-transport_neighbours.c:1016
 msgid "# DISCONNECT messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1244
-#: src/transport/gnunet-service-transport_neighbours.c:1653
+#: src/transport/gnunet-service-transport_neighbours.c:1152
+#: src/transport/gnunet-service-transport_neighbours.c:1562
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1249
+#: src/transport/gnunet-service-transport_neighbours.c:1157
 msgid "# messages transmitted to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1254
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 msgid "# transmission failures for messages to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1311
+#: src/transport/gnunet-service-transport_neighbours.c:1219
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1368
+#: src/transport/gnunet-service-transport_neighbours.c:1276
 msgid "# keepalives sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1401
+#: src/transport/gnunet-service-transport_neighbours.c:1309
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1409
+#: src/transport/gnunet-service-transport_neighbours.c:1317
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1456
+#: src/transport/gnunet-service-transport_neighbours.c:1364
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1465
+#: src/transport/gnunet-service-transport_neighbours.c:1373
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1473
+#: src/transport/gnunet-service-transport_neighbours.c:1381
 msgid "# KEEPALIVE_RESPONSE messages discarded (address changed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1481
+#: src/transport/gnunet-service-transport_neighbours.c:1389
 msgid "# KEEPALIVE_RESPONSE messages discarded (wrong nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1558
+#: src/transport/gnunet-service-transport_neighbours.c:1467
 msgid "# messages discarded due to lack of neighbour record"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1592
+#: src/transport/gnunet-service-transport_neighbours.c:1501
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1517
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1700
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 msgid "# SESSION_CONNECT messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1716
+#: src/transport/gnunet-service-transport_neighbours.c:1625
 #, fuzzy, c-format
 msgid "Failed to transmit CONNECT message via plugin to %s\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1759
+#: src/transport/gnunet-service-transport_neighbours.c:1668
 msgid "# CONNECT_ACK messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2236
+#: src/transport/gnunet-service-transport_neighbours.c:2149
 msgid "# CONNECT messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2241
+#: src/transport/gnunet-service-transport_neighbours.c:2154
 #, c-format
 msgid "CONNECT request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2979
+#: src/transport/gnunet-service-transport_neighbours.c:2885
 msgid "# CONNECT_ACK messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2987
+#: src/transport/gnunet-service-transport_neighbours.c:2893
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3002
-#: src/transport/gnunet-service-transport_neighbours.c:3039
+#: src/transport/gnunet-service-transport_neighbours.c:2908
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3052
+#: src/transport/gnunet-service-transport_neighbours.c:2957
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3085
+#: src/transport/gnunet-service-transport_neighbours.c:2987
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3265
+#: src/transport/gnunet-service-transport_neighbours.c:3156
 msgid "# SESSION_ACK messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3284
+#: src/transport/gnunet-service-transport_neighbours.c:3175
 msgid "# unexpected SESSION_ACK messages"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3340
+#: src/transport/gnunet-service-transport_neighbours.c:3230
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3355
+#: src/transport/gnunet-service-transport_neighbours.c:3245
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3383
+#: src/transport/gnunet-service-transport_neighbours.c:3273
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3389
+#: src/transport/gnunet-service-transport_neighbours.c:3279
 msgid "# DISCONNECT messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3398
+#: src/transport/gnunet-service-transport_neighbours.c:3288
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3434
+#: src/transport/gnunet-service-transport_neighbours.c:3324
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3532
+#: src/transport/gnunet-service-transport_neighbours.c:3423
 msgid "# disconnected from peer upon explicit request"
 msgstr ""
 
@@ -6542,428 +6649,431 @@
 msgid "Did not load plugin `%s' due to missing functions\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:456
+#: src/transport/gnunet-service-transport_validation.c:452
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:526
+#: src/transport/gnunet-service-transport_validation.c:522
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:584
+#: src/transport/gnunet-service-transport_validation.c:580
 msgid "# PING without HELLO messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:681
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:969
+#: src/transport/gnunet-service-transport_validation.c:963
 msgid "# PING message for different peer received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1019
+#: src/transport/gnunet-service-transport_validation.c:1014
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1029
+#: src/transport/gnunet-service-transport_validation.c:1024
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1032
+#: src/transport/gnunet-service-transport_validation.c:1027
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1040
+#: src/transport/gnunet-service-transport_validation.c:1035
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1052
+#: src/transport/gnunet-service-transport_validation.c:1047
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1060
+#: src/transport/gnunet-service-transport_validation.c:1055
 #, c-format
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1114
+#: src/transport/gnunet-service-transport_validation.c:1109
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "发送消息失败。\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1163
+#: src/transport/gnunet-service-transport_validation.c:1158
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1172
+#: src/transport/gnunet-service-transport_validation.c:1167
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1312
+#: src/transport/gnunet-service-transport_validation.c:1308
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1327
+#: src/transport/gnunet-service-transport_validation.c:1323
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1448
+#: src/transport/gnunet-service-transport_validation.c:1442
 #, c-format
+msgid "Validation received new %s message for peer `%s' with size %u\n"
+msgstr ""
+
+#: src/transport/gnunet-service-transport_validation.c:1449
+#, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:258
+#: src/transport/gnunet-transport.c:285
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:265
+#: src/transport/gnunet-transport.c:293
 #, c-format
 msgid "Received %llu bytes/s (%llu bytes in %s)\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:296
+#: src/transport/gnunet-transport.c:331
 #, fuzzy, c-format
 msgid "Failed to connect to `%s'\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/gnunet-transport.c:309
+#: src/transport/gnunet-transport.c:344
 #, fuzzy, c-format
 msgid "Failed to resolve address for peer `%s'\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
 
-#: src/transport/gnunet-transport.c:318
+#: src/transport/gnunet-transport.c:354
 #, fuzzy
 msgid "Failed to list connections, timeout occured\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/gnunet-transport.c:423
+#: src/transport/gnunet-transport.c:453
 msgid "No transport plugins configured, peer will never communicate\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:436
+#: src/transport/gnunet-transport.c:467
 #, c-format
 msgid "No port configured for plugin `%s', cannot test it\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:506
+#: src/transport/gnunet-transport.c:530
 #, c-format
 msgid "Transmitting %u bytes to %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:529
+#: src/transport/gnunet-transport.c:551
 #, fuzzy, c-format
 msgid "Successfully connected to `%s'\n"
 msgstr "“%s”已连接到“%s”。\n"
 
-#: src/transport/gnunet-transport.c:552
+#: src/transport/gnunet-transport.c:575
 #, c-format
 msgid ""
 "Successfully connected to `%s', starting to send benchmark data in %u Kb "
 "blocks\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:587
+#: src/transport/gnunet-transport.c:608
 #, fuzzy, c-format
 msgid "Disconnected from peer `%s' while benchmarking\n"
 msgstr "“%s”已连接到“%s”。\n"
 
-#: src/transport/gnunet-transport.c:660
+#: src/transport/gnunet-transport.c:670
 #, c-format
 msgid "Received %u bytes from %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:685
-#, fuzzy, c-format
-msgid "Peer `%s': %s %s\n"
-msgstr "运行 %s失败:%s %d\n"
-
-#: src/transport/gnunet-transport.c:704
+#: src/transport/gnunet-transport.c:693
 #, c-format
-msgid "Peer `%s': %s <unable to resolve address>\n"
+msgid "Peer `%s': %s %s in state `%s' until %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:772
+#: src/transport/gnunet-transport.c:703
 #, fuzzy, c-format
-msgid "Peer `%s' disconnected\n"
-msgstr ""
-"\n"
-"按任意键继续\n"
+msgid "Peer `%s': %s %s\n"
+msgstr "运行 %s失败:%s %d\n"
 
-#: src/transport/gnunet-transport.c:802
+#: src/transport/gnunet-transport.c:916
 #, fuzzy
 msgid "Failed to send connect request to transport service\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/gnunet-transport.c:848
+#: src/transport/gnunet-transport.c:959
 #, c-format
 msgid ""
 "Multiple operations given. Please choose only one operation: %s, %s, %s, %s, "
 "%s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:855
+#: src/transport/gnunet-transport.c:967
 #, c-format
 msgid ""
 "No operation given. Please choose one operation: %s, %s, %s, %s, %s, %s\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:878 src/transport/gnunet-transport.c:910
-#: src/transport/gnunet-transport.c:932 src/transport/gnunet-transport.c:969
+#: src/transport/gnunet-transport.c:986 src/transport/gnunet-transport.c:1016
+#: src/transport/gnunet-transport.c:1039 src/transport/gnunet-transport.c:1070
 #, fuzzy
 msgid "Failed to connect to transport service\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/gnunet-transport.c:887 src/transport/gnunet-transport.c:917
+#: src/transport/gnunet-transport.c:995 src/transport/gnunet-transport.c:1025
 #, fuzzy
 msgid "Failed to send request to transport service\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/gnunet-transport.c:937
+#: src/transport/gnunet-transport.c:1044
 msgid "Starting to receive benchmark data\n"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1019
+#: src/transport/gnunet-transport.c:1116
+#, fuzzy
+msgid "print information for all peers (instead of only connected peers )"
+msgstr "无法获取有关用户“%s”的信息:%s\n"
+
+#: src/transport/gnunet-transport.c:1119
 msgid "measure how fast we are receiving data from all peers (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1022
+#: src/transport/gnunet-transport.c:1121
 #, fuzzy
 msgid "connect to a peer"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/gnunet-transport.c:1025
+#: src/transport/gnunet-transport.c:1124
 msgid "provide information about all current connections (once)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1031
+#: src/transport/gnunet-transport.c:1130
 msgid ""
 "provide information about all connects and disconnect events (continuously)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1034
+#: src/transport/gnunet-transport.c:1132
 msgid "do not resolve hostnames"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1037
+#: src/transport/gnunet-transport.c:1134
 msgid "peer identity"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1041
+#: src/transport/gnunet-transport.c:1136
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1044
+#: src/transport/gnunet-transport.c:1139
 msgid "test transport configuration (involves external server)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1055
+#: src/transport/gnunet-transport.c:1148
 #, fuzzy
 msgid "Direct access to transport service."
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/plugin_transport_bluetooth.c:616
+#: src/transport/plugin_transport_bluetooth.c:618
 msgid "# Bluetooth ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:635
+#: src/transport/plugin_transport_bluetooth.c:637
 msgid "# Bluetooth messages defragmented"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:681
-#: src/transport/plugin_transport_bluetooth.c:731
-#: src/transport/plugin_transport_bluetooth.c:1881
+#: src/transport/plugin_transport_bluetooth.c:683
+#: src/transport/plugin_transport_bluetooth.c:733
+#: src/transport/plugin_transport_bluetooth.c:1888
 msgid "# Bluetooth sessions allocated"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:806
+#: src/transport/plugin_transport_bluetooth.c:808
 msgid "# Bluetooth message fragments sent"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:830
+#: src/transport/plugin_transport_bluetooth.c:832
 msgid "# Bluetooth messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:938
-#: src/transport/plugin_transport_bluetooth.c:1023
-#: src/transport/plugin_transport_bluetooth.c:1883
+#: src/transport/plugin_transport_bluetooth.c:940
+#: src/transport/plugin_transport_bluetooth.c:1026
+#: src/transport/plugin_transport_bluetooth.c:1890
 msgid "# Bluetooth MAC endpoints allocated"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1250
+#: src/transport/plugin_transport_bluetooth.c:1254
 msgid "# HELLO messages received via Bluetooth"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1276
+#: src/transport/plugin_transport_bluetooth.c:1277
 msgid "# fragments received via Bluetooth"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1286
+#: src/transport/plugin_transport_bluetooth.c:1287
 msgid "# ACKs received via Bluetooth"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1343
+#: src/transport/plugin_transport_bluetooth.c:1347
 msgid "# Bluetooth DATA messages discarded due to CRC32 error"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1455
+#: src/transport/plugin_transport_bluetooth.c:1458
 msgid "# DATA messages received via Bluetooth"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1490
+#: src/transport/plugin_transport_bluetooth.c:1493
 msgid "# Bluetooth DATA messages processed"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1553
+#: src/transport/plugin_transport_bluetooth.c:1556
 msgid "# HELLO beacons sent via Bluetooth"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1666
+#: src/transport/plugin_transport_bluetooth.c:1669
 msgid "Bluetooth address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_bluetooth.c:1862
+#: src/transport/plugin_transport_bluetooth.c:1869
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run bluetooth transport\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1618
+#: src/transport/plugin_transport_http_client.c:1621
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1693
-#: src/transport/plugin_transport_http_server.c:3001
+#: src/transport/plugin_transport_http_client.c:1696
+#: src/transport/plugin_transport_http_server.c:3006
 #, fuzzy, c-format
 msgid "Shutting down plugin `%s'\n"
 msgstr "未知的命令“%s”。\n"
 
-#: src/transport/plugin_transport_http_client.c:1718
-#: src/transport/plugin_transport_http_server.c:3059
+#: src/transport/plugin_transport_http_client.c:1721
+#: src/transport/plugin_transport_http_server.c:3062
 #, c-format
 msgid "Shutdown for plugin `%s' complete\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_client.c:1746
-#: src/transport/plugin_transport_http_server.c:2901
+#: src/transport/plugin_transport_http_client.c:1749
+#: src/transport/plugin_transport_http_server.c:2906
 #, fuzzy, c-format
 msgid "Maximum number of connections is %u\n"
 msgstr "增加 TCP/IP 的最大连接数"
 
-#: src/transport/plugin_transport_http_server.c:1416
+#: src/transport/plugin_transport_http_server.c:1402
 #, c-format
 msgid ""
 "Access from connection %p (%u of %u) for `%s' `%s' url `%s' with upload data "
 "size %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1680
+#: src/transport/plugin_transport_http_server.c:1663
 #, c-format
 msgid "Accepting connection (%u of %u) from `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1688
+#: src/transport/plugin_transport_http_server.c:1671
 #, c-format
 msgid ""
 "Server reached maximum number connections (%u), rejecting new connection\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1974
+#: src/transport/plugin_transport_http_server.c:1957
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:1998
+#: src/transport/plugin_transport_http_server.c:1981
 #, c-format
 msgid "No usable TLS certificate found and creating one at `%s/%s' failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2405
+#: src/transport/plugin_transport_http_server.c:2404
 #, fuzzy
 msgid "Require valid port number for service in configuration!\n"
 msgstr "保存配置失败。"
 
-#: src/transport/plugin_transport_http_server.c:2437 src/util/service.c:696
+#: src/transport/plugin_transport_http_server.c:2436 src/util/service.c:696
 #, fuzzy, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/transport/plugin_transport_http_server.c:2454 src/util/service.c:713
+#: src/transport/plugin_transport_http_server.c:2453 src/util/service.c:713
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
 
-#: src/transport/plugin_transport_http_server.c:2565
+#: src/transport/plugin_transport_http_server.c:2564
 #, c-format
 msgid "Found %u addresses to report to NAT service\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2637
+#: src/transport/plugin_transport_http_server.c:2636
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2724
+#: src/transport/plugin_transport_http_server.c:2729
 #, c-format
 msgid "IPv4 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2738
+#: src/transport/plugin_transport_http_server.c:2743
 #, c-format
 msgid "IPv6 support is %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2745
+#: src/transport/plugin_transport_http_server.c:2750
 msgid "Neither IPv4 nor IPv6 are enabled! Fix in configuration\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2756
+#: src/transport/plugin_transport_http_server.c:2761
 #, fuzzy
 msgid "Port is required! Fix in configuration\n"
 msgstr ""
 "\n"
 "结束配置。\n"
 
-#: src/transport/plugin_transport_http_server.c:2763
+#: src/transport/plugin_transport_http_server.c:2768
 #, c-format
 msgid "Using port %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2778
+#: src/transport/plugin_transport_http_server.c:2783
 #, c-format
 msgid "Specific IPv4 address `%s' in configuration file is invalid!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2788
+#: src/transport/plugin_transport_http_server.c:2793
 #, fuzzy, c-format
 msgid "Binding to IPv4 address %s\n"
 msgstr "无效的进程优先级“%s”\n"
 
-#: src/transport/plugin_transport_http_server.c:2809
+#: src/transport/plugin_transport_http_server.c:2814
 #, c-format
 msgid "Specific IPv6 address `%s' in configuration file is invalid!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http_server.c:2819
+#: src/transport/plugin_transport_http_server.c:2824
 #, fuzzy, c-format
 msgid "Binding to IPv6 address %s\n"
 msgstr "无效的进程优先级“%s”\n"
 
-#: src/transport/plugin_transport_http_server.c:2871
+#: src/transport/plugin_transport_http_server.c:2876
 #, fuzzy, c-format
 msgid "Using external hostname `%s'\n"
 msgstr "卸载 GNUnet 服务"
 
-#: src/transport/plugin_transport_http_server.c:2887
+#: src/transport/plugin_transport_http_server.c:2892
 #, c-format
 msgid "Notifying transport only about hostname `%s'\n"
 msgstr ""
@@ -7010,214 +7120,213 @@
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:576
+#: src/transport/plugin_transport_tcp.c:559
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:799
-#: src/transport/plugin_transport_tcp.c:980
-#: src/transport/plugin_transport_tcp.c:2120
-#: src/transport/plugin_transport_tcp.c:2723
+#: src/transport/plugin_transport_tcp.c:766
+#: src/transport/plugin_transport_tcp.c:930
+#: src/transport/plugin_transport_tcp.c:1973
+#: src/transport/plugin_transport_tcp.c:2527
 msgid "# TCP sessions active"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:836
-#: src/transport/plugin_transport_tcp.c:973
-#: src/transport/plugin_transport_tcp.c:1062
-#: src/transport/plugin_transport_tcp.c:1112
-#: src/transport/plugin_transport_tcp.c:1291
-#: src/transport/plugin_transport_tcp.c:1310
+#: src/transport/plugin_transport_tcp.c:797
+#: src/transport/plugin_transport_tcp.c:923
+#: src/transport/plugin_transport_tcp.c:1009
+#: src/transport/plugin_transport_tcp.c:1056
+#: src/transport/plugin_transport_tcp.c:1219
+#: src/transport/plugin_transport_tcp.c:1237
 msgid "# bytes currently in TCP buffers"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:840
+#: src/transport/plugin_transport_tcp.c:800
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1066
+#: src/transport/plugin_transport_tcp.c:1012
 msgid "# bytes discarded by TCP (timeout)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1115
+#: src/transport/plugin_transport_tcp.c:1059
 msgid "# bytes transmitted via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1264
+#: src/transport/plugin_transport_tcp.c:1193
 #, c-format
 msgid "Trying to send with invalid session %p\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1521
-#: src/transport/plugin_transport_udp.c:1488
+#: src/transport/plugin_transport_tcp.c:1427
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1645
+#: src/transport/plugin_transport_tcp.c:1532
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2170
+#: src/transport/plugin_transport_tcp.c:2021
 msgid "# TCP WELCOME messages received"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2355
+#: src/transport/plugin_transport_tcp.c:2189
 msgid "# bytes received via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2433
+#: src/transport/plugin_transport_tcp.c:2253
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2602 src/util/service.c:589
+#: src/transport/plugin_transport_tcp.c:2407 src/util/service.c:589
 #: src/util/service.c:595
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2616
+#: src/transport/plugin_transport_tcp.c:2421
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/plugin_transport_tcp.c:2712
+#: src/transport/plugin_transport_tcp.c:2516
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
+#: src/transport/plugin_transport_tcp.c:2520
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2718
+#: src/transport/plugin_transport_tcp.c:2523
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:173
+#: src/transport/plugin_transport_udp_broadcasting.c:167
 msgid "# IPv6 multicast HELLO beacons received via udp"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:222
+#: src/transport/plugin_transport_udp_broadcasting.c:210
 msgid "# IPv4 broadcast HELLO beacons received via udp"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:606
+#: src/transport/plugin_transport_udp_broadcasting.c:594
 msgid ""
 "Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:629
+#: src/transport/plugin_transport_udp_broadcasting.c:617
 #, c-format
 msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1599
+#: src/transport/plugin_transport_udp.c:1406
 #, c-format
 msgid ""
 "Trying to create session for address of unexpected length %u (should be %u "
 "or %u)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2680
+#: src/transport/plugin_transport_udp.c:2474
 #, c-format
 msgid ""
 "UDP could not transmit message to `%s': Network seems down, please check "
 "your network configuration\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2694
+#: src/transport/plugin_transport_udp.c:2488
 msgid ""
 "UDP could not transmit IPv6 message! Please check your network configuration "
 "and disable IPv6 if your connection does not have a global IPv6 address\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:2993
+#: src/transport/plugin_transport_udp.c:2817
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/transport/plugin_transport_udp.c:3091
+#: src/transport/plugin_transport_udp.c:2912
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:3134
+#: src/transport/plugin_transport_udp.c:2951
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "无效的进程优先级“%s”\n"
 
-#: src/transport/plugin_transport_udp.c:3200
+#: src/transport/plugin_transport_udp.c:3021
 #, fuzzy
 msgid "Failed to create network sockets, plugin failed\n"
 msgstr "发送消息失败。\n"
 
-#: src/transport/plugin_transport_unix.c:1657
+#: src/transport/plugin_transport_unix.c:1624
 #, fuzzy
 msgid "Failed to open UNIX listen socket\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/transport/plugin_transport_wlan.c:623
+#: src/transport/plugin_transport_wlan.c:625
 msgid "# WLAN ACKs sent"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:642
+#: src/transport/plugin_transport_wlan.c:644
 msgid "# WLAN messages defragmented"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:691
-#: src/transport/plugin_transport_wlan.c:778
-#: src/transport/plugin_transport_wlan.c:1937
+#: src/transport/plugin_transport_wlan.c:693
+#: src/transport/plugin_transport_wlan.c:780
+#: src/transport/plugin_transport_wlan.c:1952
 msgid "# WLAN sessions allocated"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:883
+#: src/transport/plugin_transport_wlan.c:886
 msgid "# WLAN message fragments sent"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:907
+#: src/transport/plugin_transport_wlan.c:910
 msgid "# WLAN messages pending (with fragmentation)"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1015
-#: src/transport/plugin_transport_wlan.c:1101
-#: src/transport/plugin_transport_wlan.c:1939
+#: src/transport/plugin_transport_wlan.c:1018
+#: src/transport/plugin_transport_wlan.c:1105
+#: src/transport/plugin_transport_wlan.c:1954
 msgid "# WLAN MAC endpoints allocated"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1297
+#: src/transport/plugin_transport_wlan.c:1301
 msgid "# HELLO messages received via WLAN"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1323
+#: src/transport/plugin_transport_wlan.c:1325
 msgid "# fragments received via WLAN"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1333
+#: src/transport/plugin_transport_wlan.c:1335
 msgid "# ACKs received via WLAN"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1390
+#: src/transport/plugin_transport_wlan.c:1395
 msgid "# WLAN DATA messages discarded due to CRC32 error"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1511
+#: src/transport/plugin_transport_wlan.c:1517
 msgid "# DATA messages received via WLAN"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1546
+#: src/transport/plugin_transport_wlan.c:1552
 msgid "# WLAN DATA messages processed"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1609
+#: src/transport/plugin_transport_wlan.c:1620
 msgid "# HELLO beacons sent via WLAN"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1722
+#: src/transport/plugin_transport_wlan.c:1733
 msgid "WLAN address with invalid size encountered\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1918
+#: src/transport/plugin_transport_wlan.c:1933
 #, c-format
 msgid "Helper binary `%s' not SUID, cannot run WLAN transport\n"
 msgstr ""
@@ -7676,6 +7785,27 @@
 msgid "Use build-in GNUnet stub resolver"
 msgstr ""
 
+#: src/util/gnunet-scrypt.c:279
+msgid "number of bits to require for the proof of work"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:282
+msgid "file with private key, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:285
+msgid "file with proof of work, otherwise default is used"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:288
+msgid "time to wait between calculations"
+msgstr ""
+
+#: src/util/gnunet-scrypt.c:299
+#, fuzzy
+msgid "Manipulate GNUnet proof of work files"
+msgstr "更改配置文件中的一个值"
+
 #: src/util/gnunet-service-resolver.c:283
 #, c-format
 msgid "Could not resolve `%s' (%s): %s\n"
@@ -7947,114 +8077,114 @@
 msgid "b"
 msgstr "b"
 
-#: src/util/strings.c:444
+#: src/util/strings.c:433
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
 msgstr ""
 
-#: src/util/strings.c:572
+#: src/util/strings.c:561
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr "扩展“$HOME”失败:没有设置环境变量“HOME”"
 
-#: src/util/strings.c:669
+#: src/util/strings.c:658
 msgid "µs"
 msgstr ""
 
-#: src/util/strings.c:673
+#: src/util/strings.c:662
 msgid "forever"
 msgstr ""
 
-#: src/util/strings.c:675
+#: src/util/strings.c:664
 msgid "0 ms"
 msgstr ""
 
-#: src/util/strings.c:681
+#: src/util/strings.c:670
 msgid "ms"
 msgstr "毫秒"
 
-#: src/util/strings.c:687
+#: src/util/strings.c:676
 msgid "s"
 msgstr "秒"
 
-#: src/util/strings.c:693
+#: src/util/strings.c:682
 msgid "m"
 msgstr "分"
 
-#: src/util/strings.c:699
+#: src/util/strings.c:688
 msgid "h"
 msgstr "时"
 
-#: src/util/strings.c:706
+#: src/util/strings.c:695
 #, fuzzy
 msgid "day"
 msgstr " 天"
 
-#: src/util/strings.c:708
+#: src/util/strings.c:697
 #, fuzzy
 msgid "days"
 msgstr " 天"
 
-#: src/util/strings.c:737
+#: src/util/strings.c:726
 msgid "end of time"
 msgstr ""
 
-#: src/util/strings.c:1170
+#: src/util/strings.c:1159
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
 
-#: src/util/strings.c:1178
+#: src/util/strings.c:1167
 msgid "IPv6 address did contain ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1184
+#: src/util/strings.c:1173
 msgid "IPv6 address did contain ']' before ':' to separate port number\n"
 msgstr ""
 
-#: src/util/strings.c:1191
+#: src/util/strings.c:1180
 msgid "IPv6 address did contain a valid port number after the last ':'\n"
 msgstr ""
 
-#: src/util/strings.c:1200
+#: src/util/strings.c:1189
 #, fuzzy, c-format
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "无效的进程优先级“%s”\n"
 
-#: src/util/strings.c:1406 src/util/strings.c:1422
+#: src/util/strings.c:1395 src/util/strings.c:1411
 msgid "Port not in range\n"
 msgstr ""
 
-#: src/util/strings.c:1431
+#: src/util/strings.c:1420
 #, fuzzy, c-format
 msgid "Malformed port policy `%s'\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/util/strings.c:1514 src/util/strings.c:1545 src/util/strings.c:1593
-#: src/util/strings.c:1614
+#: src/util/strings.c:1503 src/util/strings.c:1534 src/util/strings.c:1582
+#: src/util/strings.c:1603
 #, c-format
 msgid "Invalid format for IP: `%s'\n"
 msgstr "IP 格式无效:“%s”\n"
 
-#: src/util/strings.c:1571
+#: src/util/strings.c:1560
 #, c-format
 msgid "Invalid network notation ('/%d' is not legal in IPv4 CIDR)."
 msgstr "网络表示法无效(“/%d” 在 IPv4 CIDR 中是非法的)。"
 
-#: src/util/strings.c:1623
+#: src/util/strings.c:1612
 #, fuzzy, c-format
 msgid "Invalid format: `%s'\n"
 msgstr "IP 格式无效:“%s”\n"
 
-#: src/util/strings.c:1675
+#: src/util/strings.c:1664
 #, c-format
 msgid "Invalid network notation (does not end with ';': `%s')\n"
 msgstr "无效的网络表示法(没有以“;”结尾:“%s”)\n"
 
-#: src/util/strings.c:1725
+#: src/util/strings.c:1714
 #, c-format
 msgid "Wrong format `%s' for netmask\n"
 msgstr "网络掩码的格式“%s”错误\n"
 
-#: src/util/strings.c:1756
+#: src/util/strings.c:1745
 #, c-format
 msgid "Wrong format `%s' for network\n"
 msgstr "网络的格式“%s”错误\n"
@@ -8251,6 +8381,24 @@
 msgstr ""
 
 #, fuzzy
+#~ msgid "provide information about a particular channel"
+#~ msgstr "无法获取有关用户“%s”的信息:%s\n"
+
+#, fuzzy
+#~ msgid "provide information about a particular connection"
+#~ msgstr "无法获取有关用户“%s”的信息:%s\n"
+
+#, fuzzy
+#~ msgid "Could not find option `%s:%s' in configuration.\n"
+#~ msgstr "找不到主机“%s”的 IP:%s\n"
+
+#, fuzzy
+#~ msgid "Peer `%s' disconnected\n"
+#~ msgstr ""
+#~ "\n"
+#~ "按任意键继续\n"
+
+#, fuzzy
 #~ msgid "Found %u transport plugins: `%s'\n"
 #~ msgstr "解析配置文件“%s”失败\n"
 
@@ -8271,10 +8419,6 @@
 #~ msgstr "找不到接口“%s”的一个 IP 地址。\n"
 
 #, fuzzy
-#~ msgid "Print information about mesh tunnels and peers."
-#~ msgstr "无法获取有关用户“%s”的信息:%s\n"
-
-#, fuzzy
 #~ msgid ""
 #~ "%s service is lacking key configuration settings (%s). Using default "
 #~ "(%u).\n"
@@ -8597,10 +8741,6 @@
 #~ msgstr "初始化“%s”服务失败。\n"
 
 #, fuzzy
-#~ msgid "Failed to start `gnunet-peerinfo' process.\n"
-#~ msgstr "初始化“%s”服务失败。\n"
-
-#, fuzzy
 #~ msgid "Failed to start `ssh' process.\n"
 #~ msgstr "初始化“%s”服务失败。\n"
 

Modified: gnunet/src/include/gnunet_crypto_lib.h
===================================================================
--- gnunet/src/include/gnunet_crypto_lib.h      2014-01-20 17:17:59 UTC (rev 
31955)
+++ gnunet/src/include/gnunet_crypto_lib.h      2014-01-20 19:08:47 UTC (rev 
31956)
@@ -55,6 +55,7 @@
 
 #include "gnunet_common.h"
 #include "gnunet_scheduler_lib.h"
+#include <gcrypt.h>
 
 
 /**
@@ -1232,6 +1233,35 @@
                                        struct GNUNET_CRYPTO_EcdsaPublicKey 
*result);
 
 
+/**
+ * Output the given MPI value to the given buffer in network
+ * byte order.  The MPI @a val may not be negative.
+ *
+ * @param buf where to output to
+ * @param size number of bytes in @a buf
+ * @param val value to write to @a buf
+ */
+void
+GNUNET_CRYPTO_mpi_print_unsigned (void *buf,
+                                  size_t size,
+                                  gcry_mpi_t val);
+
+
+/**
+ * Convert data buffer into MPI value.
+ * The buffer is interpreted as network
+ * byte order, unsigned integer.
+ *
+ * @param result where to store MPI value (allocated)
+ * @param data raw data (GCRYMPI_FMT_USG)
+ * @param size number of bytes in @a data
+ */
+void
+GNUNET_CRYPTO_mpi_scan_unsigned (gcry_mpi_t *result,
+                                 const void *data,
+                                 size_t size);
+
+
 #if 0                           /* keep Emacsens' auto-indent happy */
 {
 #endif

Modified: gnunet/src/include/gnunet_secretsharing_service.h
===================================================================
--- gnunet/src/include/gnunet_secretsharing_service.h   2014-01-20 17:17:59 UTC 
(rev 31955)
+++ gnunet/src/include/gnunet_secretsharing_service.h   2014-01-20 19:08:47 UTC 
(rev 31956)
@@ -43,16 +43,56 @@
 
 
 /**
- * Number of bits for secretsharing keys.
+ * Number of bits for secretsharing elements.
  * Must be smaller than the Pallier key size used internally
  * by the secretsharing service.
  * When changing this value, other internal parameters must also
  * be adjusted.
  */
-#define GNUNET_SECRETSHARING_KEY_BITS 1024
+#define GNUNET_SECRETSHARING_ELGAMAL_BITS 1024
 
 
 /**
+ * The q-parameter for ElGamal encryption, a 1024-bit safe prime.
+ */
+#define GNUNET_SECRETSHARING_ELGAMAL_P_HEX  \
+      "0x08a347d3d69e8b2dd7d1b12a08dfbccbebf4ca" \
+      "6f4269a0814e158a34312964d946b3ef22882317" \
+      "2bcf30fc08f772774cb404f9bc002a6f66b09a79" \
+      "d810d67c4f8cb3bedc6060e3c8ef874b1b64df71" \
+      "6c7d2b002da880e269438d5a776e6b5f253c8df5" \
+      "6a16b1c7ce58def07c03db48238aadfc52a354a2" \
+      "7ed285b0c1675cad3f3"
+
+/**
+ * The q-parameter for ElGamal encryption,
+ * a 1023-bit Sophie Germain prime, q = (p-1)/2
+ */
+#define GNUNET_SECRETSHARING_ELGAMAL_Q_HEX  \
+      "0x0451a3e9eb4f4596ebe8d895046fde65f5fa65" \
+      "37a134d040a70ac51a1894b26ca359f79144118b" \
+      "95e7987e047bb93ba65a027cde001537b3584d3c" \
+      "ec086b3e27c659df6e303071e477c3a58db26fb8" \
+      "b63e958016d4407134a1c6ad3bb735af929e46fa" \
+      "b50b58e3e72c6f783e01eda411c556fe2951aa51" \
+      "3f6942d860b3ae569f9"
+
+/**
+ * The g-parameter for ElGamal encryption,
+ * a generator of the unique size q subgroup of Z_p^*
+ */
+#define GNUNET_SECRETSHARING_ELGAMAL_G_HEX  \
+      "0x05c00c36d2e822950087ef09d8252994adc4e4" \
+      "8fe3ec70269f035b46063aff0c99b633fd64df43" \
+      "02442e1914c829a41505a275438871f365e91c12" \
+      "3d5303ef9e90f4b8cb89bf86cc9b513e74a72634" \
+      "9cfd9f953674fab5d511e1c078fc72d72b34086f" \
+      "c82b4b951989eb85325cb203ff98df76bc366bba" \
+      "1d7024c3650f60d0da"
+
+
+
+/**
  * Session that will eventually establish a shared secred between
  * the involved peers and allow encryption and cooperative decryption.
  */
@@ -77,7 +117,7 @@
  */
 struct GNUNET_SECRETSHARING_PublicKey
 {
-  uint32_t bits[GNUNET_SECRETSHARING_KEY_BITS / 8 / sizeof (uint32_t)];
+  uint32_t bits[GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 / sizeof (uint32_t)];
 };
 
 
@@ -86,21 +126,23 @@
  */
 struct GNUNET_SECRETSHARING_Ciphertext
 {
-  uint32_t c1_bits[GNUNET_SECRETSHARING_KEY_BITS / 8 / sizeof (uint32_t)];
-  uint32_t c2_bits[GNUNET_SECRETSHARING_KEY_BITS / 8 / sizeof (uint32_t)];
+  uint32_t c1_bits[GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 / sizeof (uint32_t)];
+  uint32_t c2_bits[GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 / sizeof (uint32_t)];
 };
 
 
 /**
  * Plain, unencrypted message that can be encrypted with
  * a group public key.
+ * Note that we are not operating in GF(2^n), thus not every
+ * bit pattern is a valid plain text.
  */
-struct GNUNET_SECRETSHARING_Message
+struct GNUNET_SECRETSHARING_Plaintext
 {
   /**
    * Value of the message.
    */
-  uint32_t bits[GNUNET_SECRETSHARING_KEY_BITS / 8 / sizeof (uint32_t)];
+  uint32_t bits[GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 / sizeof (uint32_t)];
 };
 
 
@@ -113,6 +155,8 @@
  *
  * If the secret sharing failed, num_ready_peers is 0 and my_share and 
public_key is NULL.
  *
+ * After this callback has been called, the secretsharing session will be 
invalid.
+ *
  * @param cls closure
  * @param my_share the share of this peer
  * @param public_key public key of the session
@@ -121,10 +165,10 @@
  *                    the shared secret
  */
 typedef void (*GNUNET_SECRETSHARING_SecretReadyCallback) (void *cls,
-                                                          const struct 
GNUNET_SECRETSHARING_Share *my_share,
-                                                          const struct 
GNUNET_SECRETSHARING_PublicKey *public_key,
+                                                          struct 
GNUNET_SECRETSHARING_Share *my_share,
+                                                          struct 
GNUNET_SECRETSHARING_PublicKey *public_key,
                                                           unsigned int 
num_ready_peers,
-                                                          const struct 
GNUNET_PeerIdentity *ready_peers);
+                                                          struct 
GNUNET_PeerIdentity *ready_peers);
 
 
 /**
@@ -135,8 +179,7 @@
  * @param data_size number of bytes in @a data
  */
 typedef void (*GNUNET_SECRETSHARING_DecryptCallback) (void *cls,
-                                                      const void *data,
-                                                      size_t data_size);
+                                                      const struct 
GNUNET_SECRETSHARING_Plaintext *plaintext);
 
 
 /**
@@ -165,21 +208,13 @@
 
 
 /**
- * Destroy a secret share.
- *
- * @param share secret share to destroy
- */
-void
-GNUNET_SECRETSHARING_share_destroy (const struct GNUNET_SECRETSHARING_Share 
*share);
-
-
-/**
  * Destroy a secret sharing session.
+ * The secret ready callback will not be called.
  *
  * @param session session to destroy
  */
 void
-GNUNET_SECRETSHARING_destroy_session (struct GNUNET_SECRETSHARING_Session 
*session);
+GNUNET_SECRETSHARING_session_destroy (struct GNUNET_SECRETSHARING_Session 
*session);
 
 
 /**
@@ -196,9 +231,8 @@
  * @return #GNUNET_YES on succes, #GNUNET_SYSERR if the message is invalid 
(invalid range)
  */
 int
-GNUNET_SECRETSHARING_encrypt (struct GNUNET_SECRETSHARING_PublicKey 
*public_key,
-                              const void *message,
-                              size_t message_size,
+GNUNET_SECRETSHARING_encrypt (const struct GNUNET_SECRETSHARING_PublicKey 
*public_key,
+                              const struct GNUNET_SECRETSHARING_Plaintext 
*plaintext,
                               struct GNUNET_SECRETSHARING_Ciphertext 
*result_ciphertext);
 
 
@@ -218,9 +252,9 @@
  * @return handle to cancel the operation
  */
 struct GNUNET_SECRETSHARING_DecryptionHandle *
-GNUNET_SECRETSHARING_decrypt (struct GNUNET_CONFIGURATION_Handle *cfg,
+GNUNET_SECRETSHARING_decrypt (const struct GNUNET_CONFIGURATION_Handle *cfg,
                               struct GNUNET_SECRETSHARING_Share *share,
-                              struct GNUNET_SECRETSHARING_Ciphertext 
*ciphertext,
+                              const struct GNUNET_SECRETSHARING_Ciphertext 
*ciphertext,
                               struct GNUNET_TIME_Absolute deadline,
                               GNUNET_SECRETSHARING_DecryptCallback decrypt_cb,
                               void *decrypt_cb_cls);
@@ -267,7 +301,21 @@
                                   void *buf, size_t buflen, size_t *writelen);
 
 
+void
+GNUNET_SECRETSHARING_share_destroy (struct GNUNET_SECRETSHARING_Share *share);
 
+
+int
+GNUNET_SECRETSHARING_plaintext_generate (struct GNUNET_SECRETSHARING_Plaintext 
*plaintext,
+                                         gcry_mpi_t exponent);
+
+int
+GNUNET_SECRETSHARING_plaintext_generate_i (struct 
GNUNET_SECRETSHARING_Plaintext *plaintext,
+                                           int64_t exponent);
+
+
+
+
 #if 0                           /* keep Emacsens' auto-indent happy */
 {
 #endif

Modified: gnunet/src/secretsharing/gnunet-secretsharing-profiler.c
===================================================================
--- gnunet/src/secretsharing/gnunet-secretsharing-profiler.c    2014-01-20 
17:17:59 UTC (rev 31955)
+++ gnunet/src/secretsharing/gnunet-secretsharing-profiler.c    2014-01-20 
19:08:47 UTC (rev 31956)
@@ -28,29 +28,68 @@
 #include "gnunet_secretsharing_service.h"
 #include "gnunet_testbed_service.h"
 
+/**
+ * How many peers should participate in the key generation?
+ */
 static unsigned int num_peers = 3;
 
+/**
+ * What should the threshold for then key be?
+ */
 static unsigned int threshold = 2;
 
+/**
+ * Should we try to decrypt a value after the key generation?
+ */
+static unsigned int decrypt = GNUNET_NO;
+
+/**
+ * When would we like to see the operation finished?
+ */
 static struct GNUNET_TIME_Relative timeout;
 
+/**
+ * Handles for secretsharing sessions.
+ */
 static struct GNUNET_SECRETSHARING_Session **session_handles;
 
+static struct GNUNET_SECRETSHARING_DecryptionHandle **decrypt_handles;
+
+/**
+ * Shares we got from the distributed key generation.
+ */
+static struct GNUNET_SECRETSHARING_Share **shares;
+
+static struct GNUNET_SECRETSHARING_PublicKey common_pubkey;
+
+/**
+ * ???
+ */
 static struct GNUNET_TESTBED_Operation **testbed_operations;
 
-static unsigned int num_connected_handles;
+static unsigned int num_connected_sessions;
 
+static unsigned int num_connected_decrypt;
+
 static struct GNUNET_TESTBED_Peer **peers;
 
 static struct GNUNET_PeerIdentity *peer_ids;
 
 static unsigned int num_retrieved_peer_ids;
 
+static unsigned int num_generated;
+
+static unsigned int num_decrypted;
+
 static struct GNUNET_HashCode session_id;
 
 static int verbose;
 
+struct GNUNET_SECRETSHARING_Plaintext reference_plaintext;
 
+struct GNUNET_SECRETSHARING_Ciphertext ciphertext;
+
+
 /**
  * Signature of the event handler function called by the
  * respective event controller.
@@ -76,10 +115,10 @@
  *          operation has executed successfully.
  */
 static void
-connect_complete (void *cls,
-                  struct GNUNET_TESTBED_Operation *op,
-                  void *ca_result,
-                  const char *emsg)
+session_connect_complete (void *cls,
+                          struct GNUNET_TESTBED_Operation *op,
+                          void *ca_result,
+                          const char *emsg)
 {
 
   if (NULL != emsg)
@@ -90,35 +129,201 @@
     GNUNET_assert (0);
   }
 
-  num_connected_handles++;
+  num_connected_sessions++;
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "connect complete\n");
+              "dkg: session connect complete\n");
 
-  if (num_connected_handles == num_peers)
+  if (num_connected_sessions == num_peers)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                "all peers connected\n");
+                "dkg: all peers connected\n");
   }
 }
 
 
+/**
+ * Callback to be called when a service connect operation is completed
+ *
+ * @param cls the callback closure from functions generating an operation
+ * @param op the operation that has been finished
+ * @param ca_result the service handle returned from 
GNUNET_TESTBED_ConnectAdapter()
+ * @param emsg error message in case the operation has failed; will be NULL if
+ *          operation has executed successfully.
+ */
 static void
+decrypt_connect_complete (void *cls,
+                          struct GNUNET_TESTBED_Operation *op,
+                          void *ca_result,
+                          const char *emsg)
+{
+
+  if (NULL != emsg)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "testbed connect emsg: %s\n",
+                emsg);
+    GNUNET_assert (0);
+  }
+
+  num_connected_decrypt++;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "decrypt: session connect complete\n");
+
+  if (num_connected_decrypt == num_peers)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                "decrypt: all peers connected\n");
+  }
+}
+
+
+/**
+ * Called when a decryption has succeeded.
+ *
+ * @param cls Plaintext
+ * @param plaintext Plaintext
+ */
+static void decrypt_cb (void *cls,
+                        const struct GNUNET_SECRETSHARING_Plaintext *plaintext)
+{
+  struct GNUNET_SECRETSHARING_DecryptionHandle **dhp = cls;
+  unsigned int n = dhp - decrypt_handles;
+  num_decrypted++;
+
+  *dhp = NULL;
+
+  if (NULL == plaintext)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "decrypt failed for peer %u\n", n);
+    return;
+  }
+  else if (0 == memcmp (&reference_plaintext, plaintext, sizeof (struct 
GNUNET_SECRETSHARING_Plaintext)))
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "decrypt got correct result for peer 
%u\n", n);
+  else
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "decrypt got wrong result for peer 
%u\n", n);
+
+  if (num_decrypted == num_peers)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "every peer decrypted\n");
+    GNUNET_SCHEDULER_shutdown ();
+  }
+
+  *dhp = NULL;
+}
+
+
+
+/**
+ * Adapter function called to establish a connection to
+ * a service.
+ *
+ * @param cls closure
+ * @param cfg configuration of the peer to connect to; will be available until
+ *          GNUNET_TESTBED_operation_done() is called on the operation returned
+ *          from GNUNET_TESTBED_service_connect()
+ * @return service handle to return in 'op_result', NULL on error
+ */
+static void *
+decrypt_connect_adapter (void *cls,
+                 const struct GNUNET_CONFIGURATION_Handle *cfg)
+{
+  struct GNUNET_SECRETSHARING_DecryptionHandle **hp = cls;
+  unsigned int n = hp - decrypt_handles;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "decrypt connect adapter, %d peers\n",
+              num_peers);
+  *hp = GNUNET_SECRETSHARING_decrypt (cfg, shares[n], &ciphertext,
+                                      GNUNET_TIME_relative_to_absolute 
(GNUNET_TIME_UNIT_MINUTES),
+                                      decrypt_cb,
+                                      hp);
+
+  return *hp;
+}
+
+
+/**
+ * Adapter function called to destroy a connection to
+ * a service.
+ *
+ * @param cls closure
+ * @param op_result service handle returned from the connect adapter
+ */
+static void
+decrypt_disconnect_adapter(void *cls, void *op_result)
+{
+  struct GNUNET_SECRETSHARING_DecryptionHandle **dh = cls;
+  if (NULL != *dh)
+  {
+    GNUNET_SECRETSHARING_decrypt_cancel (*dh);
+    *dh = NULL;
+  }
+}
+
+
+static void
 secret_ready_cb (void *cls,
-                 const struct GNUNET_SECRETSHARING_Share *my_share,
-                 const struct GNUNET_SECRETSHARING_PublicKey *public_key,
+                 struct GNUNET_SECRETSHARING_Share *my_share,
+                 struct GNUNET_SECRETSHARING_PublicKey *public_key,
                  unsigned int num_ready_peers,
-                 const struct GNUNET_PeerIdentity *ready_peers)
+                 struct GNUNET_PeerIdentity *ready_peers)
 {
   struct GNUNET_SECRETSHARING_Session **sp = cls;
   unsigned int n = sp - session_handles;
-  if (NULL == my_share || NULL == public_key)
+  char pubkey_str[1024];
+  char *ret;
+
+  num_generated++;
+  *sp = NULL;
+  shares[n] = my_share;
+  if (NULL == my_share)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO, "key generation failed for peer 
#%u\n", n);
-    return;
   }
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "secret ready for peer #%u\n", n);
-  // FIXME: end profiler or try decryption if all secrets are ready
+  else
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "secret ready for peer #%u\n", n);
+    /* we're the first to get the key -> store it */
+    if (num_generated == 1)
+    {
+      common_pubkey = *public_key;
+    }
+    else if (0 != memcmp (public_key, &common_pubkey, sizeof (struct 
GNUNET_SECRETSHARING_PublicKey)))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "generated public keys do not 
match\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+  }
+
+  ret = GNUNET_STRINGS_data_to_string (public_key, sizeof *public_key, 
pubkey_str, 1024);
+  GNUNET_assert (NULL != ret);
+  *ret = '\0';
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "key generation successful for peer #%u, 
pubkey %s\n", n,
+              pubkey_str);
+
+  // FIXME: destroy testbed operation
+
+  if (num_generated == num_peers)
+  {
+    int i;
+    if (GNUNET_NO == decrypt)
+    {
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    // compute g^42
+    GNUNET_SECRETSHARING_plaintext_generate_i (&reference_plaintext, 42);
+    GNUNET_SECRETSHARING_encrypt (&common_pubkey, &reference_plaintext, 
&ciphertext);
+
+    // FIXME: store the ops somewhere!
+    for (i = 0; i < num_peers; i++)
+      GNUNET_TESTBED_service_connect (NULL, peers[i], "secretsharing", 
&decrypt_connect_complete, NULL,
+                                      &decrypt_connect_adapter, 
&decrypt_disconnect_adapter, &decrypt_handles[i]);
+  }
 }
 
 
@@ -133,8 +338,8 @@
  * @return service handle to return in 'op_result', NULL on error
  */
 static void *
-connect_adapter (void *cls,
-                 const struct GNUNET_CONFIGURATION_Handle *cfg)
+session_connect_adapter (void *cls,
+                         const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   struct GNUNET_SECRETSHARING_Session **sp = cls;
 
@@ -152,6 +357,7 @@
 }
 
 
+
 /**
  * Adapter function called to destroy a connection to
  * a service.
@@ -160,9 +366,14 @@
  * @param op_result service handle returned from the connect adapter
  */
 static void
-disconnect_adapter(void *cls, void *op_result)
+session_disconnect_adapter (void *cls, void *op_result)
 {
-  /* FIXME: what to do here? */
+  struct GNUNET_SECRETSHARING_Session **sp = cls;
+  if (NULL != *sp)
+  {
+    GNUNET_SECRETSHARING_session_destroy (*sp);
+    *sp = NULL;
+  }
 }
 
 
@@ -195,8 +406,8 @@
     if (num_retrieved_peer_ids == num_peers)
       for (i = 0; i < num_peers; i++)
         testbed_operations[i] =
-            GNUNET_TESTBED_service_connect (NULL, peers[i], "secretsharing", 
connect_complete, NULL,
-                                            connect_adapter, 
disconnect_adapter, &session_handles[i]);
+            GNUNET_TESTBED_service_connect (NULL, peers[i], "secretsharing", 
session_connect_complete, NULL,
+                                            session_connect_adapter, 
session_disconnect_adapter, &session_handles[i]);
   }
   else
   {
@@ -238,9 +449,12 @@
 
   peer_ids = GNUNET_malloc (num_peers * sizeof (struct GNUNET_PeerIdentity));
 
-  session_handles = GNUNET_malloc (num_peers * sizeof (struct 
GNUNET_SECRETSHARING_Session *));
-  testbed_operations = GNUNET_malloc (num_peers * sizeof (struct 
GNUNET_TESTBED_Operation *));
+  session_handles = GNUNET_new_array (num_peers, struct 
GNUNET_SECRETSHARING_Session *);
+  decrypt_handles = GNUNET_new_array (num_peers, struct 
GNUNET_SECRETSHARING_DecryptionHandle *);
+  testbed_operations = GNUNET_new_array (num_peers, struct 
GNUNET_TESTBED_Operation *);
+  shares = GNUNET_new_array (num_peers, struct GNUNET_SECRETSHARING_Share *);
 
+
   for (i = 0; i < num_peers; i++)
     GNUNET_TESTBED_peer_get_information (peers[i],
                                          GNUNET_TESTBED_PIT_IDENTITY,
@@ -305,6 +519,9 @@
       { 'k', "threshold", NULL,
         gettext_noop ("threshold"),
         GNUNET_YES, &GNUNET_GETOPT_set_uint, &threshold },
+      { 'd', "decrypt", NULL,
+        gettext_noop ("also profile decryption"),
+        GNUNET_NO, &GNUNET_GETOPT_set_one, &decrypt },
       { 'V', "verbose", NULL,
         gettext_noop ("be more verbose (print received values)"),
         GNUNET_NO, &GNUNET_GETOPT_set_one, &verbose },

Modified: gnunet/src/secretsharing/gnunet-service-secretsharing.c
===================================================================
--- gnunet/src/secretsharing/gnunet-service-secretsharing.c     2014-01-20 
17:17:59 UTC (rev 31955)
+++ gnunet/src/secretsharing/gnunet-service-secretsharing.c     2014-01-20 
19:08:47 UTC (rev 31956)
@@ -33,6 +33,9 @@
 #include <gcrypt.h>
 
 
+#define EXTRA_CHECKS 1
+
+
 /**
  * Info about a peer in a key generation session.
  */
@@ -45,6 +48,7 @@
 
   /**
    * The peer's paillier public key.
+   * Freshly generated for each keygen session.
    */
   gcry_mpi_t paillier_n;
 
@@ -92,7 +96,7 @@
    * Original index in the key generation round.
    * Necessary for computing the lagrange coefficients.
    */
-  unsigned int real_index;
+  unsigned int original_index;
 
   /**
    * Set to the partial decryption of
@@ -323,52 +327,11 @@
 
 
 /**
- * If target != size, move @a target bytes to the end of the size-sized
- * buffer and zero out the first @a target - @a size bytes.
- *
- * @param buf original buffer
- * @param size number of bytes in @a buf
- * @param target target size of the buffer
- */
-static void
-adjust (unsigned char *buf,
-       size_t size,
-       size_t target)
-{
-  if (size < target)
-  {
-    memmove (&buf[target - size], buf, size);
-    memset (buf, 0, target - size);
-  }
-}
-
-
-/**
- * Print an MPI to a buffer, so that is contains the MPI's
- * the little endian representation of size @a size.
- *
- * @param buf buffer to write to
- * @param x mpi to be written in the buffer
- * @param size how many bytes should the little endian binary
- *             representation of @a x use?
- */
-static void
-print_mpi_fixed (void *buf, gcry_mpi_t x, size_t size)
-{
-  size_t written;
-  GNUNET_assert (0 == gcry_mpi_print (GCRYMPI_FMT_USG,
-                                      buf, size, &written,
-                                      x));
-  adjust (buf, written, size);
-}
-
-
-/**
  * Get the peer info belonging to a peer identity in a keygen session.
  *
- * @param ks the keygen session
- * @param peer the peer identity
- * @return the keygen peer info, or NULL if the peer could not be found
+ * @param ks The keygen session.
+ * @param peer The peer identity.
+ * @return The Keygen peer info, or NULL if the peer could not be found.
  */
 static struct KeygenPeerInfo *
 get_keygen_peer_info (const struct KeygenSession *ks,
@@ -385,13 +348,13 @@
 /**
  * Get the peer info belonging to a peer identity in a decrypt session.
  *
- * @param ks the decrypt session
- * @param peer the peer identity
- * @return the decrypt peer info, or NULL if the peer could not be found
+ * @param ks The decrypt session.
+ * @param peer The peer identity.
+ * @return The decrypt peer info, or NULL if the peer could not be found.
  */
 static struct DecryptPeerInfo *
 get_decrypt_peer_info (const struct DecryptSession *ds,
-                      const struct GNUNET_PeerIdentity *peer)
+                       const struct GNUNET_PeerIdentity *peer)
 {
   unsigned int i;
   for (i = 0; i < ds->share->num_peers; i++)
@@ -428,8 +391,8 @@
 /**
  * Compare two peer identities.  Indended to be used with qsort or bsearch.
  *
- * @param p1 some peer identity
- * @param p2 some peer identity
+ * @param p1 Some peer identity.
+ * @param p2 Some peer identity.
  * @return 1 if p1 > p2, -1 if p1 < p2 and 0 if p1 == p2.
  */
 static int
@@ -442,10 +405,10 @@
 /**
  * Get the index of a peer in an array of peers
  *
- * @param haystack array of peers
- * @param n size of @a haystack
- * @param needle peer to find
- * @return index of @a needle in @a haystack, or -1 if peer
+ * @param haystack Array of peers.
+ * @param n Size of @a haystack.
+ * @param needle Peer to find
+ * @return Index of @a needle in @a haystack, or -1 if peer
  *         is not in the list.
  */
 static int
@@ -464,11 +427,11 @@
  * Normalize the given list of peers, by including the local peer
  * (if it is missing) and sorting the peers by their identity.
  *
- * @param listed peers in the unnormalized list
- * @param num_listed peers in the un-normalized list
- * @param[out] num_normalized number of peers in the normalized list
- * @param[out] my_peer_idx index of the local peer in the normalized list
- * @return normalized list, must be free'd by the caller
+ * @param listed Peers in the unnormalized list.
+ * @param num_listed Peers in the un-normalized list.
+ * @param[out] num_normalized Number of peers in the normalized list.
+ * @param[out] my_peer_idx Index of the local peer in the normalized list.
+ * @return Normalized list, must be free'd by the caller.
  */
 static struct GNUNET_PeerIdentity *
 normalize_peers (struct GNUNET_PeerIdentity *listed,
@@ -477,6 +440,7 @@
                  unsigned int *my_peer_idx)
 {
   unsigned int local_peer_in_list;
+  /* number of peers in the normalized list */
   unsigned int n;
   struct GNUNET_PeerIdentity *normalized;
 
@@ -506,10 +470,10 @@
 
 
 /**
- * Get a the j-th lagrage coefficient for a set of indices.
+ * Get a the j-th lagrange coefficient for a set of indices.
  *
  * @param[out] coeff the lagrange coefficient
- * @param j lagrage coefficient we want to compute
+ * @param j lagrange coefficient we want to compute
  * @param indices indices
  * @param num number of indices in @a indices
  */
@@ -518,7 +482,7 @@
                               unsigned int *indices,
                               unsigned int num)
 {
-  int i;
+  unsigned int i;
   /* numerator */
   gcry_mpi_t n;
   /* denominator */
@@ -535,22 +499,27 @@
   gcry_mpi_set_ui (n, 1);
   gcry_mpi_set_ui (d, 1);
 
-  gcry_mpi_set_ui (coeff, 0);
   for (i = 0; i < num; i++)
   {
-    int l = indices[i];
+    unsigned int l = indices[i];
     if (l == j)
       continue;
-    gcry_mpi_mul_ui (n, n, l);
+    gcry_mpi_mul_ui (n, n, l + 1);
     // d <- d * (l-j)
-    gcry_mpi_set_ui (tmp, l);
-    gcry_mpi_sub_ui (tmp, tmp, j);
+    gcry_mpi_set_ui (tmp, l + 1);
+    gcry_mpi_sub_ui (tmp, tmp, j + 1);
     gcry_mpi_mul (d, d, tmp);
   }
 
+  // gcry_mpi_invm does not like negative numbers ...
+  gcry_mpi_mod (d, d, elgamal_q);
+
+  GNUNET_assert (gcry_mpi_cmp_ui (d, 0) > 0);
+
   // now we do the actual division, with everything mod q, as we
-  // are not operating on elemets from <g>, but on exponents
-  GNUNET_assert (0 == gcry_mpi_invm (d, d, elgamal_q));
+  // are not operating on elements from <g>, but on exponents
+  GNUNET_assert (0 != gcry_mpi_invm (d, d, elgamal_q));
+
   gcry_mpi_mulm (coeff, n, d, elgamal_q);
 
   gcry_mpi_release (n);
@@ -580,11 +549,22 @@
   GNUNET_assert (0 != (phi = gcry_mpi_new (PAILLIER_BITS)));
   GNUNET_assert (0 != (tmp = gcry_mpi_new (PAILLIER_BITS)));
 
-  // generate rsa modulus
-  GNUNET_assert (0 == gcry_prime_generate (&p, PAILLIER_BITS / 2, 0, NULL, 
NULL, NULL,
+  p = q = NULL;
+
+  // Generate two distinct primes.
+  // The probability that the loop body
+  // is executed more than once is very low.
+  do {
+    if (NULL != p)
+      gcry_mpi_release (p);
+    if (NULL != q)
+      gcry_mpi_release (q);
+    // generate rsa modulus
+    GNUNET_assert (0 == gcry_prime_generate (&p, PAILLIER_BITS / 2, 0, NULL, 
NULL, NULL,
+                                             GCRY_WEAK_RANDOM, 0));
+    GNUNET_assert (0 == gcry_prime_generate (&q, PAILLIER_BITS / 2, 0, NULL, 
NULL, NULL,
                                            GCRY_WEAK_RANDOM, 0));
-  GNUNET_assert (0 == gcry_prime_generate (&q, PAILLIER_BITS / 2, 0, NULL, 
NULL, NULL,
-                                           GCRY_WEAK_RANDOM, 0));
+  } while (0 == gcry_mpi_cmp (p, q));
   gcry_mpi_mul (n, p, q);
   // compute phi(n) = (p-1)(q-1)
   gcry_mpi_sub_ui (phi, p, 1);
@@ -604,7 +584,7 @@
 /**
  * Encrypt a value using Paillier's scheme.
  *
- * @param c resulting ciphertext
+ * @param[out] c resulting ciphertext
  * @param m plaintext to encrypt
  * @param n n-component of public key
  */
@@ -628,7 +608,7 @@
   {
     gcry_mpi_randomize (r, PAILLIER_BITS, GCRY_WEAK_RANDOM);
   }
-  while (gcry_mpi_cmp (r, n) > 0);
+  while (gcry_mpi_cmp (r, n) >= 0);
 
   gcry_mpi_powm (c, g, m, n_square);
   gcry_mpi_powm (r, r, n, n_square);
@@ -636,6 +616,7 @@
 
   gcry_mpi_release (n_square);
   gcry_mpi_release (r);
+  gcry_mpi_release (g);
 }
 
 
@@ -652,17 +633,69 @@
 paillier_decrypt (gcry_mpi_t m, gcry_mpi_t c, gcry_mpi_t mu, gcry_mpi_t 
lambda, gcry_mpi_t n)
 {
   gcry_mpi_t n_square;
+
   GNUNET_assert (0 != (n_square = gcry_mpi_new (0)));
+
   gcry_mpi_mul (n_square, n, n);
+  // m = c^lambda mod n^2
   gcry_mpi_powm (m, c, lambda, n_square);
+  // m = m - 1
   gcry_mpi_sub_ui (m, m, 1);
-  // m = m/n
+  // m <- m/n
   gcry_mpi_div (m, NULL, m, n, 0);
   gcry_mpi_mulm (m, m, mu, n);
   gcry_mpi_release (n_square);
 }
 
 
+static void
+decrypt_session_destroy (struct DecryptSession *ds)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "destroying decrypt session\n");
+
+  GNUNET_CONTAINER_DLL_remove (decrypt_sessions_head, decrypt_sessions_tail, 
ds);
+
+  if (NULL != ds->client_mq)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "destroying decrypt MQ\n");
+    GNUNET_MQ_destroy (ds->client_mq);
+    ds->client_mq = NULL;
+  }
+
+  if (NULL != ds->client)
+  {
+    GNUNET_SERVER_client_disconnect (ds->client);
+    ds->client = NULL;
+  }
+
+  GNUNET_free (ds);
+}
+
+
+static void
+keygen_session_destroy (struct KeygenSession *ks)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "destroying keygen session\n");
+
+  GNUNET_CONTAINER_DLL_remove (keygen_sessions_head, keygen_sessions_tail, ks);
+
+  if (NULL != ks->client_mq)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "destroying keygen MQ\n");
+    GNUNET_MQ_destroy (ks->client_mq);
+    ks->client_mq = NULL;
+  }
+
+  if (NULL != ks->client)
+  {
+    GNUNET_SERVER_client_disconnect (ks->client);
+    ks->client = NULL;
+  }
+
+  GNUNET_free (ks);
+}
+
+
 /**
  * Task run during shutdown.
  *
@@ -672,7 +705,11 @@
 static void
 cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  /* FIXME: do clean up here */
+  while (NULL != decrypt_sessions_head)
+    decrypt_session_destroy (decrypt_sessions_head);
+
+  while (NULL != keygen_sessions_head)
+    keygen_session_destroy (keygen_sessions_head);
 }
 
 
@@ -685,23 +722,31 @@
 generate_presecret_polynomial (struct KeygenSession *ks)
 {
   int i;
+  gcry_mpi_t v;
+
   GNUNET_assert (NULL == ks->presecret_polynomial);
-  ks->presecret_polynomial = GNUNET_malloc (ks->threshold * sizeof 
(gcry_mpi_t));
+  ks->presecret_polynomial = GNUNET_new_array (ks->threshold, gcry_mpi_t);
   for (i = 0; i < ks->threshold; i++)
   {
-    ks->presecret_polynomial[i] = gcry_mpi_new (GNUNET_SECRETSHARING_KEY_BITS);
-    GNUNET_assert (0 != ks->presecret_polynomial[i]);
-    gcry_mpi_randomize (ks->presecret_polynomial[i], 
GNUNET_SECRETSHARING_KEY_BITS,
-                        GCRY_WEAK_RANDOM);
+    v = ks->presecret_polynomial[i] = gcry_mpi_new 
(GNUNET_SECRETSHARING_ELGAMAL_BITS);
+    GNUNET_assert (NULL != v);
+    // Randomize v such that 0 < v < elgamal_q.
+    // The '- 1' is necessary as bitlength(q) = bitlength(p) - 1.
+    do 
+    {
+      gcry_mpi_randomize (v, GNUNET_SECRETSHARING_ELGAMAL_BITS - 1, 
GCRY_WEAK_RANDOM);
+    } while ((gcry_mpi_cmp_ui (v, 0) == 0) || (gcry_mpi_cmp (v, elgamal_q) >= 
0));
   }
 }
 
 
 /**
  * Consensus element handler for round one.
+ * We should get one ephemeral key for each peer.
  *
- * @param cls closure (keygen session)
- * @param element the element from consensus
+ * @param cls Closure (keygen session).
+ * @param element The element from consensus, or
+ *                NULL if consensus failed.
  */
 static void
 keygen_round1_new_element (void *cls,
@@ -717,6 +762,7 @@
     return;
   }
 
+  /* elements have fixed size */
   if (element->size != sizeof (struct GNUNET_SECRETSHARING_KeygenCommitData))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -729,7 +775,6 @@
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "got round1 element\n");
 
   d = element->data;
-
   info = get_keygen_peer_info (ks, &d->peer);
 
   if (NULL == info)
@@ -739,6 +784,7 @@
     return;
   }
 
+  /* Check that the right amount of data has been signed. */
   if (d->purpose.size !=
       htonl (element->size - offsetof (struct 
GNUNET_SECRETSHARING_KeygenCommitData, purpose)))
   {
@@ -752,11 +798,8 @@
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "keygen commit data with invalid 
signature in consensus\n");
     return;
   }
-
-  GNUNET_assert (0 == gcry_mpi_scan (&info->paillier_n, GCRYMPI_FMT_USG,
-                                     &d->pubkey.n, sizeof d->pubkey.n, NULL));
-  GNUNET_assert (0 == gcry_mpi_scan (&info->presecret_commitment, 
GCRYMPI_FMT_USG,
-                                     &d->commitment, sizeof d->commitment, 
NULL));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&info->paillier_n, &d->pubkey.n, 
PAILLIER_BITS / 8);
+  GNUNET_CRYPTO_mpi_scan_unsigned (&info->presecret_commitment, &d->pubkey.n, 
PAILLIER_BITS / 8);
   info->round1_valid = GNUNET_YES;
 }
 
@@ -796,16 +839,20 @@
   unsigned int i;
   unsigned int j;
   struct GNUNET_SECRETSHARING_Share *share;
+  /* our share */
   gcry_mpi_t s;
+  /* public key */
   gcry_mpi_t h;
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "round2 conclude\n");
 
-  GNUNET_assert (0 != (s = gcry_mpi_new (GNUNET_SECRETSHARING_KEY_BITS)));
-  GNUNET_assert (0 != (h = gcry_mpi_new (GNUNET_SECRETSHARING_KEY_BITS)));
+  GNUNET_assert (0 != (s = gcry_mpi_new (GNUNET_SECRETSHARING_ELGAMAL_BITS)));
+  GNUNET_assert (0 != (h = gcry_mpi_new (GNUNET_SECRETSHARING_ELGAMAL_BITS)));
 
   // multiplicative identity
-  gcry_mpi_set_ui (s, 1);
+  gcry_mpi_set_ui (h, 1);
+  // additive identity
+  gcry_mpi_set_ui (s, 0);
 
   share = GNUNET_new (struct GNUNET_SECRETSHARING_Share);
 
@@ -820,6 +867,9 @@
       GNUNET_new_array (share->num_peers, struct 
GNUNET_SECRETSHARING_FieldElement);
   share->original_indices = GNUNET_new_array (share->num_peers, uint16_t);
 
+  /* maybe we're not even in the list of peers? */
+  share->my_peer = share->num_peers;
+
   j = 0;
   for (i = 0; i < ks->num_peers; i++)
   {
@@ -829,14 +879,19 @@
       gcry_mpi_mulm (h, h, ks->info[i].public_key_share, elgamal_p);
       share->peers[i] = ks->info[i].peer;
       share->original_indices[i] = j++;
+      if (0 == memcmp (&share->peers[i], &my_peer, sizeof (struct 
GNUNET_PeerIdentity)))
+        share->my_peer = i;
     }
   }
 
-  print_mpi_fixed (&share->my_share, s, GNUNET_SECRETSHARING_KEY_BITS / 8);
-  print_mpi_fixed (&share->public_key, h, GNUNET_SECRETSHARING_KEY_BITS / 8);
+  GNUNET_CRYPTO_mpi_print_unsigned (&share->my_share, 
GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, s);
+  GNUNET_CRYPTO_mpi_print_unsigned (&share->public_key, 
GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, h);
 
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "keygen successful with %u peers\n", 
share->num_peers);
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "keygen completed with %u peers\n", 
share->num_peers);
 
+  /* Write the share. If 0 peers completed the dkg, an empty
+   * share will be sent. */
+
   m = GNUNET_malloc (sizeof (struct GNUNET_SECRETSHARING_SecretReadyMessage) +
                      ks->num_peers * sizeof (struct GNUNET_PeerIdentity));
 
@@ -872,13 +927,19 @@
   unsigned int i;
   gcry_mpi_t idx;
   gcry_mpi_t v;
+  gcry_mpi_t c;
 
-  GNUNET_assert (0 != (v = gcry_mpi_new (GNUNET_SECRETSHARING_KEY_BITS)));
-  GNUNET_assert (0 != (idx = gcry_mpi_new (GNUNET_SECRETSHARING_KEY_BITS)));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Inserting round2 element\n",
+              ks->local_peer_idx);
 
+  GNUNET_assert (NULL != (v = gcry_mpi_new 
(GNUNET_SECRETSHARING_ELGAMAL_BITS)));
+  GNUNET_assert (NULL != (idx = gcry_mpi_new 
(GNUNET_SECRETSHARING_ELGAMAL_BITS)));
+  GNUNET_assert (NULL != (c = gcry_mpi_new 
(GNUNET_SECRETSHARING_ELGAMAL_BITS)));
+
   element_size = (sizeof (struct GNUNET_SECRETSHARING_KeygenRevealData) +
-                  2 * GNUNET_SECRETSHARING_KEY_BITS / 8 * ks->num_peers +
-                  1 * GNUNET_SECRETSHARING_KEY_BITS / 8 * ks->threshold);
+                  GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 * ks->num_peers +
+                  GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 * ks->threshold +
+                  PAILLIER_BITS * 2 / 8 * ks->num_peers);
 
   element = GNUNET_malloc (sizeof (struct GNUNET_SET_Element) + element_size);
   element->size = element_size;
@@ -887,6 +948,8 @@
   d = (void *) element->data;
   d->peer = my_peer;
 
+  // start inserting vector elements
+  // after the fixed part of the element's data
   pos = (void *) &d[1];
   last_pos = pos + element_size;
 
@@ -895,38 +958,55 @@
   {
     ptrdiff_t remaining = last_pos - pos;
     GNUNET_assert (remaining > 0);
-    gcry_mpi_set_ui (idx, i);
+    gcry_mpi_set_ui (idx, i + 1);
     // evaluate the polynomial
-    horner_eval (v, ks->presecret_polynomial, ks->threshold, idx, elgamal_p);
+    horner_eval (v, ks->presecret_polynomial, ks->threshold, idx, elgamal_q);
     // take g to the result
     gcry_mpi_powm (v, elgamal_g, v, elgamal_p);
-    print_mpi_fixed (pos, v, GNUNET_SECRETSHARING_KEY_BITS / 8);
-    pos += GNUNET_SECRETSHARING_KEY_BITS / 8;
+    GNUNET_CRYPTO_mpi_print_unsigned (pos, GNUNET_SECRETSHARING_ELGAMAL_BITS / 
8, v);
+    pos += GNUNET_SECRETSHARING_ELGAMAL_BITS / 8;
   }
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: computed exp preshares\n",
+              ks->local_peer_idx);
+
   // encrypted pre-shares
   for (i = 0; i < ks->num_peers; i++)
   {
     ptrdiff_t remaining = last_pos - pos;
     GNUNET_assert (remaining > 0);
     if (GNUNET_NO == ks->info[i].round1_valid)
-      gcry_mpi_set_ui (v, 0);
+    {
+      gcry_mpi_set_ui (c, 0);
+    }
     else
-      paillier_encrypt (v, ks->presecret_polynomial[0], 
ks->info[i].paillier_n);
-    print_mpi_fixed (pos, v, GNUNET_SECRETSHARING_KEY_BITS / 8);
-    pos += GNUNET_SECRETSHARING_KEY_BITS / 8;
+    {
+      gcry_mpi_set_ui (idx, i + 1);
+      // evaluate the polynomial
+      horner_eval (v, ks->presecret_polynomial, ks->threshold, idx, elgamal_q);
+      // encrypt the result
+      paillier_encrypt (c, v, ks->info[i].paillier_n);
+    }
+    GNUNET_CRYPTO_mpi_print_unsigned (pos, PAILLIER_BITS * 2 / 8, c);
+    pos += PAILLIER_BITS * 2 / 8;
   }
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: computed enc preshares\n",
+              ks->local_peer_idx);
+
   // exponentiated coefficients
   for (i = 0; i < ks->threshold; i++)
   {
     ptrdiff_t remaining = last_pos - pos;
     GNUNET_assert (remaining > 0);
     gcry_mpi_powm (v, elgamal_g, ks->presecret_polynomial[i], elgamal_p);
-    print_mpi_fixed (pos, v, GNUNET_SECRETSHARING_KEY_BITS / 8);
-    pos += GNUNET_SECRETSHARING_KEY_BITS / 8;
+    GNUNET_CRYPTO_mpi_print_unsigned (pos, GNUNET_SECRETSHARING_ELGAMAL_BITS / 
8, v);
+    pos += GNUNET_SECRETSHARING_ELGAMAL_BITS / 8;
   }
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: computed exp coefficients\n",
+              ks->local_peer_idx);
+
   d->purpose.size = htonl (element_size - offsetof (struct 
GNUNET_SECRETSHARING_KeygenRevealData, purpose));
   d->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_SECRETSHARING_DKG2);
   GNUNET_CRYPTO_eddsa_sign (my_peer_private_key, &d->purpose, &d->signature);
@@ -957,8 +1037,9 @@
   }
 
   expected_element_size = (sizeof (struct 
GNUNET_SECRETSHARING_KeygenRevealData) +
-                  2 * GNUNET_SECRETSHARING_KEY_BITS / 8 * ks->num_peers +
-                  1 * GNUNET_SECRETSHARING_KEY_BITS / 8 * ks->threshold);
+                  GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 * ks->num_peers +
+                  PAILLIER_BITS / 8 * 2 * ks->num_peers +
+                  GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 * ks->threshold);
 
   if (element->size != expected_element_size)
   {
@@ -1001,31 +1082,28 @@
 
   pos = (void *) &d[1];
   // skip exponentiated pre-shares
-  pos += GNUNET_SECRETSHARING_KEY_BITS / 8 * ks->num_peers;
+  pos += GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 * ks->num_peers;
   // skip encrypted pre-shares
-  pos += PAILLIER_BITS / 8 * ks->num_peers;
+  pos += PAILLIER_BITS * 2 / 8 * ks->num_peers;
   // the first exponentiated coefficient is the public key share
-  GNUNET_assert (0 == gcry_mpi_scan (&info->public_key_share, GCRYMPI_FMT_USG,
-                                     pos, GNUNET_SECRETSHARING_KEY_BITS / 8, 
NULL));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&info->public_key_share, pos, 
GNUNET_SECRETSHARING_ELGAMAL_BITS / 8);
 
   pos = (void *) &d[1];
   // skip exp. pre-shares
-  pos += GNUNET_SECRETSHARING_KEY_BITS / 8 * ks->num_peers;
+  pos += GNUNET_SECRETSHARING_ELGAMAL_BITS / 8 * ks->num_peers;
   // skip to the encrypted value for our peer
-  pos += PAILLIER_BITS / 8 * ks->local_peer_idx;
+  pos += PAILLIER_BITS * 2 / 8 * ks->local_peer_idx;
 
-  GNUNET_assert (0 == gcry_mpi_scan (&c, GCRYMPI_FMT_USG,
-                                     pos, PAILLIER_BITS / 8, NULL));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&c, pos, PAILLIER_BITS * 2 / 8);
 
   GNUNET_assert (0 != (info->decrypted_preshare = mpi_new (0)));
 
-  paillier_decrypt (info->decrypted_preshare, c, ks->paillier_lambda, 
ks->paillier_mu,
+  paillier_decrypt (info->decrypted_preshare, c, ks->paillier_mu, 
ks->paillier_lambda,
                     ks->info[ks->local_peer_idx].paillier_n);
-
   // TODO: validate zero knowledge proofs
 
-  if (d->purpose.size !=
-      htons (element->size - offsetof (struct 
GNUNET_SECRETSHARING_KeygenRevealData, purpose)))
+  if (ntohl (d->purpose.size) !=
+      element->size - offsetof (struct GNUNET_SECRETSHARING_KeygenRevealData, 
purpose))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "keygen reveal data with wrong 
signature purpose size in consensus\n");
     return;
@@ -1082,29 +1160,25 @@
   // g^a_{i,0}
   gcry_mpi_t v;
   // big-endian representation of 'v'
-  unsigned char v_data[GNUNET_SECRETSHARING_KEY_BITS / 8];
+  unsigned char v_data[GNUNET_SECRETSHARING_ELGAMAL_BITS / 8];
 
   element = GNUNET_malloc (sizeof *element + sizeof *d);
   d = (void *) &element[1];
   element->data = d;
   element->size = sizeof *d;
 
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "alloc'd size %u\n", sizeof *element + 
sizeof *d);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "element size %u\n", element->size);
-
-
   d->peer = my_peer;
 
-  GNUNET_assert (0 != (v = gcry_mpi_new (GNUNET_SECRETSHARING_KEY_BITS)));
+  GNUNET_assert (0 != (v = gcry_mpi_new (GNUNET_SECRETSHARING_ELGAMAL_BITS)));
 
   gcry_mpi_powm (v, elgamal_g, ks->presecret_polynomial[0], elgamal_p);
 
-  print_mpi_fixed (v_data, v, GNUNET_SECRETSHARING_KEY_BITS);
+  GNUNET_CRYPTO_mpi_print_unsigned (v_data, GNUNET_SECRETSHARING_ELGAMAL_BITS 
/ 8, v);
 
-  GNUNET_CRYPTO_hash (v_data, GNUNET_SECRETSHARING_KEY_BITS / 8, 
&d->commitment);
+  GNUNET_CRYPTO_hash (v_data, GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, 
&d->commitment);
 
-  print_mpi_fixed (d->pubkey.n, ks->info[ks->local_peer_idx].paillier_n,
-                   PAILLIER_BITS / 8);
+  GNUNET_CRYPTO_mpi_print_unsigned (d->pubkey.n, PAILLIER_BITS / 8,
+                                    ks->info[ks->local_peer_idx].paillier_n);
 
   d->purpose.size = htonl ((sizeof *d) - offsetof (struct 
GNUNET_SECRETSHARING_KeygenCommitData, purpose));
   d->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_SECRETSHARING_DKG1);
@@ -1158,7 +1232,7 @@
   ks->consensus = GNUNET_CONSENSUS_create (cfg, ks->num_peers, ks->peers, 
&msg->session_id,
                                            keygen_round1_new_element, ks);
 
-  ks->info = GNUNET_malloc (ks->num_peers * sizeof (struct KeygenPeerInfo));
+  ks->info = GNUNET_new_array (ks->num_peers, struct KeygenPeerInfo);
 
   for (i = 0; i < ks->num_peers; i++)
     ks->info[i].peer = ks->peers[i];
@@ -1171,12 +1245,15 @@
                    ks->paillier_lambda,
                    ks->paillier_mu);
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Generated paillier key pair\n", 
ks->local_peer_idx);
 
   generate_presecret_polynomial (ks);
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Generated presecret 
polynomial\n", ks->local_peer_idx);
+
   insert_round1_element (ks);
 
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "starting conclude of round 1\n");
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Concluding for round 1\n", 
ks->local_peer_idx);
 
   GNUNET_CONSENSUS_conclude (ks->consensus,
                              /* half the overall time */
@@ -1185,6 +1262,8 @@
                              ks);
 
   GNUNET_SERVER_receive_done (client, GNUNET_OK);
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Waiting for round 1 elements 
...\n", ks->local_peer_idx);
 }
 
 
@@ -1201,6 +1280,7 @@
   gcry_mpi_t m;
   gcry_mpi_t tmp;
   gcry_mpi_t c_2;
+  gcry_mpi_t prod;
   unsigned int *indices;
   unsigned int num;
   unsigned int i;
@@ -1209,6 +1289,7 @@
   GNUNET_assert (0 != (lagrange = gcry_mpi_new (0)));
   GNUNET_assert (0 != (m = gcry_mpi_new (0)));
   GNUNET_assert (0 != (tmp = gcry_mpi_new (0)));
+  GNUNET_assert (0 != (prod = gcry_mpi_new (0)));
 
   num = 0;
   for (i = 0; i < ds->share->num_peers; i++)
@@ -1219,30 +1300,36 @@
   j = 0;
   for (i = 0; i < ds->share->num_peers; i++)
     if (NULL != ds->info[i].partial_decryption)
-      indices[j++] = ds->info[i].real_index;
+      indices[j++] = ds->info[i].original_index;
 
-  gcry_mpi_set_ui (m, 1);
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "P%u: decrypt conclude, with %u peers\n",
+              ds->share->my_peer, num);
 
+  gcry_mpi_set_ui (prod, 1);
   for (i = 0; i < num; i++)
   {
+
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "P%u: index of %u: %u\n",
+                ds->share->my_peer, i, indices[i]);
     compute_lagrange_coefficient (lagrange, indices[i], indices, num);
-    // w_j^{\lambda_j}
+    // w_i^{\lambda_i}
     gcry_mpi_powm (tmp, ds->info[indices[i]].partial_decryption, lagrange, 
elgamal_p);
-    gcry_mpi_mulm (m, m, tmp, elgamal_p);
+
+    // product of all exponentiated partiel decryptions ...
+    gcry_mpi_mulm (prod, prod, tmp, elgamal_p);
   }
 
-  GNUNET_assert (0 == gcry_mpi_scan (&c_2, GCRYMPI_FMT_USG, 
ds->ciphertext.c2_bits,
-                                     GNUNET_SECRETSHARING_KEY_BITS / 8, NULL));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&c_2, ds->ciphertext.c2_bits, 
GNUNET_SECRETSHARING_ELGAMAL_BITS / 8);
 
-  // m <- c_2 / m
-  gcry_mpi_invm (m, m, elgamal_p);
-  gcry_mpi_mulm (m, c_2, m, elgamal_p);
-
+  GNUNET_assert (0 != gcry_mpi_invm (prod, prod, elgamal_p));
+  gcry_mpi_mulm (m, c_2, prod, elgamal_p);
   ev = GNUNET_MQ_msg (msg, 
GNUNET_MESSAGE_TYPE_SECRETSHARING_CLIENT_DECRYPT_DONE);
-  print_mpi_fixed (&msg->plaintext, m, GNUNET_SECRETSHARING_KEY_BITS / 8);
+  GNUNET_CRYPTO_mpi_print_unsigned (&msg->plaintext, 
GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, m);
   msg->success = htonl (1);
   GNUNET_MQ_send (ds->client_mq, ev);
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "sent decrypt done to client\n");
+
   // FIXME: what if not enough peers participated?
 }
 
@@ -1291,8 +1378,8 @@
 
   // FIXME: check NIZP first
 
-  GNUNET_assert (0 == gcry_mpi_scan (&info->partial_decryption,
-                                     GCRYMPI_FMT_USG, &d->partial_decryption, 
GNUNET_SECRETSHARING_KEY_BITS / 8, NULL));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&info->partial_decryption, 
&d->partial_decryption,
+                                   GNUNET_SECRETSHARING_ELGAMAL_BITS / 8);
 }
 
 static void
@@ -1303,22 +1390,37 @@
   gcry_mpi_t x;
   gcry_mpi_t s;
 
-  GNUNET_assert (0 == gcry_mpi_scan (&x, GCRYMPI_FMT_USG, 
ds->ciphertext.c1_bits, GNUNET_SECRETSHARING_KEY_BITS / 8, NULL));
-  GNUNET_assert (0 == gcry_mpi_scan (&s, GCRYMPI_FMT_USG, 
&ds->share->my_share, GNUNET_SECRETSHARING_KEY_BITS / 8, NULL));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Inserting decrypt element\n",
+              ds->share->my_peer);
 
+  GNUNET_CRYPTO_mpi_scan_unsigned (&x, &ds->ciphertext.c1_bits,
+                                   GNUNET_SECRETSHARING_ELGAMAL_BITS / 8);
+  GNUNET_CRYPTO_mpi_scan_unsigned (&s, &ds->share->my_share,
+                                   GNUNET_SECRETSHARING_ELGAMAL_BITS / 8);
+
   gcry_mpi_powm (x, x, s, elgamal_p);
 
   element.data = (void *) &d;
   element.size = sizeof (struct GNUNET_SECRETSHARING_DecryptData);
+  element.type = 0;
 
+  /* make vagrind happy until we implement the real deal ... */
+  memset (&d.nizk_commit1, 0, sizeof d.nizk_commit1);
+  memset (&d.nizk_commit2, 0, sizeof d.nizk_commit2);
+  memset (&d.nizk_response, 0, sizeof d.nizk_response);
+
+  d.ciphertext = ds->ciphertext;
   d.peer = my_peer;
-  d.purpose.size = htonl (element.size - offsetof (struct 
GNUNET_SECRETSHARING_KeygenRevealData, purpose));
+  d.purpose.size = htonl (element.size - offsetof (struct 
GNUNET_SECRETSHARING_DecryptData, purpose));
   d.purpose.purpose = htonl 
(GNUNET_SIGNATURE_PURPOSE_SECRETSHARING_DECRYPTION);
+  
   GNUNET_CRYPTO_eddsa_sign (my_peer_private_key, &d.purpose, &d.signature);
 
-  print_mpi_fixed (&d.partial_decryption, x, GNUNET_SECRETSHARING_KEY_BITS / 
8);
+  GNUNET_CRYPTO_mpi_print_unsigned (&d.partial_decryption, 
GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, x);
 
   GNUNET_CONSENSUS_insert (ds->consensus, &element, NULL, NULL);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Inserting decrypt element 
done!\n",
+              ds->share->my_peer);
 }
 
 
@@ -1339,6 +1441,7 @@
       (const void *) message;
   struct DecryptSession *ds;
   struct GNUNET_HashCode session_id;
+  unsigned int i;
 
   ds = GNUNET_new (struct DecryptSession);
   // FIXME: check if session already exists
@@ -1359,56 +1462,86 @@
                                            ds->share->num_peers,
                                            ds->share->peers,
                                            &session_id,
-                                           decrypt_new_element,
+                                           &decrypt_new_element,
                                            ds);
 
+
+  ds->info = GNUNET_new_array (ds->share->num_peers, struct DecryptPeerInfo);
+  for (i = 0; i < ds->share->num_peers; i++)
+  {
+    ds->info[i].peer = ds->share->peers[i];
+    ds->info[i].original_index = ds->share->original_indices[i];
+  }
+
   insert_decrypt_element (ds);
 
   GNUNET_CONSENSUS_conclude (ds->consensus, ds->deadline, decrypt_conclude, 
ds);
+
+  GNUNET_SERVER_receive_done (client, GNUNET_OK);
+
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "decrypting with %u peers\n",
+              ds->share->num_peers);
 }
 
 
 static void
 init_crypto_constants (void)
 {
-  /* 1024-bit safe prime */
-  const char *elgamal_p_hex =
-      "0x08a347d3d69e8b2dd7d1b12a08dfbccbebf4ca"
-      "6f4269a0814e158a34312964d946b3ef22882317"
-      "2bcf30fc08f772774cb404f9bc002a6f66b09a79"
-      "d810d67c4f8cb3bedc6060e3c8ef874b1b64df71"
-      "6c7d2b002da880e269438d5a776e6b5f253c8df5"
-      "6a16b1c7ce58def07c03db48238aadfc52a354a2"
-      "7ed285b0c1675cad3f3";
-  /* 1023-bit Sophie Germain prime, q = (p-1)/2 */
-  const char *elgamal_q_hex =
-      "0x0451a3e9eb4f4596ebe8d895046fde65f5fa65"
-      "37a134d040a70ac51a1894b26ca359f79144118b"
-      "95e7987e047bb93ba65a027cde001537b3584d3c"
-      "ec086b3e27c659df6e303071e477c3a58db26fb8"
-      "b63e958016d4407134a1c6ad3bb735af929e46fa"
-      "b50b58e3e72c6f783e01eda411c556fe2951aa51"
-      "3f6942d860b3ae569f9";
-  /* generator of the unique size q subgroup of Z_p^* */
-  const char *elgamal_g_hex =
-      "0x05c00c36d2e822950087ef09d8252994adc4e4"
-      "8fe3ec70269f035b46063aff0c99b633fd64df43"
-      "02442e1914c829a41505a275438871f365e91c12"
-      "3d5303ef9e90f4b8cb89bf86cc9b513e74a72634"
-      "9cfd9f953674fab5d511e1c078fc72d72b34086f"
-      "c82b4b951989eb85325cb203ff98df76bc366bba"
-      "1d7024c3650f60d0da";
-
   GNUNET_assert (0 == gcry_mpi_scan (&elgamal_q, GCRYMPI_FMT_HEX,
-                                     elgamal_q_hex, 0, NULL));
+                                     GNUNET_SECRETSHARING_ELGAMAL_Q_HEX, 0, 
NULL));
   GNUNET_assert (0 == gcry_mpi_scan (&elgamal_p, GCRYMPI_FMT_HEX,
-                                     elgamal_p_hex, 0, NULL));
+                                     GNUNET_SECRETSHARING_ELGAMAL_P_HEX, 0, 
NULL));
   GNUNET_assert (0 == gcry_mpi_scan (&elgamal_g, GCRYMPI_FMT_HEX,
-                                     elgamal_g_hex, 0, NULL));
+                                     GNUNET_SECRETSHARING_ELGAMAL_G_HEX, 0, 
NULL));
 }
 
 
+static struct KeygenSession *
+keygen_session_get (struct GNUNET_SERVER_Client *client)
+{
+  struct KeygenSession *ks;
+  for (ks = keygen_sessions_head; NULL != ks; ks = ks->next)
+    if (ks->client == client)
+      return ks;
+  return NULL;
+}
+
+static struct DecryptSession *
+decrypt_session_get (struct GNUNET_SERVER_Client *client)
+{
+  struct DecryptSession *ds;
+  for (ds = decrypt_sessions_head; NULL != ds; ds = ds->next)
+    if (ds->client == client)
+      return ds;
+  return NULL;
+}
+
+
 /**
+ * Clean up after a client has disconnected
+ *
+ * @param cls closure, unused
+ * @param client the client to clean up after
+ */
+static void
+handle_client_disconnect (void *cls, struct GNUNET_SERVER_Client *client)
+{
+  struct KeygenSession *ks;
+  struct DecryptSession *ds;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "handling client disconnect\n");
+
+  ks = keygen_session_get (client);
+  if (NULL != ks)
+    keygen_session_destroy (ks);
+
+  ds = decrypt_session_get (client);
+  if (NULL != ds)
+    decrypt_session_destroy (ds);
+}
+
+
+/**
  * Process template requests.
  *
  * @param cls closure
@@ -1443,6 +1576,7 @@
     return;
   }
   GNUNET_SERVER_add_handlers (server, handlers);
+  GNUNET_SERVER_disconnect_notify (server, &handle_client_disconnect, NULL);
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup_task,
                                 NULL);
 }

Modified: gnunet/src/secretsharing/secretsharing.h
===================================================================
--- gnunet/src/secretsharing/secretsharing.h    2014-01-20 17:17:59 UTC (rev 
31955)
+++ gnunet/src/secretsharing/secretsharing.h    2014-01-20 19:08:47 UTC (rev 
31956)
@@ -40,7 +40,7 @@
   /**
    * Value of an element in <elgamal_g>.
    */
-  unsigned char bits[GNUNET_SECRETSHARING_KEY_BITS / 8];
+  unsigned char bits[GNUNET_SECRETSHARING_ELGAMAL_BITS / 8];
 };
 
 
@@ -107,6 +107,10 @@
 };
 
 
+/**
+ * Notify the client that then threshold secret has been
+ * established.
+ */
 struct GNUNET_SECRETSHARING_SecretReadyMessage
 {
   /**

Modified: gnunet/src/secretsharing/secretsharing_api.c
===================================================================
--- gnunet/src/secretsharing/secretsharing_api.c        2014-01-20 17:17:59 UTC 
(rev 31955)
+++ gnunet/src/secretsharing/secretsharing_api.c        2014-01-20 19:08:47 UTC 
(rev 31956)
@@ -27,6 +27,7 @@
 #include "gnunet_util_lib.h"
 #include "gnunet_secretsharing_service.h"
 #include "secretsharing.h"
+#include <gcrypt.h>
 
 
 #define LOG(kind,...) GNUNET_log_from (kind, "secretsharing-api",__VA_ARGS__)
@@ -83,7 +84,41 @@
 };
 
 
+/**
+ * The ElGamal prime field order as libgcrypt mpi.
+ * Initialized in #init_crypto_constants.
+ */
+static gcry_mpi_t elgamal_q;
+
+/**
+ * Modulus of the prime field used for ElGamal.
+ * Initialized in #init_crypto_constants.
+ */
+static gcry_mpi_t elgamal_p;
+
+/**
+ * Generator for prime field of order 'elgamal_q'.
+ * Initialized in #init_crypto_constants.
+ */
+static gcry_mpi_t elgamal_g;
+
+
 static void
+ensure_elgamal_initialized (void)
+{
+  if (NULL != elgamal_q)
+    return; /* looks like crypto is already initialized */
+
+  GNUNET_assert (0 == gcry_mpi_scan (&elgamal_q, GCRYMPI_FMT_HEX,
+                                     GNUNET_SECRETSHARING_ELGAMAL_Q_HEX, 0, 
NULL));
+  GNUNET_assert (0 == gcry_mpi_scan (&elgamal_p, GCRYMPI_FMT_HEX,
+                                     GNUNET_SECRETSHARING_ELGAMAL_P_HEX, 0, 
NULL));
+  GNUNET_assert (0 == gcry_mpi_scan (&elgamal_g, GCRYMPI_FMT_HEX,
+                                     GNUNET_SECRETSHARING_ELGAMAL_G_HEX, 0, 
NULL));
+}
+
+
+static void
 handle_session_client_error (void *cls, enum GNUNET_MQ_Error error)
 {
   struct GNUNET_SECRETSHARING_Session *s = cls;
@@ -95,9 +130,12 @@
 static void
 handle_decrypt_client_error (void *cls, enum GNUNET_MQ_Error error)
 {
-  GNUNET_assert (0);
+  struct GNUNET_SECRETSHARING_DecryptionHandle *dh = cls;
+  
+  dh->decrypt_cb (dh->decrypt_cls, NULL);
 }
 
+
 static void
 handle_secret_ready (void *cls, const struct GNUNET_MessageHeader *msg)
 {
@@ -116,9 +154,21 @@
                       share->num_peers,
                       (struct GNUNET_PeerIdentity *) &m[1]);
 
+  GNUNET_SECRETSHARING_session_destroy (session);
 }
 
 
+void
+GNUNET_SECRETSHARING_session_destroy (struct GNUNET_SECRETSHARING_Session 
*session)
+{
+  GNUNET_MQ_destroy (session->mq);
+  session->mq = NULL;
+  GNUNET_CLIENT_disconnect (session->client);
+  session->client = NULL;
+  GNUNET_free (session);
+}
+
+
 struct GNUNET_SECRETSHARING_Session *
 GNUNET_SECRETSHARING_create_session (const struct GNUNET_CONFIGURATION_Handle 
*cfg,
                                      unsigned int num_peers,
@@ -169,7 +219,20 @@
 static void
 handle_decrypt_done (void *cls, const struct GNUNET_MessageHeader *msg)
 {
-  GNUNET_assert (0);
+  struct GNUNET_SECRETSHARING_DecryptionHandle *dh = cls;
+  const struct GNUNET_SECRETSHARING_DecryptResponseMessage *m =
+      (const void *) msg;
+
+  const struct GNUNET_SECRETSHARING_Plaintext *plaintext;
+
+  if (m->success == 0)
+    plaintext = NULL;
+  else
+    plaintext = (void *) &m->plaintext;
+
+  dh->decrypt_cb (dh->decrypt_cls, plaintext);
+
+  GNUNET_SECRETSHARING_decrypt_cancel (dh);
 }
 
 
@@ -187,9 +250,9 @@
  * @return handle to cancel the operation
  */
 struct GNUNET_SECRETSHARING_DecryptionHandle *
-GNUNET_SECRETSHARING_decrypt (struct GNUNET_CONFIGURATION_Handle *cfg,
+GNUNET_SECRETSHARING_decrypt (const struct GNUNET_CONFIGURATION_Handle *cfg,
                               struct GNUNET_SECRETSHARING_Share *share,
-                              struct GNUNET_SECRETSHARING_Ciphertext 
*ciphertext,
+                              const struct GNUNET_SECRETSHARING_Ciphertext 
*ciphertext,
                               struct GNUNET_TIME_Absolute deadline,
                               GNUNET_SECRETSHARING_DecryptCallback decrypt_cb,
                               void *decrypt_cb_cls)
@@ -223,6 +286,7 @@
   GNUNET_assert (GNUNET_OK == GNUNET_SECRETSHARING_share_write (share, 
&msg[1], share_size, NULL));
 
   msg->deadline = GNUNET_TIME_absolute_hton (deadline);
+  msg->ciphertext = *ciphertext;
 
   GNUNET_MQ_send (s->mq, ev);
 
@@ -231,3 +295,112 @@
 }
 
 
+int
+GNUNET_SECRETSHARING_plaintext_generate_i (struct 
GNUNET_SECRETSHARING_Plaintext *plaintext,
+                                           int64_t exponent)
+{
+  int negative;
+  gcry_mpi_t x;
+
+  ensure_elgamal_initialized ();
+
+  GNUNET_assert (NULL != (x = gcry_mpi_new (0)));
+
+  negative = GNUNET_NO;
+  if (exponent < 0)
+  {
+    negative = GNUNET_YES;
+    exponent = -exponent;
+  }
+
+  gcry_mpi_set_ui (x, exponent);
+
+  gcry_mpi_powm (x, elgamal_g, x, elgamal_p);
+
+  if (GNUNET_YES == negative)
+  {
+    int res;
+    res = gcry_mpi_invm (x, x, elgamal_p);
+    if (0 == res)
+      return GNUNET_SYSERR;
+  }
+
+  GNUNET_CRYPTO_mpi_print_unsigned (plaintext, sizeof (struct 
GNUNET_SECRETSHARING_Plaintext), x);
+
+  return GNUNET_OK;
+}
+
+
+/**
+ * Encrypt a value.  This operation is executed locally, no communication is
+ * necessary.
+ *
+ * This is a helper function, encryption can be done soley with a session's 
public key
+ * and the crypto system parameters.
+ *
+ * @param public_key public key to use for decryption
+ * @param message message to encrypt
+ * @param message_size number of bytes in @a message
+ * @param result_ciphertext pointer to store the resulting ciphertext
+ * @return #GNUNET_YES on succes, #GNUNET_SYSERR if the message is invalid 
(invalid range)
+ */
+int
+GNUNET_SECRETSHARING_encrypt (const struct GNUNET_SECRETSHARING_PublicKey 
*public_key,
+                              const struct GNUNET_SECRETSHARING_Plaintext 
*plaintext,
+                              struct GNUNET_SECRETSHARING_Ciphertext 
*result_ciphertext)
+{
+  /* pubkey */
+  gcry_mpi_t h;
+  /* nonce */
+  gcry_mpi_t y;
+  /* plaintext message */
+  gcry_mpi_t m;
+  /* temp value */
+  gcry_mpi_t tmp;
+
+  ensure_elgamal_initialized ();
+
+  GNUNET_assert (NULL != (h = gcry_mpi_new (0)));
+  GNUNET_assert (NULL != (y = gcry_mpi_new (0)));
+  GNUNET_assert (NULL != (tmp = gcry_mpi_new (0)));
+
+  GNUNET_CRYPTO_mpi_scan_unsigned (&h, public_key, sizeof *public_key);
+  GNUNET_CRYPTO_mpi_scan_unsigned (&m, plaintext, sizeof *plaintext);
+
+  // Randomize y such that 0 < y < elgamal_q.
+  // The '- 1' is necessary as bitlength(q) = bitlength(p) - 1.
+  do 
+  {
+    gcry_mpi_randomize (y, GNUNET_SECRETSHARING_ELGAMAL_BITS - 1, 
GCRY_WEAK_RANDOM);
+  } while ((gcry_mpi_cmp_ui (y, 0) == 0) || (gcry_mpi_cmp (y, elgamal_q) >= 
0));
+
+  // tmp <- g^y
+  gcry_mpi_powm (tmp, elgamal_g, y, elgamal_p);
+  // write tmp to c1
+  GNUNET_CRYPTO_mpi_print_unsigned (&result_ciphertext->c1_bits,
+                                    GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, 
tmp);
+  
+  // tmp <- h^y
+  gcry_mpi_powm (tmp, h, y, elgamal_p);
+  // tmp <- tmp * m 
+  gcry_mpi_mulm (tmp, tmp, m, elgamal_p);
+  // write tmp to c2
+  GNUNET_CRYPTO_mpi_print_unsigned (&result_ciphertext->c2_bits,
+                                    GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, 
tmp);
+
+  return GNUNET_OK;
+}
+
+
+void
+GNUNET_SECRETSHARING_decrypt_cancel (struct 
GNUNET_SECRETSHARING_DecryptionHandle *h)
+{
+  GNUNET_MQ_destroy (h->mq);
+  h->mq = NULL;
+  GNUNET_CLIENT_disconnect (h->client);
+  h->client = NULL;
+  GNUNET_free (h);
+}
+
+
+

Modified: gnunet/src/secretsharing/secretsharing_common.c
===================================================================
--- gnunet/src/secretsharing/secretsharing_common.c     2014-01-20 17:17:59 UTC 
(rev 31955)
+++ gnunet/src/secretsharing/secretsharing_common.c     2014-01-20 19:08:47 UTC 
(rev 31956)
@@ -94,7 +94,7 @@
   char *p;
   int n;
 
-  payload_size = ntohs (sh->num_peers) * 
+  payload_size = ntohs (share->num_peers) * 
       (sizeof (uint16_t) + sizeof (struct GNUNET_SECRETSHARING_FieldElement) + 
        sizeof (struct GNUNET_PeerIdentity));
 
@@ -134,3 +134,4 @@
   return GNUNET_OK;
 }
 
+

Modified: gnunet/src/secretsharing/test_secretsharing.conf
===================================================================
--- gnunet/src/secretsharing/test_secretsharing.conf    2014-01-20 17:17:59 UTC 
(rev 31955)
+++ gnunet/src/secretsharing/test_secretsharing.conf    2014-01-20 19:08:47 UTC 
(rev 31956)
@@ -1,6 +1,6 @@
 [secretsharing]
 AUTOSTART = YES
-PREFIX = valgrind
+#PREFIX = valgrind
 
 [consensus]
 AUTOSTART = YES

Modified: gnunet/src/util/Makefile.am
===================================================================
--- gnunet/src/util/Makefile.am 2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/src/util/Makefile.am 2014-01-20 19:08:47 UTC (rev 31956)
@@ -91,6 +91,7 @@
   crypto_hash.c \
   crypto_hkdf.c \
   crypto_kdf.c \
+  crypto_mpi.c \
   crypto_random.c \
   disk.c \
   disk.h \

Modified: gnunet/src/util/crypto_ecc.c
===================================================================
--- gnunet/src/util/crypto_ecc.c        2014-01-20 17:17:59 UTC (rev 31955)
+++ gnunet/src/util/crypto_ecc.c        2014-01-20 19:08:47 UTC (rev 31956)
@@ -133,72 +133,6 @@
 
 
 /**
- * Output the given MPI value to the given buffer.
- *
- * @param buf where to output to
- * @param size number of bytes in @a buf
- * @param val value to write to @a buf
- */
-static void
-mpi_print (unsigned char *buf,
-          size_t size,
-          gcry_mpi_t val)
-{
-  size_t rsize;
-
-  if (gcry_mpi_get_flag (val, GCRYMPI_FLAG_OPAQUE))
-    {
-      /* Store opaque MPIs left aligned into the buffer.  */
-      unsigned int nbits;
-      const void *p;
-
-      p = gcry_mpi_get_opaque (val, &nbits);
-      GNUNET_assert (p);
-      rsize = (nbits+7)/8;
-      if (rsize > size)
-        rsize = size;
-      memcpy (buf, p, rsize);
-      if (rsize < size)
-        memset (buf+rsize, 0, size - rsize);
-    }
-  else
-    {
-      /* Store regular MPIs as unsigned integers right aligned into
-         the buffer.  */
-      rsize = size;
-      GNUNET_assert (0 ==
-                     gcry_mpi_print (GCRYMPI_FMT_USG, buf, rsize, &rsize,
-                                     val));
-      adjust (buf, rsize, size);
-    }
-}
-
-
-/**
- * Convert data buffer into MPI value.
- *
- * @param result where to store MPI value (allocated)
- * @param data raw data (GCRYMPI_FMT_USG)
- * @param size number of bytes in @a data
- */
-static void
-mpi_scan (gcry_mpi_t *result,
-         const unsigned char *data,
-         size_t size)
-{
-  int rc;
-
-  if (0 != (rc = gcry_mpi_scan (result,
-                               GCRYMPI_FMT_USG,
-                               data, size, &size)))
-  {
-    LOG_GCRY (GNUNET_ERROR_TYPE_ERROR, "gcry_mpi_scan", rc);
-    GNUNET_assert (0);
-  }
-}
-
-
-/**
  * Convert the given private key from the network format to the
  * S-expression that can be used by libgcrypt.
  *
@@ -317,7 +251,7 @@
   gcry_sexp_release (sexp);
   q = gcry_mpi_ec_get_mpi ("address@hidden", ctx, 0);
   GNUNET_assert (q);
-  mpi_print (pub->q_y, sizeof (pub->q_y), q);
+  GNUNET_CRYPTO_mpi_print_unsigned (pub->q_y, sizeof (pub->q_y), q);
   gcry_mpi_release (q);
   gcry_ctx_release (ctx);
 }
@@ -343,7 +277,7 @@
   gcry_sexp_release (sexp);
   q = gcry_mpi_ec_get_mpi ("address@hidden", ctx, 0);
   GNUNET_assert (q);
-  mpi_print (pub->q_y, sizeof (pub->q_y), q);
+  GNUNET_CRYPTO_mpi_print_unsigned (pub->q_y, sizeof (pub->q_y), q);
   gcry_mpi_release (q);
   gcry_ctx_release (ctx);
 }
@@ -369,7 +303,7 @@
   gcry_sexp_release (sexp);
   q = gcry_mpi_ec_get_mpi ("address@hidden", ctx, 0);
   GNUNET_assert (q);
-  mpi_print (pub->q_y, sizeof (pub->q_y), q);
+  GNUNET_CRYPTO_mpi_print_unsigned (pub->q_y, sizeof (pub->q_y), q);
   gcry_mpi_release (q);
   gcry_ctx_release (ctx);
 }
@@ -578,7 +512,7 @@
   }
   gcry_sexp_release (priv_sexp);
   priv = GNUNET_new (struct GNUNET_CRYPTO_EcdhePrivateKey);
-  mpi_print (priv->d, sizeof (priv->d), d);
+  GNUNET_CRYPTO_mpi_print_unsigned (priv->d, sizeof (priv->d), d);
   gcry_mpi_release (d);
   return priv;
 }
@@ -628,7 +562,7 @@
   }
   gcry_sexp_release (priv_sexp);
   priv = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPrivateKey);
-  mpi_print (priv->d, sizeof (priv->d), d);
+  GNUNET_CRYPTO_mpi_print_unsigned (priv->d, sizeof (priv->d), d);
   gcry_mpi_release (d);
   return priv;
 }
@@ -677,7 +611,7 @@
   }
   gcry_sexp_release (priv_sexp);
   priv = GNUNET_new (struct GNUNET_CRYPTO_EddsaPrivateKey);
-  mpi_print (priv->d, sizeof (priv->d), d);
+  GNUNET_CRYPTO_mpi_print_unsigned (priv->d, sizeof (priv->d), d);
   gcry_mpi_release (d);
   return priv;
 }
@@ -700,7 +634,7 @@
 
   if (once)
     return &anonymous;
-  mpi_print (anonymous.d,
+  GNUNET_CRYPTO_mpi_print_unsigned (anonymous.d,
             sizeof (anonymous.d),
             GCRYMPI_CONST_ONE);
   once = 1;
@@ -1222,8 +1156,8 @@
     return GNUNET_SYSERR;
   }
   gcry_sexp_release (sig_sexp);
-  mpi_print (sig->r, sizeof (sig->r), rs[0]);
-  mpi_print (sig->s, sizeof (sig->s), rs[1]);
+  GNUNET_CRYPTO_mpi_print_unsigned (sig->r, sizeof (sig->r), rs[0]);
+  GNUNET_CRYPTO_mpi_print_unsigned (sig->s, sizeof (sig->s), rs[1]);
   gcry_mpi_release (rs[0]);
   gcry_mpi_release (rs[1]);
   return GNUNET_OK;
@@ -1272,8 +1206,8 @@
     return GNUNET_SYSERR;
   }
   gcry_sexp_release (sig_sexp);
-  mpi_print (sig->r, sizeof (sig->r), rs[0]);
-  mpi_print (sig->s, sizeof (sig->s), rs[1]);
+  GNUNET_CRYPTO_mpi_print_unsigned (sig->r, sizeof (sig->r), rs[0]);
+  GNUNET_CRYPTO_mpi_print_unsigned (sig->s, sizeof (sig->s), rs[1]);
   gcry_mpi_release (rs[0]);
   gcry_mpi_release (rs[1]);
   return GNUNET_OK;
@@ -1425,7 +1359,7 @@
   q = gcry_mpi_ec_get_point ("q", ctx, 0);
 
   /* second, extract the d value from our private key */
-  mpi_scan (&d, priv->d, sizeof (priv->d));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&d, priv->d, sizeof (priv->d));
 
   /* then call the 'multiply' function, to compute the product */
   result = gcry_mpi_point_new (0);
@@ -1447,7 +1381,7 @@
 
   rsize = sizeof (xbuf);
   GNUNET_assert (! gcry_mpi_get_flag (result_x, GCRYMPI_FLAG_OPAQUE));
-  /* result_x can be negative here, so we do not use 'mpi_print'
+  /* result_x can be negative here, so we do not use 
'GNUNET_CRYPTO_mpi_print_unsigned'
      as that does not include the sign bit; x should be a 255-bit
      value, so with the sign it should fit snugly into the 256-bit
      xbuf */
@@ -1484,7 +1418,7 @@
                     label, strlen (label),
                     context, strlen (context),
                     NULL, 0);
-  mpi_scan (&h, (unsigned char *) &hc, sizeof (hc));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&h, (unsigned char *) &hc, sizeof (hc));
   return h;
 }
 
@@ -1520,7 +1454,7 @@
   GNUNET_CRYPTO_ecdsa_key_get_public (priv, &pub);
 
   h = derive_h (&pub, label, context);
-  mpi_scan (&x, priv->d, sizeof (priv->d));
+  GNUNET_CRYPTO_mpi_scan_unsigned (&x, priv->d, sizeof (priv->d));
   d = gcry_mpi_new (256);
   gcry_mpi_mulm (d, h, x, n);
   gcry_mpi_release (h);
@@ -1528,7 +1462,7 @@
   gcry_mpi_release (n);
   gcry_ctx_release (ctx);
   ret = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPrivateKey);
-  mpi_print (ret->d, sizeof (ret->d), d);
+  GNUNET_CRYPTO_mpi_print_unsigned (ret->d, sizeof (ret->d), d);
   gcry_mpi_release (d);
   return ret;
 }
@@ -1588,7 +1522,7 @@
   gcry_mpi_point_release (v);
   q_y = gcry_mpi_ec_get_mpi ("address@hidden", ctx, 0);
   GNUNET_assert (q_y);
-  mpi_print (result->q_y, sizeof result->q_y, q_y);
+  GNUNET_CRYPTO_mpi_print_unsigned (result->q_y, sizeof result->q_y, q_y);
   gcry_mpi_release (q_y);
   gcry_ctx_release (ctx);
 }

Added: gnunet/src/util/crypto_mpi.c
===================================================================
--- gnunet/src/util/crypto_mpi.c                                (rev 0)
+++ gnunet/src/util/crypto_mpi.c        2014-01-20 19:08:47 UTC (rev 31956)
@@ -0,0 +1,132 @@
+/*
+     This file is part of GNUnet.
+     (C) 2012, 2013 Christian Grothoff (and other contributing authors)
+
+     GNUnet is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     GNUnet is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with GNUnet; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+*/
+
+/**
+ * @file util/crypto_mpi.c
+ * @brief Helper functions for libgcrypt MPIs
+ * @author Christian Grothoff
+ * @author Florian Dold
+ */
+#include "platform.h"
+#include <gcrypt.h>
+#include "gnunet_util_lib.h"
+
+
+#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
+
+/**
+ * Log an error message at log-level 'level' that indicates
+ * a failure of the command 'cmd' with the message given
+ * by gcry_strerror(rc).
+ */
+#define LOG_GCRY(level, cmd, rc) do { LOG(level, _("`%s' failed at %s:%d with 
error: %s\n"), cmd, __FILE__, __LINE__, gcry_strerror(rc)); } while(0)
+
+
+/**
+ * If target != size, move @a target bytes to the end of the size-sized
+ * buffer and zero out the first @a target - @a size bytes.
+ *
+ * @param buf original buffer
+ * @param size number of bytes in @a buf
+ * @param target target size of the buffer
+ */
+static void
+adjust (void *buf,
+       size_t size,
+       size_t target)
+{
+  if (size < target)
+  {
+    memmove (&buf[target - size], buf, size);
+    memset (buf, 0, target - size);
+  }
+}
+
+
+/**
+ * Output the given MPI value to the given buffer in
+ * network byte order.
+ * The MPI @a val may not be negative.
+ *
+ * @param buf where to output to
+ * @param size number of bytes in @a buf
+ * @param val value to write to @a buf
+ */
+void
+GNUNET_CRYPTO_mpi_print_unsigned (void *buf,
+                                  size_t size,
+                                  gcry_mpi_t val)
+{
+  size_t rsize;
+
+  if (gcry_mpi_get_flag (val, GCRYMPI_FLAG_OPAQUE))
+  {
+    /* Store opaque MPIs left aligned into the buffer.  */
+    unsigned int nbits;
+    const void *p;
+
+    p = gcry_mpi_get_opaque (val, &nbits);
+    GNUNET_assert (p);
+    rsize = (nbits+7)/8;
+    if (rsize > size)
+      rsize = size;
+    memcpy (buf, p, rsize);
+    if (rsize < size)
+      memset (buf+rsize, 0, size - rsize);
+  }
+  else
+  {
+    /* Store regular MPIs as unsigned integers right aligned into
+       the buffer.  */
+    rsize = size;
+    GNUNET_assert (0 ==
+                   gcry_mpi_print (GCRYMPI_FMT_USG, buf, rsize, &rsize,
+                                   val));
+    adjust (buf, rsize, size);
+  }
+}
+
+
+/**
+ * Convert data buffer into MPI value.
+ * The buffer is interpreted as network
+ * byte order, unsigned integer.
+ *
+ * @param result where to store MPI value (allocated)
+ * @param data raw data (GCRYMPI_FMT_USG)
+ * @param size number of bytes in @a data
+ */
+void
+GNUNET_CRYPTO_mpi_scan_unsigned (gcry_mpi_t *result,
+                                 const void *data,
+                                 size_t size)
+{
+  int rc;
+
+  if (0 != (rc = gcry_mpi_scan (result,
+                               GCRYMPI_FMT_USG,
+                               data, size, &size)))
+  {
+    LOG_GCRY (GNUNET_ERROR_TYPE_ERROR, "gcry_mpi_scan", rc);
+    GNUNET_assert (0);
+  }
+}
+
+/* end of crypto_mpi.c */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]