diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2019-10-26 15:28:39 +1300 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2019-10-26 15:28:39 +1300 |
commit | 1ade643cbc01f3f7bd96e90bd8837df7ed491a09 (patch) | |
tree | 88382dbb57feda0b1157a82a46e0f38242aa1066 /test | |
parent | e7ed01b580a139ad0fb320ad5f29bbb40ef2ddc2 (diff) | |
download | ruby-openssl-1ade643cbc01f3f7bd96e90bd8837df7ed491a09.tar.gz |
Rename `memcmp?` to `secure_compare`.
Minor improvements to formatting and documentation.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_ossl.rb | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/test/test_ossl.rb b/test/test_ossl.rb index bcefef41..b23b3792 100644 --- a/test/test_ossl.rb +++ b/test/test_ossl.rb @@ -6,28 +6,28 @@ require 'benchmark' if defined?(OpenSSL) class OpenSSL::OSSL < OpenSSL::SSLTestCase - def test_memcmp? - assert_raises(ArgumentError) { OpenSSL.memcmp?("aaa", "a") } - assert_raises(ArgumentError) { OpenSSL.memcmp?("aaa", "aa") } + def test_secure_compare + assert_raises(ArgumentError) { OpenSSL.secure_compare("aaa", "a") } + assert_raises(ArgumentError) { OpenSSL.secure_compare("aaa", "aa") } - assert OpenSSL.memcmp?("aaa", "aaa") - assert OpenSSL.memcmp?( + assert OpenSSL.secure_compare("aaa", "aaa") + assert OpenSSL.secure_compare( OpenSSL::Digest::SHA256.digest("aaa"), OpenSSL::Digest::SHA256.digest("aaa") ) - assert_raises(ArgumentError) { OpenSSL.memcmp?("aaa", "aaaa") } - refute OpenSSL.memcmp?("aaa", "baa") - refute OpenSSL.memcmp?("aaa", "aba") - refute OpenSSL.memcmp?("aaa", "aab") - assert_raises(ArgumentError) { OpenSSL.memcmp?("aaa", "aaab") } - assert_raises(ArgumentError) { OpenSSL.memcmp?("aaa", "b") } - assert_raises(ArgumentError) { OpenSSL.memcmp?("aaa", "bb") } - refute OpenSSL.memcmp?("aaa", "bbb") - assert_raises(ArgumentError) { OpenSSL.memcmp?("aaa", "bbbb") } + assert_raises(ArgumentError) { OpenSSL.secure_compare("aaa", "aaaa") } + refute OpenSSL.secure_compare("aaa", "baa") + refute OpenSSL.secure_compare("aaa", "aba") + refute OpenSSL.secure_compare("aaa", "aab") + assert_raises(ArgumentError) { OpenSSL.secure_compare("aaa", "aaab") } + assert_raises(ArgumentError) { OpenSSL.secure_compare("aaa", "b") } + assert_raises(ArgumentError) { OpenSSL.secure_compare("aaa", "bb") } + refute OpenSSL.secure_compare("aaa", "bbb") + assert_raises(ArgumentError) { OpenSSL.secure_compare("aaa", "bbbb") } end def test_memcmp_timing - # Ensure using memcmp? takes almost exactly the same amount of time to compare two different strings. + # Ensure using secure_compare takes almost exactly the same amount of time to compare two different strings. # Regular string comparison will short-circuit on the first non-matching character, failing this test. # NOTE: this test may be susceptible to noise if the system running the tests is otherwise under load. a = "x" * 512_000 @@ -36,9 +36,9 @@ class OpenSSL::OSSL < OpenSSL::SSLTestCase a = "#{a}x" n = 10_000 - a_b_time = Benchmark.measure { n.times { OpenSSL.memcmp?(a, b) } }.real - a_c_time = Benchmark.measure { n.times { OpenSSL.memcmp?(a, c) } }.real - assert_in_delta(a_b_time, a_c_time, 1, "memcmp? timing test failed") + a_b_time = Benchmark.measure { n.times { OpenSSL.secure_compare(a, b) } }.real + a_c_time = Benchmark.measure { n.times { OpenSSL.secure_compare(a, c) } }.real + assert_in_delta(a_b_time, a_c_time, 1, "secure_compare timing test failed") end end |