mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Allow cpuworkers to exist without onion keys
Now that we allow cpuworkers for dirport-only hosts (to fix 23693), we need to allow dup_onion_keys() to succeed for them. The change to construct_ntor_key_map() is for correctness, but is not strictly necessary.
This commit is contained in:
parent
386f8016b7
commit
c3e40a8361
@ -131,7 +131,8 @@ get_onion_key(void)
|
||||
}
|
||||
|
||||
/** Store a full copy of the current onion key into *<b>key</b>, and a full
|
||||
* copy of the most recent onion key into *<b>last</b>.
|
||||
* copy of the most recent onion key into *<b>last</b>. Store NULL into
|
||||
* a pointer if the corresponding key does not exist.
|
||||
*/
|
||||
void
|
||||
dup_onion_keys(crypto_pk_t **key, crypto_pk_t **last)
|
||||
@ -139,8 +140,10 @@ dup_onion_keys(crypto_pk_t **key, crypto_pk_t **last)
|
||||
tor_assert(key);
|
||||
tor_assert(last);
|
||||
tor_mutex_acquire(key_lock);
|
||||
tor_assert(onionkey);
|
||||
*key = crypto_pk_copy_full(onionkey);
|
||||
if (onionkey)
|
||||
*key = crypto_pk_copy_full(onionkey);
|
||||
else
|
||||
*last = NULL;
|
||||
if (lastonionkey)
|
||||
*last = crypto_pk_copy_full(lastonionkey);
|
||||
else
|
||||
@ -207,10 +210,14 @@ construct_ntor_key_map(void)
|
||||
{
|
||||
di_digest256_map_t *m = NULL;
|
||||
|
||||
dimap_add_entry(&m,
|
||||
curve25519_onion_key.pubkey.public_key,
|
||||
tor_memdup(&curve25519_onion_key,
|
||||
sizeof(curve25519_keypair_t)));
|
||||
if (!tor_mem_is_zero((const char*)
|
||||
curve25519_onion_key.pubkey.public_key,
|
||||
CURVE25519_PUBKEY_LEN)) {
|
||||
dimap_add_entry(&m,
|
||||
curve25519_onion_key.pubkey.public_key,
|
||||
tor_memdup(&curve25519_onion_key,
|
||||
sizeof(curve25519_keypair_t)));
|
||||
}
|
||||
if (!tor_mem_is_zero((const char*)
|
||||
last_curve25519_onion_key.pubkey.public_key,
|
||||
CURVE25519_PUBKEY_LEN)) {
|
||||
|
Loading…
Reference in New Issue
Block a user