The old flavored consensus URL format made it harder to decode URLs
based on their prefixes, and didn't take into account our "only give
it to me if it's signed by enough authorities" stuff.
The point of doing SHA256 twice is, generally, is to prevent message
extension attacks where an attacker who knows H(A) can calculate
H(A|B). But for attaching a signature to a document, the attacker
already _knows_ A, so trying to keep them from calculating H(A|B) is
pointless.
This patch introduces a new type called document_signature_t to represent the
signature of a consensus document. Now, each consensus document can have up
to one document signature per voter per digest algorithm. Also, each
detached-signatures document can have up to one signature per <voter,
algorithm, flavor>.
Previously, we insisted that a valid signature must be a signature of
the expected digest. Now we accept anything that starts with the
expected digest. This lets us include another digest later.
When we tried to use the deprecated non-threadsafe evdns
interfaces in Libevent 2 without using the also-deprecated
event_init() interface, Libevent 2 would sensibly crash, since it
has no guess where to find the Libevent library.
Here we use the evdns_base_*() functions instead if they're
present, and fake them if they aren't.
* debian-merge: (52 commits)
Ship debian source with src/test/test.h
New testsuite location
New upstream version
Fix testsuite call.
bump to 0.2.2.4-alpha
Don't set unreachable from dirvote unless we've been running a while.
correct the spec for the stream_bw event.
fix a bug where we were decrementing the wrong bucket
remove some dead code. some of it was tickling coverity.
add blurbs for recent alpha releases
Fix a memleak when throwing away some build times
amend changelog for recent commits, plus clean up
Tweak an assert that shouldn't fire either way.
Tweak values for when to discard all of our history.
Remove another overzealous assert.
try to stem the 'sea of fail'
fix the wiki link in doc pages. remove obsolete FAQ.
Ignore one-hop circuits for circuit timeout calc
Move Tonga to an alternate IP address
update spec to reflect change in Fast definition
...
Upstream failed to ship src/test/test.h. Ship it in debian/ and
manually copy it in place during configure and clean up in clean. Let's
not use the patch system as this will most likely be rectified by next
release.