aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2018-07-27 17:01:04 +0900
committerKazuki Yamaguchi <k@rhe.jp>2018-10-17 16:42:36 +0900
commitf653cfa43f0f20e8c440122ea982382b6228e7f5 (patch)
tree4808109f2ccee9349d5b69caba292092f1c8bc3b /test
parent1f90516e32ecd755d592002585e97cb78752eae2 (diff)
downloadruby-openssl-f653cfa43f0f20e8c440122ea982382b6228e7f5.tar.gz
x509name: fix OpenSSL::X509::Name#{cmp,<=>}ky/x509name-cmp-bugfix
Fix wrong use of X509_NAME_cmp() return value. OpenSSL::X509::Name#<=> could return 0 when the two objects aren't identical. Reported by Tyler Eckstein. CVE-2018-16395. Reference: https://hackerone.com/reports/387250
Diffstat (limited to 'test')
-rw-r--r--test/test_x509name.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/test/test_x509name.rb b/test/test_x509name.rb
index c1dacf4f..6c8fa61b 100644
--- a/test/test_x509name.rb
+++ b/test/test_x509name.rb
@@ -330,10 +330,16 @@ class OpenSSL::TestX509Name < OpenSSL::TestCase
end
def test_spaceship
- n1 = OpenSSL::X509::Name.parse 'CN=a'
- n2 = OpenSSL::X509::Name.parse 'CN=b'
-
- assert_equal(-1, n1 <=> n2)
+ n1 = OpenSSL::X509::Name.new([["CN", "a"]])
+ n2 = OpenSSL::X509::Name.new([["CN", "a"]])
+ n3 = OpenSSL::X509::Name.new([["CN", "ab"]])
+
+ assert_equal 0, n1 <=> n2
+ assert_equal -1, n1 <=> n3
+ assert_equal 0, n2 <=> n1
+ assert_equal -1, n2 <=> n3
+ assert_equal 1, n3 <=> n1
+ assert_equal 1, n3 <=> n2
end
def name_hash(name)