commit 34d7ebc3bcde788a2f4dfaeec105b1b4b069e368 Author: Isis Lovecruft isis@torproject.org Date: Thu Feb 28 17:39:04 2013 +0000
Update imports for tls_handshake.py. --- nettests/experimental/tls_handshake.py | 34 ++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/nettests/experimental/tls_handshake.py b/nettests/experimental/tls_handshake.py index 28c9990..76b9d3f 100644 --- a/nettests/experimental/tls_handshake.py +++ b/nettests/experimental/tls_handshake.py @@ -21,7 +21,8 @@ @copyright: © 2013 Isis Lovecruft, The Tor Project Inc. """
-from socket import error as socket_error +from socket import error as socket_error +from socket import timeout as socket_timeout from time import sleep
import os @@ -30,13 +31,12 @@ import struct import sys import types
+import OpenSSL + from ipaddr import IPAddress -from OpenSSL import SSL -from OpenSSL.crypto import dump_certificate, dump_privatekey -from OpenSSL.crypto import X509Name, PKey, FILETYPE_PEM -from twisted.internet import defer -from twisted.python import usage -from twisted.python.failure import Failure +from OpenSSL import SSL, crypto +from twisted.internet import defer, threads +from twisted.python import usage, failure
from ooni import nettest, config from ooni.utils import log, NotRootError @@ -82,6 +82,13 @@ class HostUnreachableError(Exception): """Raised when there the host IP address appears to be unreachable.""" pass
+class ConnectionTimeout(Exception): + """ + Raised when we receive a :class:`socket.timeout`, in order to pass the + Exception along to :func:`connectionFailed`. + """ + pass + class UsageOptions(usage.Options): optParameters = [ ['host', 'h', None, 'Remote host IP address (v4/v6)'], @@ -191,13 +198,14 @@ class TLSHandshakeTest(nettest.NetTestCase): def getPeerCert(connection, get_chain=False): if not get_chain: x509_cert = connection.get_peer_certificate() - pem_cert = dump_certificate(FILETYPE_PEM, x509_cert) + pem_cert = crypto.dump_certificate(crypto.FILETYPE_PEM, x509_cert) return pem_cert else: cert_chain = [] x509_cert_chain = connection.get_peer_cert_chain() for x509_cert in x509_cert_chain: - pem_cert = dump_certificate(FILETYPE_PEM, x509_cert) + pem_cert = crypto.dump_certificate(crypto.FILETYPE_PEM, + x509_cert) cert_chain.append(pem_cert) return cert_chain
@@ -216,9 +224,9 @@ class TLSHandshakeTest(nettest.NetTestCase): x509_name = None
try: - assert isinstance(certificate, X509Name), \ + assert isinstance(certificate, crypto.X509Name), \ "getX509Name takes OpenSSL.crypto.X509Name as first argument!" - x509_name = X509Name(certificate) + x509_name = crypto.X509Name(certificate) except AssertionError as ae: log.err(ae) except Exception as exc: @@ -240,12 +248,12 @@ class TLSHandshakeTest(nettest.NetTestCase): @param key: A :class:`OpenSSL.crypto.PKey` object. """ try: - assert isinstance(key, PKey), \ + assert isinstance(key, crypto.PKey), \ "getPublicKey expects type OpenSSL.crypto.PKey for parameter key" except AssertionError as ae: log.err(ae) else: - pubkey = dump_privatekey(FILETYPE_PEM, key) + pubkey = crypto.dump_privatekey(crypto.FILETYPE_PEM, key) return pubkey
def test_tlsv1_handshake(self):