J'essaie de passer de BouncyCastle bcprov-jdk14-124.jar (oooold) à bcprov-jdk14-143.jar. Quand je remplace le vieux pot avec le nouveau pot et construis tout, mon logiciel n'établit plus une connexion SSL, échouant avec un javax.net.ssl.SSLException: Received fatal alert: illegal_parameter
. Recherche Google pour "bouncycastle javax.net.ssl.SSLException illegal_parameter
" a un total de 4 résultats.javax.net.ssl.SSLException illegal_parameter bouncycastle related?
Des suggestions sur où débuter le débogage?
contexte supplémentaires:
- client sur Windows XP
- serveur sur CentOS, en utilisant Oracle Application Server
- Le client tente d'établir une connexion SSL pour un POST AXIS2.
- Lorsque le serveur utilise bcprov-jdk14-143 et le client utilise bcprov-jdk14-124, le POST réussit, mais lorsque le client est mis à niveau à 143, je reçois cette erreur
Je rencontre un autre problème en utilisant AES/CTR/NoPadding dans un CipherOutputStream (ne pas écrire un bloc partiel sur .close()) que j'espérais que la mise à jour pourrait corriger. La version 124 de BC est vraiment ancienne, et cela me préoccupe que je ne puisse pas l'améliorer. – retracile
J'ai déterminé que je peux mettre à jour le client à BC 1.41 sans casser SSL (et il semble que le problème de CTR a été fixé quelque part entre 1.24 et 1.41, qui répond à ma raison principale pour mettre à jour vers la dernière version BC). Mais BC 1.42 et 1.43 cassent SSL avec l'erreur décrite. Je veux toujours passer à la dernière version de la Colombie-Britannique, mais l'urgence est plus faible maintenant. – retracile
Pourquoi ne supprimes-tu pas BC? JSSE est la manière standard de faire du TLS en Java. Vous devez remplacer TlsProtocolHandler par SSLSocketFactory. À en juger par la durée du bogue du TLS en Colombie-Britannique, très peu de gens l'utilisent. –