@@ -26,15 +26,15 @@ def test_openssl_engine_by_id_string
26
26
with_openssl <<-'end;'
27
27
orig = OpenSSL::Engine.engines
28
28
pend "'openssl' is already loaded" if orig.any? { |e| e.id == "openssl" }
29
- engine = get_engine
29
+ engine = OpenSSL::Engine.by_id("openssl")
30
30
assert_not_nil(engine)
31
31
assert_equal(1, OpenSSL::Engine.engines.size - orig.size)
32
32
end;
33
33
end
34
34
35
35
def test_openssl_engine_id_name_inspect
36
36
with_openssl <<-'end;'
37
- engine = get_engine
37
+ engine = OpenSSL::Engine.by_id("openssl")
38
38
assert_equal("openssl", engine.id)
39
39
assert_not_nil(engine.name)
40
40
assert_not_nil(engine.inspect)
@@ -43,7 +43,7 @@ def test_openssl_engine_id_name_inspect
43
43
44
44
def test_openssl_engine_digest_sha1
45
45
with_openssl <<-'end;'
46
- engine = get_engine
46
+ engine = OpenSSL::Engine.by_id("openssl")
47
47
digest = engine.digest("SHA1")
48
48
assert_not_nil(digest)
49
49
data = "test"
@@ -59,12 +59,21 @@ def test_openssl_engine_cipher_rc4
59
59
end
60
60
61
61
with_openssl ( <<-'end;' , ignore_stderr : true )
62
- engine = get_engine
62
+ engine = OpenSSL::Engine.by_id("openssl")
63
63
algo = "RC4"
64
64
data = "a" * 1000
65
65
key = OpenSSL::Random.random_bytes(16)
66
- encrypted = crypt_data(data, key, :encrypt) { engine.cipher(algo) }
67
- decrypted = crypt_data(encrypted, key, :decrypt) { OpenSSL::Cipher.new(algo) }
66
+
67
+ cipher = engine.cipher(algo)
68
+ cipher.encrypt
69
+ cipher.key = key
70
+ encrypted = cipher.update(data) + cipher.final
71
+
72
+ cipher = OpenSSL::Cipher.new(algo)
73
+ cipher.decrypt
74
+ cipher.key = key
75
+ decrypted = cipher.update(encrypted) + cipher.final
76
+
68
77
assert_equal(data, decrypted)
69
78
end;
70
79
end
@@ -74,24 +83,9 @@ def test_openssl_engine_cipher_rc4
74
83
# this is required because OpenSSL::Engine methods change global state
75
84
def with_openssl ( code , **opts )
76
85
assert_separately ( [ { "OSSL_MDEBUG" => nil } , "-ropenssl" ] , <<~"end;" , **opts )
77
- require #{ __FILE__ . dump }
78
- include OpenSSL::TestEngine::Utils
79
86
#{ code }
80
87
end;
81
88
end
82
-
83
- module Utils
84
- def get_engine
85
- OpenSSL ::Engine . by_id ( "openssl" )
86
- end
87
-
88
- def crypt_data ( data , key , mode )
89
- cipher = yield
90
- cipher . send mode
91
- cipher . key = key
92
- cipher . update ( data ) + cipher . final
93
- end
94
- end
95
89
end
96
90
97
91
end
0 commit comments