public CertificateChainCleaner buildCertificateChainCleaner(SSLSocketFactory sslSocketFactory) { X509TrustManager trustManager = trustManager(sslSocketFactory); if (trustManager == null) { throw new IllegalStateException("Unable to extract the trust manager on " + Platform.get() + ", sslSocketFactory is " + sslSocketFactory.getClass()); } return buildCertificateChainCleaner(trustManager); }
@Override public @Nullable X509TrustManager trustManager(SSLSocketFactory sslSocketFactory) { if (!Conscrypt.isConscrypt(sslSocketFactory)) { return super.trustManager(sslSocketFactory); } try { // org.conscrypt.SSLParametersImpl Object sp = readFieldOrNull(sslSocketFactory, Object.class, "sslParameters"); if (sp != null) { return readFieldOrNull(sp, X509TrustManager.class, "x509TrustManager"); } return null; } catch (Exception e) { throw new UnsupportedOperationException( "clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on Conscrypt", e); } }
@Override protected @Nullable X509TrustManager trustManager(SSLSocketFactory sslSocketFactory) { Object context = readFieldOrNull(sslSocketFactory, sslParametersClass, "sslParameters"); if (context == null) { // If that didn't work, try the Google Play Services SSL provider before giving up. This // must be loaded by the SSLSocketFactory's class loader. try { Class<?> gmsSslParametersClass = Class.forName( "com.google.android.gms.org.conscrypt.SSLParametersImpl", false, sslSocketFactory.getClass().getClassLoader()); context = readFieldOrNull(sslSocketFactory, gmsSslParametersClass, "sslParameters"); } catch (ClassNotFoundException e) { return super.trustManager(sslSocketFactory); } } X509TrustManager x509TrustManager = readFieldOrNull( context, X509TrustManager.class, "x509TrustManager"); if (x509TrustManager != null) return x509TrustManager; return readFieldOrNull(context, X509TrustManager.class, "trustManager"); }
public CertificateChainCleaner buildCertificateChainCleaner(SSLSocketFactory sslSocketFactory) { X509TrustManager trustManager = trustManager(sslSocketFactory); if (trustManager == null) { throw new IllegalStateException("Unable to extract the trust manager on " + Platform.get() + ", sslSocketFactory is " + sslSocketFactory.getClass()); } return buildCertificateChainCleaner(trustManager); }
@Override public @Nullable X509TrustManager trustManager(SSLSocketFactory sslSocketFactory) { if (!Conscrypt.isConscrypt(sslSocketFactory)) { return super.trustManager(sslSocketFactory); } try { // org.conscrypt.SSLParametersImpl Object sp = readFieldOrNull(sslSocketFactory, Object.class, "sslParameters"); if (sp != null) { return readFieldOrNull(sp, X509TrustManager.class, "x509TrustManager"); } return null; } catch (Exception e) { throw new UnsupportedOperationException( "clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on Conscrypt", e); } }
@Override protected @Nullable X509TrustManager trustManager(SSLSocketFactory sslSocketFactory) { Object context = readFieldOrNull(sslSocketFactory, sslParametersClass, "sslParameters"); if (context == null) { // If that didn't work, try the Google Play Services SSL provider before giving up. This // must be loaded by the SSLSocketFactory's class loader. try { Class<?> gmsSslParametersClass = Class.forName( "com.google.android.gms.org.conscrypt.SSLParametersImpl", false, sslSocketFactory.getClass().getClassLoader()); context = readFieldOrNull(sslSocketFactory, gmsSslParametersClass, "sslParameters"); } catch (ClassNotFoundException e) { return super.trustManager(sslSocketFactory); } } X509TrustManager x509TrustManager = readFieldOrNull( context, X509TrustManager.class, "x509TrustManager"); if (x509TrustManager != null) return x509TrustManager; return readFieldOrNull(context, X509TrustManager.class, "trustManager"); }
public CertificateChainCleaner buildCertificateChainCleaner(SSLSocketFactory sslSocketFactory) { X509TrustManager trustManager = trustManager(sslSocketFactory); if (trustManager == null) { throw new IllegalStateException("Unable to extract the trust manager on " + Platform.get() + ", sslSocketFactory is " + sslSocketFactory.getClass()); } return buildCertificateChainCleaner(trustManager); }
public CertificateChainCleaner buildCertificateChainCleaner(SSLSocketFactory sslSocketFactory) { X509TrustManager trustManager = trustManager(sslSocketFactory); if (trustManager == null) { throw new IllegalStateException("Unable to extract the trust manager on " + Platform.get() + ", sslSocketFactory is " + sslSocketFactory.getClass()); } return buildCertificateChainCleaner(trustManager); }
@Override public @Nullable X509TrustManager trustManager(SSLSocketFactory sslSocketFactory) { if (!Conscrypt.isConscrypt(sslSocketFactory)) { return super.trustManager(sslSocketFactory); } try { // org.conscrypt.SSLParametersImpl Object sp = readFieldOrNull(sslSocketFactory, Object.class, "sslParameters"); if (sp != null) { return readFieldOrNull(sp, X509TrustManager.class, "x509TrustManager"); } return null; } catch (Exception e) { throw new UnsupportedOperationException( "clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on Conscrypt", e); } }
@Override protected @Nullable X509TrustManager trustManager(SSLSocketFactory sslSocketFactory) { Object context = readFieldOrNull(sslSocketFactory, sslParametersClass, "sslParameters"); if (context == null) { // If that didn't work, try the Google Play Services SSL provider before giving up. This // must be loaded by the SSLSocketFactory's class loader. try { Class<?> gmsSslParametersClass = Class.forName( "com.google.android.gms.org.conscrypt.SSLParametersImpl", false, sslSocketFactory.getClass().getClassLoader()); context = readFieldOrNull(sslSocketFactory, gmsSslParametersClass, "sslParameters"); } catch (ClassNotFoundException e) { return super.trustManager(sslSocketFactory); } } X509TrustManager x509TrustManager = readFieldOrNull( context, X509TrustManager.class, "x509TrustManager"); if (x509TrustManager != null) return x509TrustManager; return readFieldOrNull(context, X509TrustManager.class, "trustManager"); }
@Override protected X509TrustManager trustManager(SSLSocketFactory sslSocketFactory) { Object context = readFieldOrNull(sslSocketFactory, sslParametersClass, "sslParameters"); if (context == null) { // If that didn't work, try the Google Play Services SSL provider before giving up. This // must be loaded by the SSLSocketFactory's class loader. try { Class<?> gmsSslParametersClass = Class.forName( "com.google.android.gms.org.conscrypt.SSLParametersImpl", false, sslSocketFactory.getClass().getClassLoader()); context = readFieldOrNull(sslSocketFactory, gmsSslParametersClass, "sslParameters"); } catch (ClassNotFoundException e) { return super.trustManager(sslSocketFactory); } } X509TrustManager x509TrustManager = readFieldOrNull( context, X509TrustManager.class, "x509TrustManager"); if (x509TrustManager != null) return x509TrustManager; return readFieldOrNull(context, X509TrustManager.class, "trustManager"); }