Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/JAVA/Threema/app/src/main/java/ch/threema/app/utils/     Datei vom 25.3.2026 mit Größe 1 kB image not shown  

Quelle  SSLUtil.kt   Sprache: unbekannt

 
Spracherkennung für: .kt vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

package ch.threema.app.utils

import ch.threema.app.onprem.OnPremCertPinning
import java.security.KeyStore
import javax.net.ssl.SSLContext
import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.TrustManagerFactory
import javax.net.ssl.X509TrustManager

object SSLUtil {
    private val defaultSSLSocketFactory: SSLSocketFactory

    val defaultTrustManager: X509TrustManager

    init {
        val trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
        trustManagerFactory.init(null as KeyStore?)
        val trustManagers = trustManagerFactory.trustManagers
        defaultTrustManager = trustManagers.filterIsInstance<X509TrustManager>().first()
        val sslContext = SSLContext.getInstance("TLS")
        sslContext.init(null, trustManagers, null)
        defaultSSLSocketFactory = sslContext.socketFactory
    }

    /**
     * Get a Socket Factory for certificate pinning and forced TLS version upgrade.
     */
    @JvmStatic
    fun getSSLSocketFactory(host: String): SSLSocketFactory {
        val sslSocketFactory = if (ConfigUtils.isOnPremBuild()) {
            OnPremCertPinning.createSslSocketFactory(host)
        } else {
            defaultSSLSocketFactory
        }
        return TLSUpgradeSocketFactoryWrapper(sslSocketFactory)
    }
}

[Dauer der Verarbeitung: 0.18 Sekunden, vorverarbeitet 2026-04-27]