Repository: quarkusio/quarkus
Issue: Missing `quarkus.oidc.tls.key-store-provider` and `quarkus.oidc.tls.trust-store-provider` properties on OIDC extension

### Describe the bug

I would like to use OIDC with mtls over FIPS. 

The certificates that I am thinking to use are `BCFIPSJSSE` (BouncyCastleJsseProvider) as we do in other [modules](https://quarkus.io/guides/security-customization#bouncy-castle-jsse-fips). The problem that I have is that there is no `quarkus.oidc.tls.key-store-provider` / `quarkus.oidc.tls.trust-store-provider`. 

application.properties

```
quarkus.http.auth.permission.authenticated.paths=/*
quarkus.http.auth.permission.authenticated.policy=authenticated
quarkus.oidc.token.lifespan-grace=5
quarkus.oidc.token.principal-claim=email
quarkus.oidc.token.issuer=${quarkus.oidc.auth-server-url}
quarkus.oidc.tls.verification=certificate-validation
quarkus.oidc.tls.key-store-file=client-bcfips-keystore.jks
#quarkus.oidc.tls.key-store-file=client-keystore.jks
quarkus.oidc.tls.key-store-file-type=BCFKS
quarkus.oidc.tls.key-store-password=password

quarkus.oidc.tls.trust-store-file=client-bcfips-truststore.jks
#quarkus.oidc.tls.trust-store-file=client-truststore.jks
quarkus.oidc.tls.trust-store-file-type=BCFKS
quarkus.oidc.tls.trust-store-password=password
```
OIDC configuration doc ref: https://quarkus.io/guides/all-config#quarkus-oidc_quarkus-oidc-openid-connect

The issue that I am trying to avoid is something like: 
```
Caused by: java.security.KeyStoreException: BCFKS not found
```



Changed files:
extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java
extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonConfig.java

diff --git a/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonConfig.java b/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonConfig.java
index c8512c4ae35..12a109c3e9f 100644
--- a/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonConfig.java
+++ b/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonConfig.java
@@ -439,6 +439,14 @@ public enum Verification {
         @ConfigItem
         public Optional<String> keyStoreFileType = Optional.empty();
 
+        /**
+         * An optional parameter to specify a provider of the key store file. If not given, the provider is automatically
+         * detected
+         * based on the key store file type.
+         */
+        @ConfigItem
+        public Optional<String> keyStoreProvider;
+
         /**
          * A parameter to specify the password of the key store file. If not given, the default ("password") is used.
          */
@@ -484,6 +492,14 @@ public enum Verification {
         @ConfigItem
         public Optional<String> trustStoreFileType = Optional.empty();
 
+        /**
+         * An optional parameter to specify a provider of the trust store file. If not given, the provider is automatically
+         * detected
+         * based on the trust store file type.
+         */
+        @ConfigItem
+        public Optional<String> trustStoreProvider;
+
         public Optional<Verification> getVerification() {
             return verification;
         }
@@ -516,6 +532,22 @@ public void setTrustStoreCertAlias(String trustStoreCertAlias) {
             this.trustStoreCertAlias = Optional.of(trustStoreCertAlias);
         }
 
+        public Optional<String> getKeyStoreProvider() {
+            return keyStoreProvider;
+        }
+
+        public void setKeyStoreProvider(String keyStoreProvider) {
+            this.keyStoreProvider = Optional.of(keyStoreProvider);
+        }
+
+        public Optional<String> getTrustStoreProvider() {
+            return trustStoreProvider;
+        }
+
+        public void setTrustStoreProvider(String trustStoreProvider) {
+            this.trustStoreProvider = Optional.of(trustStoreProvider);
+        }
+
     }
 
     @ConfigGroup
diff --git a/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java b/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java
index 744dcc9e6e1..5ad51f3bc1e 100644
--- a/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java
+++ b/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java
@@ -131,7 +131,8 @@ public static void setHttpClientOptions(OidcCommonConfig oidcConfig, TlsConfig t
                         .setPassword(oidcConfig.tls.getTrustStorePassword().orElse("password"))
                         .setAlias(oidcConfig.tls.getTrustStoreCertAlias().orElse(null))
                         .setValue(io.vertx.core.buffer.Buffer.buffer(trustStoreData))
-                        .setType(getStoreType(oidcConfig.tls.trustStoreFileType, oidcConfig.tls.trustStoreFile.get()));
+                        .setType(getStoreType(oidcConfig.tls.trustStoreFileType, oidcConfig.tls.trustStoreFile.get()))
+                        .setProvider(oidcConfig.tls.trustStoreProvider.orElse(null));
                 options.setTrustOptions(trustStoreOptions);
                 if (Verification.CERTIFICATE_VALIDATION == oidcConfig.tls.verification.orElse(Verification.REQUIRED)) {
                     options.setVerifyHost(false);
@@ -150,7 +151,8 @@ public static void setHttpClientOptions(OidcCommonConfig oidcConfig, TlsConfig t
                         .setAlias(oidcConfig.tls.keyStoreKeyAlias.orElse(null))
                         .setAliasPassword(oidcConfig.tls.keyStoreKeyPassword.orElse(null))
                         .setValue(io.vertx.core.buffer.Buffer.buffer(keyStoreData))
-                        .setType(getStoreType(oidcConfig.tls.keyStoreFileType, oidcConfig.tls.keyStoreFile.get()));
+                        .setType(getStoreType(oidcConfig.tls.keyStoreFileType, oidcConfig.tls.keyStoreFile.get()))
+                        .setProvider(oidcConfig.tls.keyStoreProvider.orElse(null));
                 options.setKeyCertOptions(keyStoreOptions);
 
             } catch (IOException ex) {