mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* sample/openssl: reviewed and remove dependency on getopts.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8fd4044446
commit
a3bfedac36
8 changed files with 53 additions and 947 deletions
|
@ -2,15 +2,15 @@
|
|||
|
||||
require 'socket'
|
||||
require 'openssl'
|
||||
require 'getopts'
|
||||
require 'optparse'
|
||||
|
||||
getopts nil, "p:2000", "c:", "k:", "C:"
|
||||
options = ARGV.getopts("p:c:k:C:")
|
||||
|
||||
host = ARGV[0] || "localhost"
|
||||
port = $OPT_p
|
||||
cert_file = $OPT_c
|
||||
key_file = $OPT_k
|
||||
ca_path = $OPT_C
|
||||
port = options["p"] || "2000"
|
||||
cert_file = options["c"]
|
||||
key_file = options["k"]
|
||||
ca_path = options["C"]
|
||||
|
||||
ctx = OpenSSL::SSL::SSLContext.new()
|
||||
if cert_file && key_file
|
||||
|
@ -27,11 +27,18 @@ end
|
|||
s = TCPSocket.new(host, port)
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(s, ctx)
|
||||
ssl.connect # start SSL session
|
||||
p ssl.peer_cert
|
||||
errors = Hash.new
|
||||
OpenSSL::X509.constants.grep(/^V_(ERR_|OK)/).each do |name|
|
||||
errors[OpenSSL::X509.const_get(name)] = name
|
||||
end
|
||||
p errors[ssl.verify_result]
|
||||
|
||||
ssl.sync_close = true # if true the underlying socket will be
|
||||
# closed in SSLSocket#close. (default: false)
|
||||
while line = $stdin.gets
|
||||
ssl.write line
|
||||
print ssl.gets
|
||||
puts ssl.gets.inspect
|
||||
end
|
||||
|
||||
ssl.close
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue