|
@@ -392,17 +392,18 @@ networkstatus_check_consensus_signature(networkstatus_t *consensus,
|
|
|
{
|
|
|
if (!voter->good_signature && !voter->bad_signature && voter->signature) {
|
|
|
|
|
|
+ int is_v3_auth = trusteddirserver_get_by_v3_auth_digest(
|
|
|
+ voter->identity_digest) != NULL;
|
|
|
authority_cert_t *cert =
|
|
|
authority_cert_get_by_digests(voter->identity_digest,
|
|
|
voter->signing_key_digest);
|
|
|
- if (! cert) {
|
|
|
- if (!trusteddirserver_get_by_v3_auth_digest(voter->identity_digest)) {
|
|
|
- smartlist_add(unrecognized, voter);
|
|
|
- ++n_unknown;
|
|
|
- } else {
|
|
|
- smartlist_add(need_certs_from, voter);
|
|
|
- ++n_missing_key;
|
|
|
- }
|
|
|
+ if (!is_v3_auth) {
|
|
|
+ smartlist_add(unrecognized, voter);
|
|
|
+ ++n_unknown;
|
|
|
+ continue;
|
|
|
+ } else if (!cert) {
|
|
|
+ smartlist_add(need_certs_from, voter);
|
|
|
+ ++n_missing_key;
|
|
|
continue;
|
|
|
}
|
|
|
if (networkstatus_check_voter_signature(consensus, voter, cert) < 0) {
|