2010-02-25 8 views
1

Je suis chargé de migrer la mise en réseau d'un serveur à partir de sockets simples vers SSL dans python 2.5, et j'ai rencontré un problème. Il semble que pratiquement aucune bibliothèque SSL n'exécute complètement l'interface de socket, de sorte que le code que nous avons actuellement ne peut pas être directement migré. En particulier, je n'arrive pas à trouver une bibliothèque qui supporte la méthode 'setblocking' (la plupart sont des wrappers, ce serait donc terrible d'adresser directement le socket encapsulé?) Et la plupart ne semblent pas Traitez le socket enveloppé comme un périphérique de type fichier, de sorte que la méthode cruciale 'select' ne fonctionnera pas (encore une fois, pourrais-je exécuter select sur le socket enveloppé?).Une bibliothèque SSL décente pour Python 2.5

(read, write, error) = select([socket], [socket], [], 0.2) 

J'ai essayé tlslite et M2Crypto jusqu'à présent, mais ne semblent fonctionner de manière transparente comme prises.

Toutes les idées seraient appréciées.

+0

Faire des E/S non bloquantes avec SSL est très compliqué. La couche d'enregistrement de SSL ne doit obéir à aucune frontière de paquet, donc juste parce que les données sont disponibles à partir du socket ne signifie pas que des données sont disponibles pour l'application. –

Répondre

0

pyOpenSSL semble prendre en charge setblocking().

+0

J'ai considéré pyOpenSSL, mais je suis un peu incertain à ce sujet, car il n'est plus maintenu. Là encore, je suppose que la plupart des bibliothèques ne sont pas maintenues car SSL a un support décent dans les versions plus récentes de Python. – directedition

Questions connexes