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.
This commit is contained in:
Nick Mathewson 2017-01-02 12:31:15 -05:00
parent 97ed2ce085
commit 6aac6c6bee
2 changed files with 13 additions and 4 deletions

4
changes/ticket21037 Normal file
View File

@ -0,0 +1,4 @@
o Minor features (logging):
- In several places, describe unset ed25519 keys as "<unset>", rather
than "AAAAAAAA...AAA". Closes ticket 21037.

View File

@ -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));
}