patch from karsten to not use or accept expired certs. fixes bug 851.

svn:r17208
This commit is contained in:
Nick Mathewson 2008-11-07 13:38:49 +00:00
parent 311b8b274c
commit a15bdd3edd
3 changed files with 8 additions and 1 deletions

View File

@ -12,6 +12,8 @@ Changes in version 0.2.1.7-alpha - 2008-11-07
detailed logging on credential switching, set CREDENTIAL_LOG_LEVEL
in common/compat.c to LOG_NOTICE or higher. Patch by Jacob Appelbaum
and Steven Murdoch.
- Do not use or believe expired certificates. Patch from Karsten.
Fixes bug 851.
o Minor features:
- Now NodeFamily and MyFamily config options allow spaces in

View File

@ -1568,6 +1568,7 @@ dirvote_perform_vote(void)
networkstatus_t *ns;
char *contents;
pending_vote_t *pending_vote;
time_t now = time(NULL);
int status;
const char *msg = "";
@ -1575,6 +1576,9 @@ dirvote_perform_vote(void)
if (!cert || !key) {
log_warn(LD_NET, "Didn't find key/certificate to generate v3 vote");
return -1;
} else if (now < cert->expires) {
log_warn(LD_NET, "Can't generate v3 vote with expired certificate");
return -1;
}
if (!(ns = dirserv_generate_networkstatus_vote_obj(key, cert)))
return -1;

View File

@ -387,6 +387,7 @@ networkstatus_check_consensus_signature(networkstatus_t *consensus,
smartlist_t *unrecognized = smartlist_create();
smartlist_t *missing_authorities = smartlist_create();
int severity;
time_t now = time(NULL);
tor_assert(consensus->type == NS_TYPE_CONSENSUS);
@ -403,7 +404,7 @@ networkstatus_check_consensus_signature(networkstatus_t *consensus,
smartlist_add(unrecognized, voter);
++n_unknown;
continue;
} else if (!cert) {
} else if (!cert || now > cert->expires) {
smartlist_add(need_certs_from, voter);
++n_missing_key;
continue;