diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java index c9bace8aa7487e162bbe98fdc2029eafc860f33b..74ae27d02dda23a524eaa291b6d6aceaf1aad131 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java @@ -33,9 +33,14 @@ abstract class FilterDefinitionElement { * Utility method to create a Hash object from a .b32 string */ protected static Hash fromBase32(String b32) throws InvalidDefinitionException { + if (b32.length() != 60) + throw new InvalidDefinitionException("Invalid b32 " + b32); if (!b32.endsWith(".b32.i2p")) throw new InvalidDefinitionException("Invalid b32 " + b32); - b32 = b32.substring(0, b32.length() - 8); - return new Hash(Base32.decode(b32)); + String s = b32.substring(0, 52); + byte[] b = Base32.decode(s); + if (b == null) + throw new InvalidDefinitionException("Invalid b32 " + b32); + return Hash.create(b); } }