[tor-commits] [metrics-lib/master] Fix legacy-dir-key line parsing in votes.
karsten at torproject.org
karsten at torproject.org
Sat Feb 25 12:03:45 UTC 2012
commit 8664260c1f63381d81ebdd5fddeedb300afe29d5
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Fri Feb 17 07:48:53 2012 +0100
Fix legacy-dir-key line parsing in votes.
---
.../descriptor/RelayNetworkStatusVote.java | 6 ++--
.../impl/RelayNetworkStatusVoteImpl.java | 14 +++++-----
.../impl/RelayNetworkStatusVoteImplTest.java | 24 ++++++++++++++++++++
3 files changed, 34 insertions(+), 10 deletions(-)
diff --git a/src/org/torproject/descriptor/RelayNetworkStatusVote.java b/src/org/torproject/descriptor/RelayNetworkStatusVote.java
index 3dd82bc..f9635e2 100644
--- a/src/org/torproject/descriptor/RelayNetworkStatusVote.java
+++ b/src/org/torproject/descriptor/RelayNetworkStatusVote.java
@@ -68,9 +68,9 @@ public interface RelayNetworkStatusVote extends Descriptor {
/* Return the directory key certificate version. */
public int getDirKeyCertificateVersion();
- /* Return the legacy key or null if the directory authority does not use
- * a legacy key. */
- public String getLegacyKey();
+ /* Return the legacy dir key or null if the directory authority does not
+ * use a legacy dir key. */
+ public String getLegacyDirKey();
/* Return the directory key publication timestamp. */
public long getDirKeyPublishedMillis();
diff --git a/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java b/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java
index 3729f75..a00cd75 100644
--- a/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java
@@ -255,8 +255,8 @@ public class RelayNetworkStatusVoteImpl extends NetworkStatusImpl
this.parseDirAddressLine(line, parts);
} else if (keyword.equals("fingerprint")) {
this.parseFingerprintLine(line, parts);
- } else if (keyword.equals("legacy-key")) {
- this.parseLegacyKeyLine(line, parts);
+ } else if (keyword.equals("legacy-dir-key")) {
+ this.parseLegacyDirKeyLine(line, parts);
} else if (keyword.equals("dir-key-published")) {
this.parseDirKeyPublished(line, parts);
} else if (keyword.equals("dir-key-expires")) {
@@ -349,12 +349,12 @@ public class RelayNetworkStatusVoteImpl extends NetworkStatusImpl
ParseHelper.parseTwentyByteHexString(line, parts[1]);
}
- private void parseLegacyKeyLine(String line, String[] parts)
+ private void parseLegacyDirKeyLine(String line, String[] parts)
throws DescriptorParseException {
if (parts.length != 2) {
throw new DescriptorParseException("Illegal line '" + line + "'.");
}
- this.legacyKey = ParseHelper.parseTwentyByteHexString(line, parts[2]);
+ this.legacyDirKey = ParseHelper.parseTwentyByteHexString(line, parts[1]);
}
private void parseDirKeyPublished(String line, String[] parts)
@@ -430,9 +430,9 @@ public class RelayNetworkStatusVoteImpl extends NetworkStatusImpl
return this.dirKeyCertificateVersion;
}
- private String legacyKey;
- public String getLegacyKey() {
- return this.legacyKey;
+ private String legacyDirKey;
+ public String getLegacyDirKey() {
+ return this.legacyDirKey;
}
private long dirKeyPublishedMillis;
diff --git a/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java b/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
index e907086..8a60eec 100644
--- a/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
+++ b/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
@@ -146,6 +146,14 @@ public class RelayNetworkStatusVoteImplTest {
vb.contactLine = line;
return new RelayNetworkStatusVoteImpl(vb.buildVote(), true);
}
+ private String legacyDirKeyLine = null;
+ private static RelayNetworkStatusVote
+ createWithLegacyDirKeyLine(String line)
+ throws DescriptorParseException {
+ VoteBuilder vb = new VoteBuilder();
+ vb.legacyDirKeyLine = line;
+ return new RelayNetworkStatusVoteImpl(vb.buildVote(), true);
+ }
private String dirKeyCertificateVersionLine =
"dir-key-certificate-version 3";
private static RelayNetworkStatusVote
@@ -394,6 +402,9 @@ public class RelayNetworkStatusVoteImplTest {
if (this.contactLine != null) {
sb.append(this.contactLine + "\n");
}
+ if (this.legacyDirKeyLine != null) {
+ sb.append(this.legacyDirKeyLine + "\n");
+ }
if (this.dirKeyCertificateVersionLine != null) {
sb.append(this.dirKeyCertificateVersionLine + "\n");
}
@@ -902,6 +913,19 @@ public class RelayNetworkStatusVoteImplTest {
+ "Appelbaum <jacob at appelbaum.net>");
}
+ @Test()
+ public void testLegacyDirKeyLine() throws DescriptorParseException {
+ RelayNetworkStatusVote vote = VoteBuilder.createWithLegacyDirKeyLine(
+ "legacy-dir-key 81349FC1F2DBA2C2C11B45CB9706637D480AB913");
+ assertEquals("81349FC1F2DBA2C2C11B45CB9706637D480AB913",
+ vote.getLegacyDirKey());
+ }
+
+ @Test(expected = DescriptorParseException.class)
+ public void testLegacyDirKeyLineNoId() throws DescriptorParseException {
+ VoteBuilder.createWithLegacyDirKeyLine("legacy-dir-key ");
+ }
+
@Test(expected = DescriptorParseException.class)
public void testDirKeyCertificateVersionLineMissing()
throws DescriptorParseException {
More information about the tor-commits
mailing list