diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2010-12-11 16:14:12 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@frugalware.org> | 2010-12-11 16:14:12 +0100 |
commit | c7000bbd6e5e44a75dba0a4c5a8e584a34b844b3 (patch) | |
tree | 7a4177c5292853e7fcacc11184e9eca75e215f42 /skype/skyped.py | |
parent | 35249d64faaad5d581448a52e439b643d6e6a2d3 (diff) |
Use internal ssl module instead of pyopenssl or python-gnutls
This results in shorter code and is available on Windows as well.
Diffstat (limited to 'skype/skyped.py')
-rw-r--r-- | skype/skyped.py | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/skype/skyped.py b/skype/skyped.py index 78885285..8ce35777 100644 --- a/skype/skyped.py +++ b/skype/skyped.py @@ -32,6 +32,7 @@ import Skype4Py import hashlib from ConfigParser import ConfigParser, NoOptionError from traceback import print_exception +import ssl __version__ = "0.1.1" @@ -85,21 +86,7 @@ def bitlbee_idle_handler(skype): def server(host, port): global options - try: - if "SKYPED_NO_GNUTLS" in os.environ.keys(): - dprint("Warning, using OpenSSL instead of gnutls as requested (not recommended).") - raise ImportError - from gnutls import crypto, connection - cert = crypto.X509Certificate(open(options.config.sslcert).read()) - key = crypto.X509PrivateKey(open(options.config.sslkey).read()) - cred = connection.X509Credentials(cert, key) - sock = connection.ServerSessionFactory(socket.socket(), cred) - except ImportError: - from OpenSSL import SSL - ctx = SSL.Context(SSL.TLSv1_METHOD) - ctx.use_privatekey_file(options.config.sslkey) - ctx.use_certificate_file(options.config.sslcert) - sock = SSL.Connection(ctx, socket.socket()) + sock = socket.socket() sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((host, port)) sock.listen(1) @@ -107,7 +94,12 @@ def server(host, port): def listener(sock, *args): global options - options.conn, addr = sock.accept() + rawsock, addr = sock.accept() + options.conn = ssl.wrap_socket(rawsock, + server_side=True, + certfile=options.config.sslcert, + keyfile=options.config.sslkey, + ssl_version=ssl.PROTOCOL_TLSv1) if hasattr(options.conn, 'handshake'): try: options.conn.handshake() |