nl.altindag.ssl.model.internal.SSLMaterial Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sslcontext-kickstart Show documentation
Show all versions of sslcontext-kickstart Show documentation
High level library to configure a SSLContext and other properties to enable SSL/TLS connection
/*
* Copyright 2019 Thunderberry.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.altindag.ssl.model.internal;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.X509ExtendedKeyManager;
import javax.net.ssl.X509ExtendedTrustManager;
import java.util.List;
/**
*
* NOTE:
* Please don't use this class directly as it is part of the internal API. Class name and methods can be changed any time.
*
*
* @author Hakan Altindag
*/
public final class SSLMaterial {
private SSLContext sslContext;
private X509ExtendedKeyManager keyManager;
private X509ExtendedTrustManager trustManager;
private HostnameVerifier hostnameVerifier;
private SSLParameters sslParameters;
private List ciphers;
private List protocols;
private SSLMaterial() {}
public SSLContext getSslContext() {
return sslContext;
}
public X509ExtendedKeyManager getKeyManager() {
return keyManager;
}
public X509ExtendedTrustManager getTrustManager() {
return trustManager;
}
public SSLParameters getSslParameters() {
return sslParameters;
}
public HostnameVerifier getHostnameVerifier() {
return hostnameVerifier;
}
public List getCiphers() {
return ciphers;
}
public List getProtocols() {
return protocols;
}
public static class Builder {
private SSLContext sslContext;
private X509ExtendedKeyManager keyManager;
private X509ExtendedTrustManager trustManager;
private HostnameVerifier hostnameVerifier;
private SSLParameters sslParameters;
private List ciphers;
private List protocols;
public Builder withSslContext(SSLContext sslContext) {
this.sslContext = sslContext;
return this;
}
public Builder withHostnameVerifier(HostnameVerifier hostnameVerifier) {
this.hostnameVerifier = hostnameVerifier;
return this;
}
public Builder withSslParameters(SSLParameters sslParameters) {
this.sslParameters = sslParameters;
return this;
}
public Builder withCiphers(List ciphers) {
this.ciphers = ciphers;
return this;
}
public Builder withProtocols(List protocols) {
this.protocols = protocols;
return this;
}
public Builder withKeyManager(X509ExtendedKeyManager keyManager) {
this.keyManager = keyManager;
return this;
}
public Builder withTrustManager(X509ExtendedTrustManager trustManager) {
this.trustManager = trustManager;
return this;
}
public SSLMaterial build() {
SSLMaterial sslMaterial = new SSLMaterial();
sslMaterial.sslContext = sslContext;
sslMaterial.keyManager = keyManager;
sslMaterial.trustManager = trustManager;
sslMaterial.hostnameVerifier = hostnameVerifier;
sslMaterial.sslParameters = sslParameters;
sslMaterial.ciphers = ciphers;
sslMaterial.protocols = protocols;
return sslMaterial;
}
}
}