summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-11-10 10:43:28 -0500
committerNick Mathewson <nickm@torproject.org>2016-12-08 16:47:58 -0500
commit2cdd24ddd69a3cde2deae3eb69c24ae179d83834 (patch)
tree41932796b553f4152be99e6bd46661ca842ea0da /src
parentae6b73e847c64b7902a259f9f43f056ab41c0eb4 (diff)
downloadtor-2cdd24ddd69a3cde2deae3eb69c24ae179d83834.tar.gz
tor-2cdd24ddd69a3cde2deae3eb69c24ae179d83834.zip
Helper function for logging ed25519 public keys.
Diffstat (limited to 'src')
-rw-r--r--src/common/crypto_format.c16
-rw-r--r--src/common/crypto_format.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/src/common/crypto_format.c b/src/common/crypto_format.c
index 2f6d847c83..483013ee68 100644
--- a/src/common/crypto_format.c
+++ b/src/common/crypto_format.c
@@ -161,6 +161,22 @@ 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
+ * 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);
+ } else {
+ strlcpy(formatted, "<null>", sizeof(formatted));
+ }
+ return formatted;
+}
+
/** Try to decode the string <b>input</b> into an ed25519 public key. On
* success, store the value in <b>pkey</b> and return 0. Otherwise return
* -1. */
diff --git a/src/common/crypto_format.h b/src/common/crypto_format.h
index 012e228cc4..86c29d319c 100644
--- a/src/common/crypto_format.h
+++ b/src/common/crypto_format.h
@@ -28,6 +28,7 @@ int ed25519_public_from_base64(ed25519_public_key_t *pkey,
const char *input);
int ed25519_public_to_base64(char *output,
const ed25519_public_key_t *pkey);
+const char *ed25519_fmt(const ed25519_public_key_t *pkey);
/* XXXX move these to crypto_format.h */
#define ED25519_SIG_BASE64_LEN 86