Loading src/main/java/org/torproject/descriptor/NetworkStatusEntry.java +8 −0 Original line number Diff line number Diff line Loading @@ -191,4 +191,12 @@ public interface NetworkStatusEntry extends Serializable { * @since 1.1.0 */ String getMasterKeyEd25519(); /** * Return the server's supported consensus methods, or null if the status * entry didn't contain this information or if the status is not a vote. * * @since 1.2.20 */ String getSupportedConsensusMethods(); } src/main/java/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java +20 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,7 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry { private void parseMLine(String line, String[] parts) throws DescriptorParseException { boolean isValid = true; if (this.microdescriptorDigests == null) { this.microdescriptorDigests = new HashSet<>(); } Loading @@ -292,6 +293,17 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry { ParseHelper.verifyThirtyTwoByteBase64String(line, parts[2].substring(7)); this.microdescriptorDigests.add(parts[2].substring(7)); this.supportedConsensusMethods = parts[1]; String[] methods = parts[1].split(",", -1); for (String method : methods) { if (method.length() < 1) { isValid = false; break; } } } if (!isValid) { throw new DescriptorParseException("Illegal line '" + line + "'."); } } Loading Loading @@ -451,4 +463,12 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry { public String getMasterKeyEd25519() { return this.masterKeyEd25519; } private String supportedConsensusMethods; @Override public String getSupportedConsensusMethods() { return this.supportedConsensusMethods; } } src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -718,6 +718,7 @@ public class RelayNetworkStatusVoteImplTest { nse.getVersion()); assertTrue(nse.getMicrodescriptorDigestsSha256Base64().contains( "9ciEx9t0McXk9A06I7qwN7pxuNOdpCP64RV/6cx2Zkc")); assertEquals("8,9,10,11", nse.getSupportedConsensusMethods()); assertEquals(3, vote.getDirKeyCertificateVersion()); assertEquals("80550987E1D626E3EBA5E5E75A458DE0626D088C", vote.getIdentity()); Loading Loading
src/main/java/org/torproject/descriptor/NetworkStatusEntry.java +8 −0 Original line number Diff line number Diff line Loading @@ -191,4 +191,12 @@ public interface NetworkStatusEntry extends Serializable { * @since 1.1.0 */ String getMasterKeyEd25519(); /** * Return the server's supported consensus methods, or null if the status * entry didn't contain this information or if the status is not a vote. * * @since 1.2.20 */ String getSupportedConsensusMethods(); }
src/main/java/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java +20 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,7 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry { private void parseMLine(String line, String[] parts) throws DescriptorParseException { boolean isValid = true; if (this.microdescriptorDigests == null) { this.microdescriptorDigests = new HashSet<>(); } Loading @@ -292,6 +293,17 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry { ParseHelper.verifyThirtyTwoByteBase64String(line, parts[2].substring(7)); this.microdescriptorDigests.add(parts[2].substring(7)); this.supportedConsensusMethods = parts[1]; String[] methods = parts[1].split(",", -1); for (String method : methods) { if (method.length() < 1) { isValid = false; break; } } } if (!isValid) { throw new DescriptorParseException("Illegal line '" + line + "'."); } } Loading Loading @@ -451,4 +463,12 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry { public String getMasterKeyEd25519() { return this.masterKeyEd25519; } private String supportedConsensusMethods; @Override public String getSupportedConsensusMethods() { return this.supportedConsensusMethods; } }
src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -718,6 +718,7 @@ public class RelayNetworkStatusVoteImplTest { nse.getVersion()); assertTrue(nse.getMicrodescriptorDigestsSha256Base64().contains( "9ciEx9t0McXk9A06I7qwN7pxuNOdpCP64RV/6cx2Zkc")); assertEquals("8,9,10,11", nse.getSupportedConsensusMethods()); assertEquals(3, vote.getDirKeyCertificateVersion()); assertEquals("80550987E1D626E3EBA5E5E75A458DE0626D088C", vote.getIdentity()); Loading