Refactoring

This commit is contained in:
M66B
2024-01-05 13:42:49 +01:00
parent 4b41975935
commit 8e5a376cff
2 changed files with 33 additions and 29 deletions

View File

@@ -31,6 +31,7 @@ import androidx.annotation.NonNull;
import org.minidns.AbstractDnsClient;
import org.minidns.DnsClient;
import org.minidns.dane.DaneVerifier;
import org.minidns.dnsmessage.DnsMessage;
import org.minidns.dnsqueryresult.DnsQueryResult;
import org.minidns.dnsqueryresult.StandardDnsQueryResult;
@@ -55,6 +56,8 @@ import org.minidns.util.MultipleIoException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -63,6 +66,9 @@ import java.util.Locale;
import java.util.concurrent.Executor;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import javax.mail.Address;
import javax.mail.internet.InternetAddress;
@@ -345,6 +351,31 @@ public class DnsHelper {
return result;
}
static void verifyDane(X509Certificate[] chain, String server, int port) throws CertificateException {
Handler handler = new Handler() {
@Override
public void publish(LogRecord record) {
Log.w("DANE " + record.getMessage());
}
@Override
public void flush() {
}
@Override
public void close() throws SecurityException {
}
};
String clazz = DaneVerifier.class.getName();
Logger.getLogger(clazz).addHandler(handler);
Log.w("DANE verify " + server + ":" + port);
boolean verified = new DaneVerifier().verifyCertificateChain(chain, server, port);
Log.w("DANE verified=" + verified + " " + server + ":" + port);
Logger.getLogger(clazz).removeHandler(handler);
if (!verified)
throw new CertificateException("DANE missing or invalid");
}
static void test(Context context) throws UnknownHostException {
test(context, "gmail.com", "ns");
test(context, "gmail.com", "mx");