Comment remplacer la liste de chiffrement envoyée au serveur par Android lors de l'utilisation de HttpsURLConnection?

Au cours de la négociation TLS, les clients envoient une liste d'algorithmes pour le serveur, le serveur choisit un, et que le chiffrement ne commence. Je veux changer ce cipherlist envoyé au serveur par Android, quand je suis en utilisant HttpsURLConnection pour la communication.

Je sais que je peux utiliser setSSLSocketFactory sur le HttpsURLConnection objet de le configurer pour utiliser un SSLSocketFactory. Ceci est utile lorsque je veux changer le trustmanager etc utilisés par les SSLSocket renvoyé par la SSLSocketFactory.

Je sais qu'en général cette ciphersuite liste peut être modifiée à l'aide d'un SSLParameters objet et le passer à SSlsocket ou SSLEngine des objets en utilisant les méthodes qu'ils fournissent.

MAIS la SSLSocketFactory ne semble pas exposer de telles méthodes!

Je ne peux pas trouver un moyen de changer le SSLParameters de retour de la SSLSocket les objets créés par la SSLSocketFactory je passe à HttpsURLConnection.

Que faire?

Je suppose que c'est également pertinente pour Java en général, pas seulement Android. Peut-être il ya un OO façon de le faire (par exemple, étendre SSLSocketFactory et qui fournissent HttpsURLConnection?)

source d'informationauteur AndroidSec