diff options
-rw-r--r-- | cryptography/hazmat/bindings/openssl/binding.py | 2 | ||||
-rw-r--r-- | cryptography/hazmat/bindings/openssl/osrandom_engine.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/cryptography/hazmat/bindings/openssl/binding.py b/cryptography/hazmat/bindings/openssl/binding.py index 714ecc07..0469a1ea 100644 --- a/cryptography/hazmat/bindings/openssl/binding.py +++ b/cryptography/hazmat/bindings/openssl/binding.py @@ -98,7 +98,7 @@ class Binding(object): _OSX_PRE_INCLUDE, _OSX_POST_INCLUDE, libraries) res = cls.lib.Cryptography_add_osrandom_engine() - assert res == 1 + assert res != 0 @classmethod def is_available(cls): diff --git a/cryptography/hazmat/bindings/openssl/osrandom_engine.py b/cryptography/hazmat/bindings/openssl/osrandom_engine.py index 23f2e17a..bbb3d642 100644 --- a/cryptography/hazmat/bindings/openssl/osrandom_engine.py +++ b/cryptography/hazmat/bindings/openssl/osrandom_engine.py @@ -175,6 +175,13 @@ static RAND_METHOD osrandom_rand = { }; int Cryptography_add_osrandom_engine(void) { + ENGINE *engine = ENGINE_by_id(Cryptography_osrandom_engine_id); + if (engine != NULL) { + // The engine has already been added, + ENGINE_free(engine); + return 2; + } + ENGINE *e = ENGINE_new(); if (e == NULL) { return 0; |