Add an IDN equals method to check names

This commit is contained in:
Rene Treffer 2014-04-03 10:28:24 +02:00
parent 7d086eaf1a
commit 8a8a7f3b0d
1 changed files with 14 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.net.IDN; import java.net.IDN;
import java.util.HashSet; import java.util.HashSet;
import java.util.Arrays;
public class NameUtil { public class NameUtil {
@ -13,6 +14,19 @@ public class NameUtil {
return name.length() + 2; return name.length() + 2;
} }
public static boolean idnEquals(String name1, String name2) {
if (name1 == name2) return true; // catches null, null
if (name1 == null) return false;
if (name2 == null) return false;
if (name1.equals(name2)) return true;
try {
return Arrays.equals(toByteArray(name1),toByteArray(name2));
} catch (IOException e) {
return false; // impossible
}
}
public static byte[] toByteArray(String name) throws IOException { public static byte[] toByteArray(String name) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream(64); ByteArrayOutputStream baos = new ByteArrayOutputStream(64);
DataOutputStream dos = new DataOutputStream(baos); DataOutputStream dos = new DataOutputStream(baos);