Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::SSL::SSLSocketクラス

class OpenSSL::SSL::SSLSocket

クラスの継承リスト: OpenSSL::SSL::SSLSocket < Enumerable < OpenSSL::SSL::SocketForwarder < Object < Kernel < BasicObject

Abstract

SSLSocket クラス

SSL/TLS サーバに接続して write します。

require 'socket'
require 'openssl'
include OpenSSL

soc = TCPSocket.new('www.example.com', 443)
ssl = SSL::SSLSocket.new(soc)
ssl.connect
ssl.write('hoge')
print ssl.peer_cert.to_text
ssl.close
soc.close

特異メソッド

new(socket)
new(socket, context)

SSLSocket オブジェクトを生成します。socket には TCPSocket オブジェクトを与えます。context には OpenSSL::SSL::SSLContext オブジェクトを与えます。

インスタンスメソッド

self <<

IO#<< と同様です。

accept

TLS/SSL クライアントから接続を受け付け、 TLS/SSL ハンドシェイクを実行し、自分自身を返します。

cipher

現在実際に使われている暗号の情報を配列で返します。 TLS/SSL ハンドシェイクが行われる前の接続されていない状態では nil を返します。 返される配列の形式は以下の例のように [暗号名, TLS/SSLのバージョン, 鍵長, アルゴリズムで使われる bit 数] となります。

["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
close

接続を閉じます。flush を呼んでから閉じます。

connect

接続相手との TLS/SSL ハンドシェイクを実行します。

context

SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。 [[C:openSSL::SSL::SSLContext]] オブジェクトです。

do_not_reverse_lookup=(bool)

BasicSocket#do_not_reverse_lookup と同様です。

each

IO#each と同様です。

each_byte

IO#each_byte と同様です。

eof?

IO#eof? と同様です。

fcntl(cmd[, arg])

IO#fcntl と同様です。

flush

IO#flush と同様です。

getc

IO#getc と同様です。

gets([rs])

IO#gets と同様です。

getsockopt(level, optname)

BasicSocket#getsockopt と同様です。

io
to_io

SSLSocket オブジェクトを生成する時に渡されたソケットを返します。

peer_cert

接続相手の X509 証明書 OpenSSL::X509::Certificate オブジェクトを返します。 検証結果は別途知る必要があります。

peer_cert_chain

接続相手の証明書チェーンすなわち OpenSSL::X509::Certificate オブジェクトの配列を返します。接続相手の証明書からルート CA の証明書までのリストで、順序は以下の通りです。

[接続相手の証明書, 下位CAの証明書,... 中間CAの証明書]
pending

読み取り可能なバイト数を返します。

post_connection_check
print([arg[, ...]])

IO#print と同様です。

printf(format[, arg[, ...]])

IO#printf と同様です。

puts([obj[, ...]])

IO#puts と同様です。

read([length[, buf]])

IO#read と同様です。

readchar

IO#readchar と同様です。

readlines([rs])

IO#readlines と同様です。

setsockopt(level, optname, optval)

BasicSocket#setsockopt と同様です。

state

現在の状態を 6 文字の文字列で返します。

sync_close
sync_close=
sysclose

接続を閉じます。相手に'close notify'を送ります。

sysread(length[, buf])

IO#sysread と同様です。

syswrite(string)

IO#syswrite と同様です。

ungetc(char)

IO#ungetc と同様です。

write(str)

IO#write と同様です。

定数

BLOCK_SIZE

Methods

Classes