aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-04-20 14:57:29 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-04-20 14:57:29 -0500
commit38717628f833a2568b379f9ed563220ec5c57ee5 (patch)
tree4936b72d2ec264cdb2f4e6f19fe165169fc00972 /tests
parentb8ba9e0fe330e213a93bd32b1368bf839d4d9ec7 (diff)
downloadcryptography-38717628f833a2568b379f9ed563220ec5c57ee5.tar.gz
cryptography-38717628f833a2568b379f9ed563220ec5c57ee5.tar.bz2
cryptography-38717628f833a2568b379f9ed563220ec5c57ee5.zip
fix SSL_OP_ALL being unusable on Windows due to long being 32-bit signed
Diffstat (limited to 'tests')
-rw-r--r--tests/hazmat/bindings/test_openssl.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/hazmat/bindings/test_openssl.py b/tests/hazmat/bindings/test_openssl.py
index acab22b1..cf3024a7 100644
--- a/tests/hazmat/bindings/test_openssl.py
+++ b/tests/hazmat/bindings/test_openssl.py
@@ -103,3 +103,37 @@ class TestOpenSSL(object):
b = Binding()
res = b.lib.Cryptography_add_osrandom_engine()
assert res == 2
+
+ # Test that we're properly handling 32-bit unsigned on all platforms
+ def test_ssl_ctx_options(self):
+ b = Binding()
+ assert b.lib.SSL_OP_ALL > 0
+ ctx = b.lib.SSL_CTX_new(b.lib.TLSv1_method())
+ ctx = b.ffi.gc(ctx, b.lib.SSL_CTX_free)
+ resp = b.lib.SSL_CTX_set_options(ctx, b.lib.SSL_OP_ALL)
+ assert resp == b.lib.SSL_OP_ALL
+ assert b.lib.SSL_OP_ALL == b.lib.SSL_CTX_get_options(ctx)
+
+ # Test that we're properly handling 32-bit unsigned on all platforms
+ def test_ssl_options(self):
+ b = Binding()
+ assert b.lib.SSL_OP_ALL > 0
+ ctx = b.lib.SSL_CTX_new(b.lib.TLSv1_method())
+ ctx = b.ffi.gc(ctx, b.lib.SSL_CTX_free)
+ ssl = b.lib.SSL_new(ctx)
+ ssl = b.ffi.gc(ssl, b.lib.SSL_free)
+ resp = b.lib.SSL_set_options(ssl, b.lib.SSL_OP_ALL)
+ assert resp == b.lib.SSL_OP_ALL
+ assert b.lib.SSL_OP_ALL == b.lib.SSL_get_options(ssl)
+
+ # Test that we're properly handling 32-bit unsigned on all platforms
+ def test_ssl_mode(self):
+ b = Binding()
+ assert b.lib.SSL_OP_ALL > 0
+ ctx = b.lib.SSL_CTX_new(b.lib.TLSv1_method())
+ ctx = b.ffi.gc(ctx, b.lib.SSL_CTX_free)
+ ssl = b.lib.SSL_new(ctx)
+ ssl = b.ffi.gc(ssl, b.lib.SSL_free)
+ resp = b.lib.SSL_set_mode(ssl, b.lib.SSL_OP_ALL)
+ assert resp == b.lib.SSL_OP_ALL
+ assert b.lib.SSL_OP_ALL == b.lib.SSL_get_mode(ssl)