adds more client tests

This commit is contained in:
Moisés Guimarães
2016-12-22 17:58:13 -02:00
parent 35f03eb00a
commit 53d4c171c8
3 changed files with 44 additions and 11 deletions

View File

@@ -28,16 +28,15 @@ import ssl
import wolfssl import wolfssl
class SSLClientTest(unittest.TestCase): class SSLClientTest(unittest.TestCase):
ssl_provider = ssl provider = ssl
host = "www.google.com" host = "www.globalsign.com"
port = 443 port = 443
def setUp(self): def setUp(self):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def test_wrap_socket(self): def test_wrap_socket(self):
secure_sock = self.ssl_provider.wrap_socket( secure_sock = self.provider.wrap_socket(self.sock)
self.sock, ssl_version=self.ssl_provider.PROTOCOL_SSLv23)
secure_sock.connect((self.host, self.port)) secure_sock.connect((self.host, self.port))
secure_sock.write(b"GET / HTTP/1.1\n\n") secure_sock.write(b"GET / HTTP/1.1\n\n")
@@ -45,6 +44,44 @@ class SSLClientTest(unittest.TestCase):
secure_sock.close() secure_sock.close()
def test_wrap_socket_with_ca(self):
secure_sock = self.provider.wrap_socket(
self.sock, cert_reqs=self.provider.CERT_REQUIRED,
ca_certs="../../../certs/external/ca-globalsign-root-r2.pem")
secure_sock.connect((self.host, self.port))
secure_sock.write(b"GET / HTTP/1.1\n\n")
self.assertEqual(b"HTTP", secure_sock.read(4))
secure_sock.close()
def test_wrap_socket_from_context(self):
ctx = self.provider.SSLContext(self.provider.PROTOCOL_TLSv1_2)
ctx.verify_mode = self.provider.CERT_REQUIRED
ctx.load_verify_locations(
"../../../certs/external/ca-globalsign-root-r2.pem")
secure_sock = ctx.wrap_socket(self.sock)
secure_sock.connect((self.host, self.port))
secure_sock.write(b"GET / HTTP/1.1\n\n")
self.assertEqual(b"HTTP", secure_sock.read(4))
secure_sock.close()
def test_ssl_socket(self):
secure_sock = self.provider.SSLSocket(
self.sock,
cert_reqs=self.provider.CERT_REQUIRED,
ca_certs="../../../certs/external/ca-globalsign-root-r2.pem")
secure_sock.connect((self.host, self.port))
secure_sock.write(b"GET / HTTP/1.1\n\n")
self.assertEqual(b"HTTP", secure_sock.read(4))
secure_sock.close()
class TestWolfSSL(SSLClientTest): class TestWolfSSL(SSLClientTest):
ssl_provider = wolfssl provider = wolfssl

View File

@@ -129,9 +129,6 @@ class TestSSLContext(unittest.TestCase):
def test_verify_mode(self): def test_verify_mode(self):
self.assertEqual(self.ctx.verify_mode, self.provider.CERT_NONE) self.assertEqual(self.ctx.verify_mode, self.provider.CERT_NONE)
self.ctx.verify_mode = self.provider.CERT_OPTIONAL
self.assertEqual(self.ctx.verify_mode, self.provider.CERT_OPTIONAL)
self.ctx.verify_mode = self.provider.CERT_REQUIRED self.ctx.verify_mode = self.provider.CERT_REQUIRED
self.assertEqual(self.ctx.verify_mode, self.provider.CERT_REQUIRED) self.assertEqual(self.ctx.verify_mode, self.provider.CERT_REQUIRED)

View File

@@ -51,10 +51,9 @@ from wolfssl.__about__ import (
globals().update(METADATA) globals().update(METADATA)
CERT_NONE = 0 CERT_NONE = 0
CERT_OPTIONAL = 1 CERT_REQUIRED = 1
CERT_REQUIRED = 2
_VERIFY_MODE_LIST = [CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED] _VERIFY_MODE_LIST = [CERT_NONE, CERT_REQUIRED]
_SSL_SUCCESS = 1 _SSL_SUCCESS = 1
_SSL_FILETYPE_PEM = 1 _SSL_FILETYPE_PEM = 1