aboutsummaryrefslogtreecommitdiffstats
path: root/tests/hazmat/backends/test_openssl.py
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2013-12-30 08:28:18 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2013-12-30 11:17:09 -0600
commite646369697f9de02b904c6492cc523305108a244 (patch)
tree2be78743e32cac015fe48b7dbc24890cd4157cec /tests/hazmat/backends/test_openssl.py
parent541c72021bfae49712a16069c44a32737e4b283b (diff)
downloadcryptography-e646369697f9de02b904c6492cc523305108a244.tar.gz
cryptography-e646369697f9de02b904c6492cc523305108a244.tar.bz2
cryptography-e646369697f9de02b904c6492cc523305108a244.zip
add urandom engine register/unregister tests
also rename some variables in the urandom engine for easier comparison
Diffstat (limited to 'tests/hazmat/backends/test_openssl.py')
-rw-r--r--tests/hazmat/backends/test_openssl.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py
index 543a05fe..4dd74c35 100644
--- a/tests/hazmat/backends/test_openssl.py
+++ b/tests/hazmat/backends/test_openssl.py
@@ -97,3 +97,61 @@ class TestOpenSSL(object):
backend.lib.EVP_F_EVP_DECRYPTFINAL_EX,
0
)
+
+ # This test is not in the next class because to check if it's really
+ # default we don't want to run the setup_method before it
+ def test_urandom_engine_is_default(self):
+ e = backend.lib.ENGINE_get_default_RAND()
+ name = backend.lib.ENGINE_get_name(e)
+ assert name == backend.lib.Cryptography_urandom_engine_name
+ res = backend.lib.ENGINE_free(e)
+ assert res == 1
+
+
+class TestOpenSSLRandomEngine(object):
+ def setup_method(self, method):
+ # we need to reset state to being default. backend is a shared global
+ # for all these tests.
+ backend.register_urandom_engine()
+ pass
+
+ def test_register_urandom_already_default(self):
+ e = backend.lib.ENGINE_get_default_RAND()
+ name = backend.lib.ENGINE_get_name(e)
+ assert name == backend.lib.Cryptography_urandom_engine_name
+ res = backend.lib.ENGINE_free(e)
+ assert res == 1
+ backend.register_urandom_engine()
+ e = backend.lib.ENGINE_get_default_RAND()
+ name = backend.lib.ENGINE_get_name(e)
+ assert name == backend.lib.Cryptography_urandom_engine_name
+ res = backend.lib.ENGINE_free(e)
+ assert res == 1
+
+ def test_unregister_urandom_engine_already_unregistered(self):
+ backend.unregister_urandom_engine()
+ e = backend.lib.ENGINE_get_default_RAND()
+ assert e == backend.ffi.NULL
+ backend.unregister_urandom_engine()
+ e = backend.lib.ENGINE_get_default_RAND()
+ assert e == backend.ffi.NULL
+
+ def test_unregister_urandom_engine(self):
+ e = backend.lib.ENGINE_get_default_RAND()
+ assert e != backend.ffi.NULL
+ name = backend.lib.ENGINE_get_name(e)
+ assert name == backend.lib.Cryptography_urandom_engine_name
+ backend.unregister_urandom_engine()
+ e = backend.lib.ENGINE_get_default_RAND()
+ assert e == backend.ffi.NULL
+
+ def test_register_urandom_not_default(self):
+ backend.unregister_urandom_engine()
+ e = backend.lib.ENGINE_get_default_RAND()
+ assert e == backend.ffi.NULL
+ backend.register_urandom_engine()
+ e = backend.lib.ENGINE_get_default_RAND()
+ name = backend.lib.ENGINE_get_name(e)
+ assert name == backend.lib.Cryptography_urandom_engine_name
+ res = backend.lib.ENGINE_free(e)
+ assert res == 1