Consider replacing RelayNetworkStatusVote's getDirectorySignatures() with getDirectorySignature()
(nickm, there's a dir-spec-related question below that you might have an answer to.)
The signature contains the following item, which appears Exactly Once for a vote, and At Least Once for a consensus. "directory-signature" [SP Algorithm] SP identity SP signing-key-digest NL Signature
Is that still true, or can there be multiple such lines for different algorithms?
Assuming this is still true, the following method that we're providing in
RelayNetworkStatusVote is confusing:
/* Return directory signatures. */ public SortedMap<String, DirectorySignature> getDirectorySignatures();
It's confusing to return a map of directory signatures when there can only be one such signature. We should instead make sure that there's exactly one such signature and then return it in a new method:
/* Return directory signature. */ public DirectorySignature getDirectorySignature();
We should also deprecate the existing method and suggest to use the new method instead.
But let's first find out whether there can really only be one signature per vote. And if there can be multiple signatures for different digest algorithms, we might have to think harder how to provide that in a method.