diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-07-23 08:26:44 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-07-23 08:26:44 -0400 |
commit | b3112a6d26d4f142e3007994ce8da6d7517287bb (patch) | |
tree | fd555d9408056d22ce467e22a08ffc83a9b555c7 /src/feature/dirauth/dirvote.c | |
parent | 9cd20e82763af43424085cf651dd4b08e69967e1 (diff) | |
parent | 8763d96d20f33ca7367effb77fb5d7ab30c39766 (diff) | |
download | tor-b3112a6d26d4f142e3007994ce8da6d7517287bb.tar.gz tor-b3112a6d26d4f142e3007994ce8da6d7517287bb.zip |
Merge branch 'remove-padding-fix-7869-v2'
Diffstat (limited to 'src/feature/dirauth/dirvote.c')
-rw-r--r-- | src/feature/dirauth/dirvote.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/feature/dirauth/dirvote.c b/src/feature/dirauth/dirvote.c index c3ab6fae15..080edd92f1 100644 --- a/src/feature/dirauth/dirvote.c +++ b/src/feature/dirauth/dirvote.c @@ -3848,11 +3848,10 @@ dirvote_create_microdescriptor(const routerinfo_t *ri, int consensus_method) smartlist_add_asprintf(chunks, "onion-key\n%s", key); if (ri->onion_curve25519_pkey) { - char kbuf[128]; - base64_encode(kbuf, sizeof(kbuf), - (const char*)ri->onion_curve25519_pkey->public_key, - CURVE25519_PUBKEY_LEN, BASE64_ENCODE_MULTILINE); - smartlist_add_asprintf(chunks, "ntor-onion-key %s", kbuf); + char kbuf[CURVE25519_BASE64_PADDED_LEN + 1]; + bool add_padding = (consensus_method < MIN_METHOD_FOR_UNPADDED_NTOR_KEY); + curve25519_public_to_base64(kbuf, ri->onion_curve25519_pkey, add_padding); + smartlist_add_asprintf(chunks, "ntor-onion-key %s\n", kbuf); } if (family) { @@ -3963,6 +3962,8 @@ static const struct consensus_method_range_t { {MIN_SUPPORTED_CONSENSUS_METHOD, MIN_METHOD_FOR_CANONICAL_FAMILIES_IN_MICRODESCS - 1}, {MIN_METHOD_FOR_CANONICAL_FAMILIES_IN_MICRODESCS, + MIN_METHOD_FOR_UNPADDED_NTOR_KEY - 1}, + {MIN_METHOD_FOR_UNPADDED_NTOR_KEY, MAX_SUPPORTED_CONSENSUS_METHOD}, {-1, -1} }; |