diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-08-01 11:57:10 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-08-01 11:57:10 -0400 |
commit | 57b147c74ad29ad5c092150195f3ebf9ece5aee2 (patch) | |
tree | 41a045b507edd22387355eac01981b03b6e21176 /tests/hazmat/backends/test_openssl.py | |
parent | 172d6846d78e34c005d2c679cf53dd79a3e54d8e (diff) | |
parent | 301952b141eb346fea4c0308e9c54bd94370b145 (diff) | |
download | cryptography-57b147c74ad29ad5c092150195f3ebf9ece5aee2.tar.gz cryptography-57b147c74ad29ad5c092150195f3ebf9ece5aee2.tar.bz2 cryptography-57b147c74ad29ad5c092150195f3ebf9ece5aee2.zip |
Merge pull request #2181 from reaperhulk/move-urandom-test
move urandom engine test
Diffstat (limited to 'tests/hazmat/backends/test_openssl.py')
-rw-r--r-- | tests/hazmat/backends/test_openssl.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py index 6a2e8a77..040e3677 100644 --- a/tests/hazmat/backends/test_openssl.py +++ b/tests/hazmat/backends/test_openssl.py @@ -34,6 +34,20 @@ from ..primitives.test_ec import _skip_curve_unsupported from ...utils import load_vectors_from_file, raises_unsupported_algorithm +def skip_if_libre_ssl(openssl_version): + if u'LibreSSL' in openssl_version: + pytest.skip("LibreSSL hard-codes RAND_bytes to use arc4random.") + + +class TestLibreSkip(object): + def test_skip_no(self): + assert skip_if_libre_ssl(u"OpenSSL 0.9.8zf 19 Mar 2015") is None + + def test_skip_yes(self): + with pytest.raises(pytest.skip.Exception): + skip_if_libre_ssl(u"LibreSSL 2.1.6") + + @utils.register_interface(Mode) class DummyMode(object): name = "dummy-mode" @@ -216,6 +230,19 @@ class TestOpenSSL(object): bn = backend._int_to_bn(0) assert backend._bn_to_int(bn) == 0 + def test_actual_osrandom_bytes(self, monkeypatch): + skip_if_libre_ssl(backend.openssl_version_text()) + sample_data = (b"\x01\x02\x03\x04" * 4) + length = len(sample_data) + + def notrandom(size): + assert size == length + return sample_data + monkeypatch.setattr(os, "urandom", notrandom) + buf = backend._ffi.new("char[]", length) + backend._lib.RAND_bytes(buf, length) + assert backend._ffi.buffer(buf)[0:length] == sample_data + class TestOpenSSLRandomEngine(object): def teardown_method(self, method): |