3232import com .google .api .client .http .javanet .NetHttpTransport ;
3333import com .google .api .core .InternalApi ;
3434import java .security .Provider ;
35+ import java .security .Security ;
3536import java .util .logging .Level ;
3637import java .util .logging .Logger ;
3738import org .conscrypt .Conscrypt ;
@@ -74,7 +75,9 @@ private static class ConscryptProviderHolder {
7475
7576 private static Provider createProvider () {
7677 try {
77- return Conscrypt .newProvider ();
78+ Provider provider = Conscrypt .newProvider ();
79+ Security .insertProviderAt (provider , 1 );
80+ return provider ;
7881 } catch (Throwable t ) {
7982 LOG .log (
8083 Level .WARNING , "Conscrypt native libraries not available. Falling back to JDK TLS." , t );
@@ -97,27 +100,25 @@ public static NetHttpTransport.Builder configureConscryptSecurityProvider(
97100 if (conscryptProvider == null ) {
98101 return builder ;
99102 }
100- return builder
101- .setSecurityProvider (conscryptProvider )
102- .setSslSocketConfigurator (
103- socket -> {
104- if (!Conscrypt .isConscrypt (socket )) {
105- return ;
106- }
107- try {
108- Conscrypt .setNamedGroups (socket , DEFAULT_PQC_GROUPS );
109- } catch (Exception e ) {
110- // Native JNI linkage errors (e.g. UnsatisfiedLinkError) are caught during
111- // ConscryptProviderHolder initialization. Catching Exception here safely
112- // intercepts runtime socket configuration errors (e.g. unsupported groups or
113- // closed socket) without swallowing JVM errors like OutOfMemoryError.
114- LOG .log (
115- Level .WARNING ,
116- "Failed to set PQC named groups on Conscrypt socket. Falling back to Conscrypt"
117- + " default TLS groups." ,
118- e );
119- }
120- });
103+ return builder .setSslSocketConfigurator (
104+ socket -> {
105+ if (!Conscrypt .isConscrypt (socket )) {
106+ return ;
107+ }
108+ try {
109+ Conscrypt .setNamedGroups (socket , DEFAULT_PQC_GROUPS );
110+ } catch (Exception e ) {
111+ // Native JNI linkage errors (e.g. UnsatisfiedLinkError) are caught during
112+ // ConscryptProviderHolder initialization. Catching Exception here safely
113+ // intercepts runtime socket configuration errors (e.g. unsupported groups or
114+ // closed socket) without swallowing JVM errors like OutOfMemoryError.
115+ LOG .log (
116+ Level .WARNING ,
117+ "Failed to set PQC named groups on Conscrypt socket. Falling back to Conscrypt"
118+ + " default TLS groups." ,
119+ e );
120+ }
121+ });
121122 }
122123
123124 /**
0 commit comments