diff --git a/dev/ssltest.py b/dev/ssltest.py index 101a3bef..538801f5 100644 --- a/dev/ssltest.py +++ b/dev/ssltest.py @@ -22,6 +22,12 @@ def sslProtocolVersion(): # "TLSv1.2" in < 2.7.9 return ssl.PROTOCOL_TLSv1 +def sslProtocolCiphers(): + if ssl.OPENSSL_VERSION_NUMBER >= 0x10100000: + return "AECDH-AES256-SHA@SECLEVEL=0" + else: + return "AECDH-AES256-SHA" + def connect(): sock = socket.create_connection((HOST, PORT)) return sock @@ -36,14 +42,14 @@ def listen(): def sslHandshake(sock, server=False): if sys.version_info >= (2,7,9): context = ssl.SSLContext(sslProtocolVersion()) - context.set_ciphers("AECDH-AES256-SHA") + context.set_ciphers(sslProtocolCiphers()) context.set_ecdh_curve("secp256k1") context.check_hostname = False context.verify_mode = ssl.CERT_NONE context.options = ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_SINGLE_ECDH_USE | ssl.OP_CIPHER_SERVER_PREFERENCE sslSock = context.wrap_socket(sock, server_side = server, do_handshake_on_connect=False) else: - sslSock = ssl.wrap_socket(self.sock, keyfile = os.path.join('src', 'sslkeys', 'key.pem'), certfile = os.path.join('src', 'sslkeys', 'cert.pem'), server_side = server, ssl_version=sslProtocolVersion(), do_handshake_on_connect=False, ciphers='AECDH-AES256-SHA') + sslSock = ssl.wrap_socket(sock, keyfile = os.path.join('src', 'sslkeys', 'key.pem'), certfile = os.path.join('src', 'sslkeys', 'cert.pem'), server_side = server, ssl_version=sslProtocolVersion(), do_handshake_on_connect=False, ciphers='AECDH-AES256-SHA') while True: try: @@ -51,11 +57,11 @@ def sslHandshake(sock, server=False): break except ssl.SSLWantReadError: print "Waiting for SSL socket handhake read" - select.select([self.sslSock], [], [], 10) + select.select([sslSock], [], [], 10) except ssl.SSLWantWriteError: print "Waiting for SSL socket handhake write" - select.select([], [self.sslSock], [], 10) - except Exception as e: + select.select([], [sslSock], [], 10) + except Exception: print "SSL socket handhake failed, shutting down connection" traceback.print_exc() return diff --git a/src/api.py b/src/api.py index cf02f69b..f25972aa 100644 --- a/src/api.py +++ b/src/api.py @@ -33,7 +33,6 @@ from struct import pack from helper_sql import sqlQuery,sqlExecute,SqlBulkExecute,sqlStoredProcedure from debug import logger from inventory import Inventory -import state from version import softwareVersion # Helper Functions diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index ad89be30..560c1c0b 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -2392,8 +2392,8 @@ class MyForm(settingsmixin.SMainWindow): except: QMessageBox.about(self, _translate("MainWindow", "Number needed"), _translate( "MainWindow", "Your maximum download and upload rate must be numbers. Ignoring what you typed.")) - throttle.SendThrottle.resetLimit() - throttle.ReceiveThrottle.resetLimit() + throttle.SendThrottle().resetLimit() + throttle.ReceiveThrottle().resetLimit() BMConfigParser().set('bitmessagesettings', 'namecoinrpctype', self.settingsDialogInstance.getNamecoinType()) diff --git a/src/class_sendDataThread.py b/src/class_sendDataThread.py index d619d451..76409050 100644 --- a/src/class_sendDataThread.py +++ b/src/class_sendDataThread.py @@ -1,7 +1,6 @@ import errno import time import threading -import shared import Queue from struct import unpack, pack import hashlib @@ -9,7 +8,6 @@ import random import sys import socket -from configparser import BMConfigParser from helper_generic import addDataPadding from class_objectHashHolder import * from addresses import *