Merge pull request #1077 from reaperhulk/rsa-padding-supported

Add rsa_padding_supported
diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py
index b343200..f989623 100644
--- a/tests/hazmat/backends/test_openssl.py
+++ b/tests/hazmat/backends/test_openssl.py
@@ -160,15 +160,6 @@
         with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_HASH):
             backend.derive_pbkdf2_hmac(hashes.SHA256(), 10, b"", 1000, b"")
 
-    # This test is not in the TestOpenSSLRandomEngine class because to check
-    # if it's really default we don't want to run the setup_method before it
-    def test_osrandom_engine_is_default(self):
-        e = backend._lib.ENGINE_get_default_RAND()
-        name = backend._lib.ENGINE_get_name(e)
-        assert name == backend._lib.Cryptography_osrandom_engine_name
-        res = backend._lib.ENGINE_free(e)
-        assert res == 1
-
     @pytest.mark.skipif(
         backend._lib.OPENSSL_VERSION_NUMBER >= 0x1000000f,
         reason="Requires an older OpenSSL. Must be < 1.0.0"
@@ -190,6 +181,25 @@
         parameters = dsa.DSAParameters.generate(3072, backend)
         assert utils.bit_length(parameters.p) == 3072
 
+    def test_int_to_bn(self):
+        value = (2 ** 4242) - 4242
+        bn = backend._int_to_bn(value)
+        assert bn != backend._ffi.NULL
+        bn = backend._ffi.gc(bn, backend._lib.BN_free)
+
+        assert bn
+        assert backend._bn_to_int(bn) == value
+
+    def test_int_to_bn_inplace(self):
+        value = (2 ** 4242) - 4242
+        bn_ptr = backend._lib.BN_new()
+        assert bn_ptr != backend._ffi.NULL
+        bn_ptr = backend._ffi.gc(bn_ptr, backend._lib.BN_free)
+        bn = backend._int_to_bn(value, bn_ptr)
+
+        assert bn == bn_ptr
+        assert backend._bn_to_int(bn_ptr) == value
+
 
 class TestOpenSSLRandomEngine(object):
     def teardown_method(self, method):
@@ -200,6 +210,15 @@
         name = backend._lib.ENGINE_get_name(current_default)
         assert name == backend._lib.Cryptography_osrandom_engine_name
 
+    # This must be the first test in the class so that the teardown method
+    # has not (potentially) altered the default engine.
+    def test_osrandom_engine_is_default(self):
+        e = backend._lib.ENGINE_get_default_RAND()
+        name = backend._lib.ENGINE_get_name(e)
+        assert name == backend._lib.Cryptography_osrandom_engine_name
+        res = backend._lib.ENGINE_free(e)
+        assert res == 1
+
     def test_osrandom_sanity_check(self):
         # This test serves as a check against catastrophic failure.
         buf = backend._ffi.new("char[]", 500)
@@ -250,25 +269,6 @@
         e = backend._lib.ENGINE_get_default_RAND()
         assert e == backend._ffi.NULL
 
-    def test_int_to_bn(self):
-        value = (2 ** 4242) - 4242
-        bn = backend._int_to_bn(value)
-        assert bn != backend._ffi.NULL
-        bn = backend._ffi.gc(bn, backend._lib.BN_free)
-
-        assert bn
-        assert backend._bn_to_int(bn) == value
-
-    def test_int_to_bn_inplace(self):
-        value = (2 ** 4242) - 4242
-        bn_ptr = backend._lib.BN_new()
-        assert bn_ptr != backend._ffi.NULL
-        bn_ptr = backend._ffi.gc(bn_ptr, backend._lib.BN_free)
-        bn = backend._int_to_bn(value, bn_ptr)
-
-        assert bn == bn_ptr
-        assert backend._bn_to_int(bn_ptr) == value
-
 
 class TestOpenSSLRSA(object):
     @pytest.mark.skipif(