SAP / gigya-android-sdk

SAP CDC (Gigya) android sdk for mobile
Apache License 2.0
19 stars 13 forks source link

Sdk crashes when using CertificateTransparencyProvider and using proxy #65

Closed inovakotnik closed 6 months ago

inovakotnik commented 10 months ago

With new version 7.0.6, with OkHttpClient, app crashes when using CertificateTransparencyProvider and using proxy.

Stacktrace:

javax.net.ssl.SSLHandshakeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.org.conscrypt.SSLUtils.toSSLHandshakeException(SSLUtils.java:356) at com.android.org.conscrypt.ConscryptEngine.convertException(ConscryptEngine.java:1134) at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1089) at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:876) at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:747) at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:712) at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:896) at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.-$$Nest$mprocessDataFromSocket(Unknown Source:0) at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:236) at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:218) at dm.b.k(ConnectPlan.kt:40) at dm.b.g(ConnectPlan.kt:229) at dm.p.a(SequentialExchangeFinder.kt:37) at dm.h.x(RealCall.kt:30) at dm.a.a(ConnectInterceptor.kt:12) at em.g.b(RealInterceptorChain.kt:156) at bm.a.a(CacheInterceptor.kt:182) at em.g.b(RealInterceptorChain.kt:156) at em.a.a(BridgeInterceptor.kt:171) at em.g.b(RealInterceptorChain.kt:156) at em.j.a(RetryAndFollowUpInterceptor.kt:35) at em.g.b(RealInterceptorChain.kt:156) at dm.h.w(RealCall.kt:118) at dm.h.p(RealCall.kt:28) at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.doInBackground(OkHttpNetworkAdapter.kt:82) at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.execute$lambda-4(OkHttpNetworkAdapter.kt:37) at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.c(OkHttpNetworkAdapter.kt:1) at com.gigya.android.sdk.network.adapter.c.run(R8$$SyntheticClass:5) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at java.lang.Thread.run(Thread.java:1012) Caused by: java.security.cert.CertificateException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.org.conscrypt.ConscryptEngine.verifyCertificateChain(ConscryptEngine.java:1646) at com.android.org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method) at com.android.org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:569) at com.android.org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1095) at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1079) at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:876)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:747)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:712)  at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:896)  at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.-$$Nest$mprocessDataFromSocket(Unknown Source:0)  at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:236)  at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:218)  at dm.b.k(ConnectPlan.kt:40)  at dm.b.g(ConnectPlan.kt:229)  at dm.p.a(SequentialExchangeFinder.kt:37)  at dm.h.x(RealCall.kt:30)  at dm.a.a(ConnectInterceptor.kt:12)  at em.g.b(RealInterceptorChain.kt:156)  at bm.a.a(CacheInterceptor.kt:182)  at em.g.b(RealInterceptorChain.kt:156)  at em.a.a(BridgeInterceptor.kt:171)  at em.g.b(RealInterceptorChain.kt:156)  at em.j.a(RetryAndFollowUpInterceptor.kt:35)  at em.g.b(RealInterceptorChain.kt:156)  at dm.h.w(RealCall.kt:118)  at dm.h.p(RealCall.kt:28)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.doInBackground(OkHttpNetworkAdapter.kt:82)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.execute$lambda-4(OkHttpNetworkAdapter.kt:37)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.c(OkHttpNetworkAdapter.kt:1)  at com.gigya.android.sdk.network.adapter.c.run(R8$$SyntheticClass:5)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)  at java.lang.Thread.run(Thread.java:1012)  Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.org.conscrypt.Platform.checkTrusted(Platform.java:215) at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:262) at com.android.org.conscrypt.ConscryptEngine.verifyCertificateChain(ConscryptEngine.java:1638) at com.android.org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)  at com.android.org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:569)  at com.android.org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1095)  at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1079)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:876)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:747)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:712)  at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:896)  at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.-$$Nest$mprocessDataFromSocket(Unknown Source:0)  at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:236)  at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:218)  at dm.b.k(ConnectPlan.kt:40)  at dm.b.g(ConnectPlan.kt:229)  at dm.p.a(SequentialExchangeFinder.kt:37)  at dm.h.x(RealCall.kt:30)  at dm.a.a(ConnectInterceptor.kt:12)  at em.g.b(RealInterceptorChain.kt:156)  at bm.a.a(CacheInterceptor.kt:182)  at em.g.b(RealInterceptorChain.kt:156)  at em.a.a(BridgeInterceptor.kt:171)  at em.g.b(RealInterceptorChain.kt:156)  at em.j.a(RetryAndFollowUpInterceptor.kt:35)  at em.g.b(RealInterceptorChain.kt:156)  at dm.h.w(RealCall.kt:118)  at dm.h.p(RealCall.kt:28)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.doInBackground(OkHttpNetworkAdapter.kt:82)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.execute$lambda-4(OkHttpNetworkAdapter.kt:37)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.c(OkHttpNetworkAdapter.kt:1)  at com.gigya.android.sdk.network.adapter.c.run(R8$$SyntheticClass:5)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)  at java.lang.Thread.run(Thread.java:1012)  Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.appmattus.certificatetransparency.internal.verifier.CertificateTransparencyTrustManager.checkServerTrusted(CertificateTransparencyTrustManager.kt:9) at java.lang.reflect.Method.invoke(Native Method) at com.android.org.conscrypt.Platform.checkTrusted(Platform.java:208) at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:262)  at com.android.org.conscrypt.ConscryptEngine.verifyCertificateChain(ConscryptEngine.java:1638)  at com.android.org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)  at com.android.org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:569)  at com.android.org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1095)  at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1079)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:876)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:747)  at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:712)  at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:896)  at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.-$$Nest$mprocessDataFromSocket(Unknown Source:0)  at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:236)  at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:218)  at dm.b.k(ConnectPlan.kt:40)  at dm.b.g(ConnectPlan.kt:229)  at dm.p.a(SequentialExchangeFinder.kt:37)  at dm.h.x(RealCall.kt:30)  at dm.a.a(ConnectInterceptor.kt:12)  at em.g.b(RealInterceptorChain.kt:156)  at bm.a.a(CacheInterceptor.kt:182)  at em.g.b(RealInterceptorChain.kt:156)  at em.a.a(BridgeInterceptor.kt:171)  at em.g.b(RealInterceptorChain.kt:156)  at em.j.a(RetryAndFollowUpInterceptor.kt:35)  at em.g.b(RealInterceptorChain.kt:156)  at dm.h.w(RealCall.kt:118)  at dm.h.p(RealCall.kt:28)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.doInBackground(OkHttpNetworkAdapter.kt:82)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.execute$lambda-4(OkHttpNetworkAdapter.kt:37)  at com.gigya.android.sdk.network.adapter.OkHttpAsyncTask.c(OkHttpNetworkAdapter.kt:1)  at com.gigya.android.sdk.network.adapter.c.run(R8$$SyntheticClass:5)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)  at java.lang.Thread.run(Thread.java:1012)  Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:672) at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:549) at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:615) at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:505) 2023-11-10 11:02:16.711 1321-1496 AndroidRuntime com.example.app E at com.android.org.conscrypt.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:334) at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:113) at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:134) ... 38 more Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. ... 45 more

inovakotnik commented 6 months ago

Fixed, closing.