Beispiel #1
0
    def set_socket(self, sock):
        """
        Set the Python socket to use for network communications.

        @type socket: socket.socket
        @param socket: Python socket data will be transmitted through.
        """
        if self._socket != None:
            raise ctSSLError('Error: a socket has already been set.')
        self._socket = sock
Beispiel #2
0
    def set_socket(self, sock):
        """
        Set the Python socket to use for network communications.

        @type socket: socket.socket
        @param socket: Python socket data will be transmitted through.
        """
        if self._socket != None:
            raise ctSSLError("Error: a socket has already been set.")
        self._socket = sock
Beispiel #3
0
    def __init__(self, ssl_version='sslv23'):
        """
        Create a new SSL_CTX instance.

        @type ssl_version: str
        @param ssl_version: SSL protocol version to use. Should be 'sslv23',
        'sslv2', 'sslv3', 'tlsv1', 'tlsv1_1' or 'tlsv1_2'.

        @raise ctSSL.errors.ctSSLError: Could not create the SSL_CTX C struct
        (SSL_CTX_new() failed).
        """
        self._ssl_ctx_struct_p = None
        self._pem_passwd_cb = None

        if ssl_version == 'sslv23':
            ssl_version = libssl.SSLv23_method()
        elif ssl_version == 'sslv2':
            if features_not_available.SSL2_NOT_AVAIL:
                raise ctSSLFeatureNotAvailable('SSLv2 disabled.')
            ssl_version = libssl.SSLv2_method()
        elif ssl_version == 'sslv3':
            ssl_version = libssl.SSLv3_method()
        elif ssl_version == 'tlsv1':
            ssl_version = libssl.TLSv1_method()
        elif ssl_version == 'tlsv1_1':
            if features_not_available.TLS1_1_TLS1_2_NOT_AVAIL:
                raise ctSSLFeatureNotAvailable(
                    'TLS 1.1 is not supported by the'
                    ' version of the OpenSSL library that was loaded.'
                    ' Upgrade to 1.0.1 or later.')
            ssl_version = libssl.TLSv1_1_method()
        elif ssl_version == 'tlsv1_2':
            if features_not_available.TLS1_1_TLS1_2_NOT_AVAIL:
                raise ctSSLFeatureNotAvailable(
                    'TLS 1.2 is not supported by the'
                    ' version of the OpenSSL library that was loaded.'
                    ' Upgrade to 1.0.1 or later.')
            ssl_version = libssl.TLSv1_2_method()
        else:
            raise ctSSLError(
                'Incorrect SSL version. Could not create SSL_CTX.')

        self._ssl_ctx_struct_p = libssl.SSL_CTX_new(ssl_version)
Beispiel #4
0
    def __init__(self, ssl_version='sslv23'):
        """
        Create a new SSL_CTX instance.

        @type ssl_version: str
        @param ssl_version: SSL protocol version to use. Should be 'sslv23',
        'sslv2', 'sslv3', 'tlsv1', 'tlsv1_1' or 'tlsv1_2'.

        @raise ctSSL.errors.ctSSLError: Could not create the SSL_CTX C struct
        (SSL_CTX_new() failed).
        """
        self._ssl_ctx_struct_p = None
        self._pem_passwd_cb = None
        
        if ssl_version == 'sslv23':
            ssl_version = libssl.SSLv23_method()
        elif ssl_version == 'sslv2':
            if features_not_available.SSL2_NOT_AVAIL:
                raise ctSSLFeatureNotAvailable('SSLv2 disabled.')
            ssl_version = libssl.SSLv2_method()
        elif ssl_version == 'sslv3':
            ssl_version = libssl.SSLv3_method()
        elif ssl_version == 'tlsv1':
            ssl_version = libssl.TLSv1_method()
        elif ssl_version == 'tlsv1_1':
            if features_not_available.TLS1_1_TLS1_2_NOT_AVAIL:
                raise ctSSLFeatureNotAvailable('TLS 1.1 is not supported by the'
                ' version of the OpenSSL library that was loaded.'
                ' Upgrade to 1.0.1 or later.')
            ssl_version = libssl.TLSv1_1_method()
        elif ssl_version == 'tlsv1_2':
            if features_not_available.TLS1_1_TLS1_2_NOT_AVAIL:
                raise ctSSLFeatureNotAvailable('TLS 1.2 is not supported by the'
                ' version of the OpenSSL library that was loaded.'
                ' Upgrade to 1.0.1 or later.')
            ssl_version = libssl.TLSv1_2_method()
        else:
            raise ctSSLError('Incorrect SSL version. Could not create SSL_CTX.')

        self._ssl_ctx_struct_p = libssl.SSL_CTX_new(ssl_version)