1
0
Fork 0
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:
gotoyuzo 2007-12-24 07:31:23 +00:00
parent 8fd4044446
commit a3bfedac36
8 changed files with 53 additions and 947 deletions

View file

@ -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