[tor-commits] [tor/master] Make ed25519_fmt() log 0-valued keys more nicely.

nickm at torproject.org nickm at torproject.org
Wed Jan 11 14:17:28 UTC 2017


commit 6aac6c6beef52e1a655fe64aaf5fc7ab756e76e1
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Jan 2 12:31:15 2017 -0500

    Make ed25519_fmt() log 0-valued keys more nicely.
    
    Because <unset> makes more sense than AAAAAAAAAAAAAAAAAAA...
    
    (I have indeed verified that ed25519_fmt() is only used for
    logging. This patch also clarifies the intention that ed25519_fmt()
    is only for logging.
    
    Closes ticket 21037.
---
 changes/ticket21037        |  4 ++++
 src/common/crypto_format.c | 13 +++++++++----
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/changes/ticket21037 b/changes/ticket21037
new file mode 100644
index 0000000..8507b88
--- /dev/null
+++ b/changes/ticket21037
@@ -0,0 +1,4 @@
+  o Minor features (logging):
+    - In several places, describe unset ed25519 keys as "<unset>", rather
+      than "AAAAAAAA...AAA". Closes ticket 21037.
+
diff --git a/src/common/crypto_format.c b/src/common/crypto_format.c
index 483013e..aa2a9d1 100644
--- a/src/common/crypto_format.c
+++ b/src/common/crypto_format.c
@@ -161,16 +161,21 @@ curve25519_public_from_base64(curve25519_public_key_t *pkey,
   }
 }
 
-/** For convenience: Convert <b>pkey</b> to a statically allocated base64
- * string and return it. Not threadsafe. Subsequent calls invalidate
+/** For logging convenience: Convert <b>pkey</b> to a statically allocated
+ * base64 string and return it. Not threadsafe. Format not meant to be
+ * computer-readable; it may change in the future. Subsequent calls invalidate
  * previous returns. */
 const char *
 ed25519_fmt(const ed25519_public_key_t *pkey)
 {
   static char formatted[ED25519_BASE64_LEN+1];
   if (pkey) {
-    int r = ed25519_public_to_base64(formatted, pkey);
-    tor_assert(!r);
+    if (ed25519_public_key_is_zero(pkey)) {
+      strlcpy(formatted, "<unset>", sizeof(formatted));
+    } else {
+      int r = ed25519_public_to_base64(formatted, pkey);
+      tor_assert(!r);
+    }
   } else {
     strlcpy(formatted, "<null>", sizeof(formatted));
   }





More information about the tor-commits mailing list