Ignore carriage returns when parsing descriptors
There are some (very old) server descriptors containing carriage returns in their contact line, more precisely in a full PGP key block. I'm attaching one such descriptor to this ticket.
It's unclear if carriage returns are permitted by dir-spec.txt. It does say
"ArgumentChar ::= any printing ASCII character except NL.", but we know that Tor accepts non-ASCII characters in contact or platform lines, too. So, I guess the only non-permitted character is NL.
In metrics-lib, we parse descriptors using
BufferedReader.readLine() which treats
\r\n all the same. We may have to write our own
readLine() replacement that only accepts
\n as line end.
This may also affect stem's descriptor parser.