Consider replacing RelayNetworkStatusVote's getDirectorySignatures() with getDirectorySignature()
(nickm, there's a dir-spec-related question below that you might have an answer to.)
dir-spec.txt says:
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.