mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 08:33:58 +02:00
* ext/openssl/lib/openssl/ssl.rb
(OpenSSL::SSL::SSLSocket#post_connection_check): new method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e66dbf2906
commit
fa480f489c
3 changed files with 80 additions and 0 deletions
|
@ -194,6 +194,55 @@ class OpenSSL::TestSSL < Test::Unit::TestCase
|
|||
ssls.each{|ssl| ssl.close }
|
||||
}
|
||||
end
|
||||
|
||||
def test_post_connection_check
|
||||
sslerr = OpenSSL::SSL::SSLError
|
||||
|
||||
start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
|
||||
sock = TCPSocket.new("127.0.0.1", p)
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(sock)
|
||||
ssl.connect
|
||||
assert_raises(sslerr){ssl.post_connection_check("localhost.localdomain")}
|
||||
assert_raises(sslerr){ssl.post_connection_check("127.0.0.1")}
|
||||
assert(ssl.post_connection_check("localhost"))
|
||||
assert_raises(sslerr){ssl.post_connection_check("foo.example.com")}
|
||||
}
|
||||
|
||||
now = Time.now
|
||||
exts = [
|
||||
["keyUsage","keyEncipherment,digitalSignature",true],
|
||||
["subjectAltName","DNS:localhost.localdomain",false],
|
||||
["subjectAltName","IP:127.0.0.1",false],
|
||||
]
|
||||
@svr_cert = issue_cert(@svr, @svr_key, 4, now, now+1800, exts,
|
||||
@ca_cert, @ca_key, OpenSSL::Digest::SHA1.new)
|
||||
start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
|
||||
sock = TCPSocket.new("127.0.0.1", p)
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(sock)
|
||||
ssl.connect
|
||||
assert(ssl.post_connection_check("localhost.localdomain"))
|
||||
assert(ssl.post_connection_check("127.0.0.1"))
|
||||
assert_raises(sslerr){ssl.post_connection_check("localhost")}
|
||||
assert_raises(sslerr){ssl.post_connection_check("foo.example.com")}
|
||||
}
|
||||
|
||||
now = Time.now
|
||||
exts = [
|
||||
["keyUsage","keyEncipherment,digitalSignature",true],
|
||||
["subjectAltName","DNS:*.localdomain",false],
|
||||
]
|
||||
@svr_cert = issue_cert(@svr, @svr_key, 5, now, now+1800, exts,
|
||||
@ca_cert, @ca_key, OpenSSL::Digest::SHA1.new)
|
||||
start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
|
||||
sock = TCPSocket.new("127.0.0.1", p)
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(sock)
|
||||
ssl.connect
|
||||
assert(ssl.post_connection_check("localhost.localdomain"))
|
||||
assert_raises(sslerr){ssl.post_connection_check("127.0.0.1")}
|
||||
assert_raises(sslerr){ssl.post_connection_check("localhost")}
|
||||
assert_raises(sslerr){ssl.post_connection_check("foo.example.com")}
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue