package io.netty.handler.ssl;

import io.netty.handler.ssl.OpenSslContext;
import io.netty.util.internal.ObjectUtil;
import java.io.File;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLException;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509ExtendedKeyManager;
import javax.net.ssl.X509ExtendedTrustManager;
import javax.net.ssl.X509KeyManager;
import javax.net.ssl.X509TrustManager;
import org.apache.tomcat.jni.SSLContext;

/* JADX INFO: loaded from: classes.dex */
public final class OpenSslServerContext extends OpenSslContext {
    private static final byte[] ID = {110, 101, 116, 116, 121};
    private final OpenSslKeyMaterialManager keyMaterialManager;
    private final OpenSslServerSessionContext sessionContext;

    private static final class ExtendedTrustManagerVerifyCallback extends OpenSslContext.AbstractCertificateVerifier {
        private final X509ExtendedTrustManager manager;

        ExtendedTrustManagerVerifyCallback(OpenSslEngineMap openSslEngineMap, X509ExtendedTrustManager x509ExtendedTrustManager) {
            super(openSslEngineMap);
            this.manager = x509ExtendedTrustManager;
        }

        @Override // io.netty.handler.ssl.OpenSslContext.AbstractCertificateVerifier
        void verify(OpenSslEngine openSslEngine, X509Certificate[] x509CertificateArr, String str) throws Exception {
            this.manager.checkClientTrusted(x509CertificateArr, str, openSslEngine);
        }
    }

    private static final class TrustManagerVerifyCallback extends OpenSslContext.AbstractCertificateVerifier {
        private final X509TrustManager manager;

        TrustManagerVerifyCallback(OpenSslEngineMap openSslEngineMap, X509TrustManager x509TrustManager) {
            super(openSslEngineMap);
            this.manager = x509TrustManager;
        }

        @Override // io.netty.handler.ssl.OpenSslContext.AbstractCertificateVerifier
        void verify(OpenSslEngine openSslEngine, X509Certificate[] x509CertificateArr, String str) throws Exception {
            this.manager.checkClientTrusted(x509CertificateArr, str);
        }
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2) throws SSLException {
        this(file, file2, null);
    }

    @Override // io.netty.handler.ssl.OpenSslContext
    OpenSslKeyMaterialManager keyMaterialManager() {
        return this.keyMaterialManager;
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str) throws SSLException {
        this(file, file2, str, (Iterable<String>) null, IdentityCipherSuiteFilter.INSTANCE, ApplicationProtocolConfig.DISABLED, 0L, 0L);
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str, Iterable<String> iterable, ApplicationProtocolConfig applicationProtocolConfig, long j2, long j3) throws SSLException {
        this(file, file2, str, iterable, IdentityCipherSuiteFilter.INSTANCE, applicationProtocolConfig, j2, j3);
    }

    @Override // io.netty.handler.ssl.OpenSslContext, io.netty.handler.ssl.SslContext
    public OpenSslServerSessionContext sessionContext() {
        return this.sessionContext;
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str, Iterable<String> iterable, Iterable<String> iterable2, long j2, long j3) throws SSLException {
        this(file, file2, str, iterable, SslContext.toApplicationProtocolConfig(iterable2), j2, j3);
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str, TrustManagerFactory trustManagerFactory, Iterable<String> iterable, ApplicationProtocolConfig applicationProtocolConfig, long j2, long j3) throws SSLException {
        this(file, file2, str, trustManagerFactory, iterable, OpenSslContext.toNegotiator(applicationProtocolConfig), j2, j3);
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str, TrustManagerFactory trustManagerFactory, Iterable<String> iterable, OpenSslApplicationProtocolNegotiator openSslApplicationProtocolNegotiator, long j2, long j3) throws SSLException {
        this((File) null, trustManagerFactory, file, file2, str, (KeyManagerFactory) null, iterable, (CipherSuiteFilter) null, openSslApplicationProtocolNegotiator, j2, j3);
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str, Iterable<String> iterable, CipherSuiteFilter cipherSuiteFilter, ApplicationProtocolConfig applicationProtocolConfig, long j2, long j3) throws SSLException {
        this((File) null, (TrustManagerFactory) null, file, file2, str, (KeyManagerFactory) null, iterable, cipherSuiteFilter, applicationProtocolConfig, j2, j3);
    }

    @Deprecated
    public OpenSslServerContext(File file, TrustManagerFactory trustManagerFactory, File file2, File file3, String str, KeyManagerFactory keyManagerFactory, Iterable<String> iterable, CipherSuiteFilter cipherSuiteFilter, ApplicationProtocolConfig applicationProtocolConfig, long j2, long j3) throws SSLException {
        this(file, trustManagerFactory, file2, file3, str, keyManagerFactory, iterable, cipherSuiteFilter, OpenSslContext.toNegotiator(applicationProtocolConfig), j2, j3);
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str, TrustManagerFactory trustManagerFactory, Iterable<String> iterable, CipherSuiteFilter cipherSuiteFilter, ApplicationProtocolConfig applicationProtocolConfig, long j2, long j3) throws SSLException {
        this((File) null, trustManagerFactory, file, file2, str, (KeyManagerFactory) null, iterable, cipherSuiteFilter, OpenSslContext.toNegotiator(applicationProtocolConfig), j2, j3);
    }

    @Deprecated
    public OpenSslServerContext(File file, File file2, String str, TrustManagerFactory trustManagerFactory, Iterable<String> iterable, CipherSuiteFilter cipherSuiteFilter, OpenSslApplicationProtocolNegotiator openSslApplicationProtocolNegotiator, long j2, long j3) throws SSLException {
        this((File) null, trustManagerFactory, file, file2, str, (KeyManagerFactory) null, iterable, cipherSuiteFilter, openSslApplicationProtocolNegotiator, j2, j3);
    }

    @Deprecated
    public OpenSslServerContext(File file, TrustManagerFactory trustManagerFactory, File file2, File file3, String str, KeyManagerFactory keyManagerFactory, Iterable<String> iterable, CipherSuiteFilter cipherSuiteFilter, OpenSslApplicationProtocolNegotiator openSslApplicationProtocolNegotiator, long j2, long j3) throws SSLException {
        this(SslContext.toX509CertificatesInternal(file), trustManagerFactory, SslContext.toX509CertificatesInternal(file2), SslContext.toPrivateKeyInternal(file3, str), str, keyManagerFactory, iterable, cipherSuiteFilter, openSslApplicationProtocolNegotiator, j2, j3, ClientAuth.NONE);
    }

    OpenSslServerContext(X509Certificate[] x509CertificateArr, TrustManagerFactory trustManagerFactory, X509Certificate[] x509CertificateArr2, PrivateKey privateKey, String str, KeyManagerFactory keyManagerFactory, Iterable<String> iterable, CipherSuiteFilter cipherSuiteFilter, ApplicationProtocolConfig applicationProtocolConfig, long j2, long j3, ClientAuth clientAuth) throws SSLException {
        this(x509CertificateArr, trustManagerFactory, x509CertificateArr2, privateKey, str, keyManagerFactory, iterable, cipherSuiteFilter, OpenSslContext.toNegotiator(applicationProtocolConfig), j2, j3, clientAuth);
    }

    private OpenSslServerContext(X509Certificate[] x509CertificateArr, TrustManagerFactory trustManagerFactory, X509Certificate[] x509CertificateArr2, PrivateKey privateKey, String str, KeyManagerFactory keyManagerFactory, Iterable<String> iterable, CipherSuiteFilter cipherSuiteFilter, OpenSslApplicationProtocolNegotiator openSslApplicationProtocolNegotiator, long j2, long j3, ClientAuth clientAuth) throws SSLException {
        TrustManagerFactory trustManagerFactory2;
        super(iterable, cipherSuiteFilter, openSslApplicationProtocolNegotiator, j2, j3, 1, x509CertificateArr2, clientAuth);
        try {
            ObjectUtil.checkNotNull(x509CertificateArr2, "keyCertChainFile");
            ObjectUtil.checkNotNull(privateKey, "keyFile");
            synchronized (OpenSslContext.class) {
                try {
                    try {
                        SSLContext.setVerify(this.ctx, 0, 10);
                        if (OpenSsl.supportsKeyManagerFactory()) {
                            KeyManagerFactory keyManagerFactoryBuildKeyManagerFactory = x509CertificateArr2 != null ? SslContext.buildKeyManagerFactory(x509CertificateArr2, privateKey, str, keyManagerFactory) : keyManagerFactory;
                            if (keyManagerFactoryBuildKeyManagerFactory != null) {
                                X509KeyManager x509KeyManagerChooseX509KeyManager = OpenSslContext.chooseX509KeyManager(SslContext.buildKeyManagerFactory(x509CertificateArr2, privateKey, str, keyManagerFactoryBuildKeyManagerFactory).getKeyManagers());
                                this.keyMaterialManager = OpenSslContext.useExtendedKeyManager(x509KeyManagerChooseX509KeyManager) ? new OpenSslExtendedKeyMaterialManager((X509ExtendedKeyManager) x509KeyManagerChooseX509KeyManager, str) : new OpenSslKeyMaterialManager(x509KeyManagerChooseX509KeyManager, str);
                            } else {
                                this.keyMaterialManager = null;
                            }
                        } else if (keyManagerFactory == null) {
                            SSLContext.setVerify(this.ctx, 0, 10);
                            OpenSslContext.setKeyMaterial(this.ctx, x509CertificateArr2, privateKey, str);
                            this.keyMaterialManager = null;
                        } else {
                            throw new IllegalArgumentException("KeyManagerFactory not supported");
                        }
                        try {
                            if (x509CertificateArr != null) {
                                trustManagerFactory2 = SslContext.buildTrustManagerFactory(x509CertificateArr, trustManagerFactory);
                            } else if (trustManagerFactory == null) {
                                trustManagerFactory2 = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
                                trustManagerFactory2.init((KeyStore) null);
                            } else {
                                trustManagerFactory2 = trustManagerFactory;
                            }
                            X509TrustManager x509TrustManagerChooseTrustManager = OpenSslContext.chooseTrustManager(trustManagerFactory2.getTrustManagers());
                            if (OpenSslContext.useExtendedTrustManager(x509TrustManagerChooseTrustManager)) {
                                SSLContext.setCertVerifyCallback(this.ctx, new ExtendedTrustManagerVerifyCallback(this.engineMap, (X509ExtendedTrustManager) x509TrustManagerChooseTrustManager));
                            } else {
                                SSLContext.setCertVerifyCallback(this.ctx, new TrustManagerVerifyCallback(this.engineMap, x509TrustManagerChooseTrustManager));
                            }
                        } catch (Exception e2) {
                            throw new SSLException("unable to setup trustmanager", e2);
                        }
                    } catch (Exception e3) {
                        throw new SSLException("failed to set certificate and key", e3);
                    }
                } catch (Throwable th) {
                    throw th;
                }
            }
            OpenSslServerSessionContext openSslServerSessionContext = new OpenSslServerSessionContext(this);
            this.sessionContext = openSslServerSessionContext;
            openSslServerSessionContext.setSessionIdContext(ID);
        } catch (Throwable th2) {
            destroy();
            throw th2;
        }
    }
}
