Мне удалось сделать https-запрос с помощью BouncyCastleProvider, чтобы он соответствовал набору шифров «TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8»
Security.addProvider(new BouncyCastleProvider());
Security.addProvider(new BouncyCastleJsseProvider());
SSLContext sslContext = SSLContext.getInstance("TLS", BouncyCastleJsseProvider.PROVIDER_NAME);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(
"PKIX"
,BouncyCastleJsseProvider.PROVIDER_NAME
);
KeyStore clientStore = KeyStore.getInstance("PKCS12");
InputStream instream =Thread.currentThread().getContextClassLoader().getResourceAsStream(PFX_PATH);
sslContext.init(
wrapKeyManagers(keyManagerFactory.getKeyManagers()),
new TrustManager[]{trustManager},
// tmf.getTrustManagers(),
SecureRandom.getInstance("DEFAULT", BouncyCastleProvider.PROVIDER_NAME) );
и я пытался настроить keyManagerFactory в методе wrapKeyManager 100 обнаружил, что он не работает, я не могу использовать этот метод переопределения
@Override
public String[] getClientAliases(String s, Principal[] principals) {
return wrappedManager.getClientAliases(replaceRsaWithEc(s), principals);
}
@Override
public String chooseClientAlias(String[] strings, Principal[] principals, Socket socket) {
return wrappedManager.chooseClientAlias(replaceRsaWithEc(strings), principals, socket);
}
@Override
public String[] getServerAliases(String s, Principal[] principals) {
return wrappedManager.getServerAliases(replaceRsaWithEc(s), principals);
}
Я совершенно прав, это что-то не так с BouncyCastle Есть ли какой-нибудь api или что-то для настройки keyManagerFactory?
Сильно нуждается в помощи