34 lines
1,000 B
Text
34 lines
1,000 B
Text
|
|
public class MyTrustManager implements X509TrustManager {
|
|
private final byte[] certHash;
|
|
|
|
public MyTrustManager(byte[] certHash) throws Exception {
|
|
this.certHash = certHash;
|
|
}
|
|
|
|
@Override
|
|
public void checkClientTrusted(X509Certificate[] chain, String authType)
|
|
throws CertificateException {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override
|
|
public void checkServerTrusted(X509Certificate[] chain,
|
|
String authType) throws CertificateException {
|
|
byte[] digest = getCertificateDigest(chain[0]);
|
|
String digestHex = formatHex(digest);
|
|
|
|
if (Arrays.equals(digest, certHash)) {
|
|
System.err.println("info: accepting certificate: " + digestHex);
|
|
} else {
|
|
throw new CertificateException("certificate rejected: " +
|
|
digestHex);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public X509Certificate[] getAcceptedIssuers() {
|
|
return new X509Certificate[0];
|
|
}
|
|
}
|
|
|