Adds SSLCertificateVerifier to the Java API.

The native API supports setting an SSLCertificateVerifier that can be used
to provide a custom certificate verifier for incoming SSL certificates. This
change provides this functionality to the Java API so that a Java implementation
can also be provided. It is expected this will only be used in specialized
circumstances and most users will not hit this code path.

Bug: webrtc:9541
Change-Id: Id3c75b8f288333b53edc2959bac533e3ec614978
Reviewed-on: https://webrtc-review.googlesource.com/89500
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24057}
This commit is contained in:
Benjamin Wright
2018-07-20 15:08:03 -07:00
committed by Commit Bot
parent 2ffed6d65c
commit 8cf30401eb
7 changed files with 174 additions and 18 deletions

View File

@ -20,18 +20,27 @@ import javax.annotation.Nullable;
*/
public final class PeerConnectionDependencies {
// Mandatory dependencies.
private PeerConnection.Observer observer;
private final PeerConnection.Observer observer;
// Optional fields.
private final SSLCertificateVerifier sslCertificateVerifier;
public static class Builder {
private PeerConnection.Observer observer;
private SSLCertificateVerifier sslCertificateVerifier;
private Builder(PeerConnection.Observer observer) {
this.observer = observer;
}
public Builder setSSLCertificateVerifier(SSLCertificateVerifier sslCertificateVerifier) {
this.sslCertificateVerifier = sslCertificateVerifier;
return this;
}
// Observer is a required dependency and so is forced in the construction of the object.
public PeerConnectionDependencies createPeerConnectionDependencies() {
return new PeerConnectionDependencies(observer);
return new PeerConnectionDependencies(observer, sslCertificateVerifier);
}
}
@ -43,7 +52,14 @@ public final class PeerConnectionDependencies {
return observer;
}
private PeerConnectionDependencies(PeerConnection.Observer observer) {
@Nullable
SSLCertificateVerifier getSSLCertificateVerifier() {
return sslCertificateVerifier;
}
private PeerConnectionDependencies(
PeerConnection.Observer observer, SSLCertificateVerifier sslCertificateVerifier) {
this.observer = observer;
this.sslCertificateVerifier = sslCertificateVerifier;
}
}