Je fais un émulateur de serveur de jeu, le jeu est assez vieux et utilise le protocole SSLv2 non sécurisé pour communiquer, je peux déchiffrer auge paquet ceci:Python Twisted: Créer SSLv2 contexte
ssl_sock = ssl.wrap_socket(sock, keyfile="Certificates/bfbc2.key", certfile="Certificates/bfbc2.crt", ssl_version=SSL.SSLv2_METHOD, do_handshake_on_connect=True, ciphers="DEFAULT")
Comme vous pouvez vois que j'ai utilisé deux modules SSL (ssl
et OpenSSL
). Je me suis rendu compte que faire de cet énorme projet de «zéro», c'est trop de travail, et c'est impossible d'une manière ou d'une autre. Peut faire mieux que le module socket
, donc j'ai décidé de le changer.
Et est le problème ici, je ne sais pas comment créer le contexte SSLv2. I tryed ceci:
SSLContext = ssl.DefaultOpenSSLContextFactory('Certificates/bfbc2.key', 'Certificates/bfbc2.crt', sslmethod=ssl.SSL.SSLv2_METHOD)
Mais il me donne cette erreur:
ValueError: No such protocol
Comment obtenir SSLv2 travaillant dans Twisted?
Alors, pourquoi je peux créer le socket SSLv2 en utilisant ssl, OpenSSL et modules de prise? –
La traceback indique clairement que vous ne pouvez pas avec 'OpenSSL'. Les modules 'ssl' et' socket' ne sont en fait qu'une chose et sont séparés du paquet 'OpenSSL'. Ce que vous pouvez faire avec eux et ce que vous pouvez faire avec 'OpenSSL' sera nécessairement différent en fonction de leurs implémentations et de leurs garanties d'interface. –
Votre installation pyOpenSSL utilise peut-être une version plus récente d'OpenSSL que 'socket' /' ssl'. C'est assez difficile à dire d'ici, cependant (c'est-à-dire, il n'y a pas assez d'informations dans votre question pour faire une déclaration définitive sur la raison pour laquelle les comportements diffèrent). –