種類
- インスタンスメソッド (34)
- クラス (2)
- モジュール関数 (2)
- 特異メソッド (2)
- モジュール (1)
クラス
モジュール
キーワード
- SSLServer (1)
- SSLSocket (1)
- SocketForwarder (1)
- accept (2)
-
accept
_ nonblock (1) - addr (1)
- cert (1)
- cipher (1)
- closed? (1)
- connect (1)
-
connect
_ nonblock (1) - context (1)
-
do
_ not _ reverse _ lookup= (1) - egd (1)
-
egd
_ bytes (1) - fcntl (1)
- getsockopt (1)
- hostname (1)
- hostname= (1)
- io (1)
- new (2)
-
peer
_ cert (1) -
peer
_ cert _ chain (1) - peeraddr (1)
- pending (1)
-
post
_ connection _ check (1) - session (1)
- session= (1)
-
session
_ reused? (1) - setsockopt (1)
- shutdown (1)
- state (1)
-
sync
_ close (1) -
sync
_ close= (1) - sysclose (1)
- sysread (1)
- syswrite (1)
-
to
_ io (1) -
verify
_ result (1)
検索結果
先頭5件
-
OpenSSL
:: SSL :: SSLSocket (27025.0) -
ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。
...。
require 'socket'
require 'openssl'
include OpenSSL
soc = TCPSocket.new('www.example.com', 443)
ssl = SSL::SSLSocket.new(soc)
ssl.connect
ssl.post_connection_check('www.example.com')
raise "verification error" if ssl.verify_result != OpenSSL::X509::V_OK
ssl.write('hoge')
p... -
OpenSSL
:: SSL :: SocketForwarder (27007.0) -
to_io で返されるソケットオブジェクトにメソッドを フォワードするモジュールです。
...to_io で返されるソケットオブジェクトにメソッドを
フォワードするモジュールです。
OpenSSL::SSL::SSLSocket や OpenSSL::SSL::SSLServer と
いったソケットの SSL ラッパクラスにソケット関連のメソッドを定義するため
に使われます。... -
OpenSSL
:: SSL :: SSLSocket . new(socket) -> OpenSSL :: SSL :: SSLSocket (18997.0) -
socket をラップして SSLSocket オブジェクトを生成します。
...TCPSocket オブジェクトを与え、
context には SSL の設定情報を所持している
OpenSSL::SSL::SSLContext オブジェクトを与えます。
context を省略した場合は OpenSSL::SSL::SSLContext.new で
新たにコンテキストを生成してそれを用います。
@para......m socket ラップするソケット
@param context SSL の設定情報を持つ SSL コンテキストオブジェクト
@raise OpenSSL::SSL::SSLError オブジェクトの生成に失敗した場合に発生します... -
OpenSSL
:: SSL :: SSLSocket . new(socket , context) -> OpenSSL :: SSL :: SSLSocket (18997.0) -
socket をラップして SSLSocket オブジェクトを生成します。
...TCPSocket オブジェクトを与え、
context には SSL の設定情報を所持している
OpenSSL::SSL::SSLContext オブジェクトを与えます。
context を省略した場合は OpenSSL::SSL::SSLContext.new で
新たにコンテキストを生成してそれを用います。
@para......m socket ラップするソケット
@param context SSL の設定情報を持つ SSL コンテキストオブジェクト
@raise OpenSSL::SSL::SSLError オブジェクトの生成に失敗した場合に発生します... -
OpenSSL
:: SSL :: SSLSocket # cert -> OpenSSL :: X509 :: Certificate | nil (18307.0) -
自分自身を証明する証明書を返します。
...身を証明する証明書を使わなかった場合は nil を返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼んだ
場合も nil を返します。
@see OpenSSL::SSL::SSLContext#cert... -
OpenSSL
:: SSL :: SSLSocket # context -> OpenSSL :: SSL :: SSLContext (18307.0) -
SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
...SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
@see OpenSSL::SSL::SSLSocket.new... -
OpenSSL
:: SSL :: SSLSocket # peer _ cert -> OpenSSL :: X509 :: Certificate | nil (18307.0) -
接続相手の証明書オブジェクトを返します。
...接続相手の証明書オブジェクトを返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
@see OpenSSL::SSL::SSLSocket#peer_cert_chain... -
OpenSSL
:: SSL :: SSLSocket # peer _ cert _ chain -> [OpenSSL :: X509 :: Certificate] | nil (18307.0) -
接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト の配列で返します。
...接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト
の配列で返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
以下の順......の配列を返します。
[接続相手の証明書, 下位CAの証明書,... 中間CAの証明書]
ルート CA の証明書は含まれないことに注意してください。
@see OpenSSL::SSL::SSLSocket#peer_cert... -
OpenSSL
:: SSL :: SSLSocket # session -> OpenSSL :: SSL :: Session (18307.0) -
利用している SSL セッションを OpenSSL::SSL::Session オブジェクトで返します。
...利用している SSL セッションを OpenSSL::SSL::Session
オブジェクトで返します。
@see OpenSSL::SSL::SSLSocket#session=,
OpenSSL::SSL::SSLSocket#session_reused?... -
OpenSSL
:: SSL :: SSLSocket # accept -> self (18007.0) -
TLS/SSL 通信をサーバモードとして開始し、クライアントからの ハンドシェイク開始を待ち、クライアントとのハンドシェイクを実行します。
...行します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#connect,
OpenSSL::SSL::SSLSocket#accep... -
OpenSSL
:: SSL :: SSLSocket # accept _ nonblock -> self (18007.0) -
ノンブロッキング方式で TLS/SSL 通信をサーバモードとして開始し、 クライアントとのハンドシェイクを実行します。
...イクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
(実際は OpenSSL::SSL::SSLError をこのモジュ......ールで extend した
例外オブジェクトが生成されます)
@raise OpenSSL::SSL::SSLError ソケットが読み込み/書き込み可能状態になるのを
待つ必要がある場合に発生します。
読み込み可能状態を待つ必要がある場合には......IO::WaitReadable を、
書き込み可能状態を待つ必要がある場合には IO::WaitWritable を、
それぞれ extend した例外オブジェクトが生成されます。
@see OpenSSL::SSL::SSLSocket#connect_nonblock,
OpenSSL::SSL::SSLSocket#accept... -
OpenSSL
:: SSL :: SSLSocket # cipher -> [String , String , Integer , Integer] (18007.0) -
現在実際に使われている暗号の情報を配列で返します。
...ージョン, 鍵長, アルゴリズムで使われる bit 数] となります。
["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。... -
OpenSSL
:: SSL :: SSLSocket # connect -> self (18007.0) -
TLS/SSl 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
...します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#accept,
OpenSSL::SSL::SSLSocket#connect_... -
OpenSSL
:: SSL :: SSLSocket # connect _ nonblock -> self (18007.0) -
ノンブロッキング方式で TLS/SSL 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
...シェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@raise OpenSSL::SSL::SSLError ソケットが読み込......る場合には IO::WaitReadable を、
書き込み可能状態を待つ必要がある場合には IO::WaitWritable を、
それぞれ extend した例外オブジェクトが生成されます。
@see OpenSSL::SSL::SSLSocket#accept_nonblock,
OpenSSL::SSL::SSLSocket#connect... -
OpenSSL
:: SSL :: SSLSocket # hostname -> String | nil (18007.0) -
TLS の Server Name Indication 拡張で利用するサーバのホスト名を返します。
...TLS の Server Name Indication 拡張で利用するサーバのホスト名を返します。
OpenSSL::SSL::SSLSocket#hostname= で設定した値がそのまま返されます。
設定していない場合は nil を返します。
@see OpenSSL::SSL::SSLSocket#hostname=... -
OpenSSL
:: SSL :: SSLSocket # hostname=(hostname) (18007.0) -
TLS の Server Name Indication(SNI) 拡張で利用するサーバのホスト名を設定します。
...のため、
クライアント側が OpenSSL::SSL::SSLSocket#connect を呼ぶ前に
このメソッドでホスト名を指定する必要があります。
hostname に nil を渡すと SNI 拡張を利用しません。
サーバ側については OpenSSL::SSL::SSLContext#servername_cb= を......参照してください。
@param hostname ホスト名文字列
@see OpenSSL::SSL::SSLSocket#hostname,
OpenSSL::SSL::SSLContext#servername_cb,
OpenSSL::SSL::SSLContext#servername_cb=... -
OpenSSL
:: SSL :: SSLSocket # io -> IO (18007.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
...SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new... -
OpenSSL
:: SSL :: SSLSocket # pending -> Integer | nil (18007.0) -
OpenSSL内部のバッファが保持している、直ちに読み取り可能な データのバイト数を返します。
...OpenSSL内部のバッファが保持している、直ちに読み取り可能な
データのバイト数を返します。
ハンドシェイク開始前には nil を返します。... -
OpenSSL
:: SSL :: SSLSocket # post _ connection _ check(hostname) -> true (18007.0) -
接続後検証を行います。
...います。
検証に成功した場合は true を返し、失敗した場合は例外
OpenSSL::SSL::SSLError を発生させます。
OpenSSL の API では、
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
での検証は実用的には不完全です。
CA が証明書......証明書に記載されている FQDN が
一致しているかどうかを調べます。このメソッドはその FQDN のチェックを行ないます。
@param hostname チェックする FQDN の文字列
@raise OpenSSL::SSL::SSLError チェックに失敗した場合に発生します... -
OpenSSL
:: SSL :: SSLSocket # session=(sess) (18007.0) -
ハンドシェイクで再利用する SSL セッションを 設定します。
...。
セッションを再利用する場合は、
OpenSSL::SSL::SSLSocket#connect を呼ぶ前に
このメソッドでセッションオブジェクト
(OpenSSL::SSL::Session のインスタンス)
を設定します。
サーバ側の場合 OpenSSL::SSL::SSLContext がキャッシュの保持と......管理を行います。
@param sess 設定するセッション
@see OpenSSL::SSL::SSLSocket#session,
OpenSSL::SSL::SSLSocket#session_reused?... -
OpenSSL
:: SSL :: SSLSocket # session _ reused? -> bool (18007.0) -
利用している SSL セッションが再利用されたものである 場合に真を返します。
...利用している SSL セッションが再利用されたものである
場合に真を返します。
@see OpenSSL::SSL::Session,
OpenSSL::SSL::SSLSocket#session,
OpenSSL::SSL::SSLSocket#session=... -
OpenSSL
:: SSL :: SSLSocket # state -> String (18007.0) -
現在の状態をアルファベット 6 文字の文字列で返します。
現在の状態をアルファベット 6 文字の文字列で返します。 -
OpenSSL
:: SSL :: SSLSocket # sync _ close -> bool (18007.0) -
SSLSocket を close するときにラップしているソケットも close するかどうかを 返します。
SSLSocket を close するときにラップしているソケットも close するかどうかを
返します。
true でソケットも close します。 -
OpenSSL
:: SSL :: SSLSocket # sync _ close=(bool) (18007.0) -
SSLSocket を close するときにラップしているソケットも close するかどうかを 設定します。
SSLSocket を close するときにラップしているソケットも close するかどうかを
設定します。
true でソケットも close するようになります。
@param bool 設定する真偽値 -
OpenSSL
:: SSL :: SSLSocket # sysclose -> nil (18007.0) -
接続を閉じます。相手に'close notify'を送ります。
...y'を送ります。
このメソッドは openssl ライブラリ内で管理しているバッファを
フラッシュせずに接続を閉じます。そのため、通常は
これではなく OpenSSL::Buffering#close を呼ぶべきです。
OpenSSL::SSL::SSLSocket#sync_close が真である... -
OpenSSL
:: SSL :: SSLSocket # sysread(length , buf=nil) -> String (18007.0) -
データをバッファを経由せずに暗号化通信路から読み込み、 読み込んだデータを文字列で返します。
...に暗号化通信路から読み込み、
読み込んだデータを文字列で返します。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを読み込むべきです。
length で読み込むバイト数を指定します。
bufに......ます。
IO#sysread と同様です。
@param length 読み込むバイト数を指定します
@param buf データを書き込むバッファ
@raise EOFError 入力が終端に逹した場合に発生します
@raise OpenSSL::SSL::SSLError 読み込みに失敗した場合に発生します... -
OpenSSL
:: SSL :: SSLSocket # syswrite(string) -> Integer (18007.0) -
データをバッファを経由せずに暗号化通信路に書き込みます。
...ます。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを書き込むべきです。
IO#syswrite と同様です。
@param string 書き込むデータ文字列
@raise OpenSSL::SSL::SSLError 書き込みに失敗した場合に発生し... -
OpenSSL
:: SSL :: SSLSocket # to _ io -> IO (18007.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
...SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new... -
OpenSSL
:: SSL :: SSLSocket # verify _ result -> Integer (18007.0) -
検証結果のエラーコードを整数値で返します。
...検証結果のエラーコードを整数値で返します。
エラーコードの整数値は OpenSSL::X509 に定数が定義されています。
詳しくは c:OpenSSL::X509#verify_error を見てください。
検証に成功した場合は OpenSSL::X509::V_OK を返します。... -
OpenSSL
:: SSL :: SocketForwarder # addr -> Array (18007.0) -
ラップされているソケットの接続情報を返します。
ラップされているソケットの接続情報を返します。
IPSocket#addr と同様です。 -
OpenSSL
:: SSL :: SocketForwarder # closed? -> bool (18007.0) -
ラップされているソケットが close していたら true を返します。
ラップされているソケットが
close していたら true を返します。 -
OpenSSL
:: SSL :: SocketForwarder # do _ not _ reverse _ lookup=(bool) (18007.0) -
真を渡すとアドレスからホスト名への逆引きを行わなくなります。
真を渡すとアドレスからホスト名への逆引きを行わなくなります。
BasicSocket#do_not_reverse_lookup と同様です。
@param bool 真で逆引きを抑制します -
OpenSSL
:: SSL :: SocketForwarder # fcntl(cmd , arg=0) -> Integer (18007.0) -
ラップされているソケットに対してシステムコール fcntl を実行します。
ラップされているソケットに対してシステムコール fcntl を実行します。
IO#fcntl と同様です。
@param cmd IO に対するコマンドを、添付ライブラリ fcntl が提供している定数で指定します。
@param arg cmd に対する引数を整数、文字列、booleanのいずれかで指定します。
@raise Errno::EXXX fcntl の実行に失敗した場合に発生します。
@raise IOError 既に close されている場合に発生します。 -
OpenSSL
:: SSL :: SocketForwarder # getsockopt(level , optname) -> String (18007.0) -
ラップされているソケットのオプションを設定します。
ラップされているソケットのオプションを設定します。
BasicSocket#getsockopt と同様です。
@param level getsockopt(2) の 第二引数のlevel に相当する整数を指定します
@param optname getsockopt(2) の 第三引数のoption_name に相当する整数を指定します -
OpenSSL
:: SSL :: SocketForwarder # peeraddr -> Array (18007.0) -
ラップされているソケットの接続先相手の情報を返します。
ラップされているソケットの接続先相手の情報を返します。
IPSocket#peeraddr と同様です。 -
OpenSSL
:: SSL :: SocketForwarder # setsockopt(level , optname , optval) -> 0 (18007.0) -
ラップされているソケットのオプションを設定します。
ラップされているソケットのオプションを設定します。
BasicSocket#setsockopt と同様です。
@param level setsockopt(2) の level に相当する整数を指定します
@param optname setsockopt(2) の option_name に相当する整数を指定します
@param optval 設定される値を文字列で指定します。
@raise Errno::EXXX オプションの設定に失敗した場合発生します。 -
OpenSSL
:: SSL :: SSLServer # accept -> OpenSSL :: SSL :: SSLSocket (9607.0) -
クライアントからの接続を受け付け、接続した SSLSocket オブジェクトを返します。
...クライアントからの接続を受け付け、接続した
SSLSocket オブジェクトを返します。
OpenSSL::SSL::SSLServer#start_immediately が真ならば、
SSLSocket#accept を呼び TLS/SSL ハンドシェイクを実行してから
SSLSocket オブジェクトを返します。... -
OpenSSL
:: SSL :: SSLServer # shutdown(how=Socket :: SHUT _ RDWR) -> 0 (9364.0) -
ソケットの以降の接続を終了させます。
ソケットの以降の接続を終了させます。
詳しくは BasicSocket#shutdown を参照してください。
@param how 接続の終了の仕方を Socket::SHUT_RD, Socket::SHUT_WR,
Socket::SHUT_RDWR などで指定します。 -
OpenSSL
:: Random . # egd(filename) -> true (9025.0) -
EGD(Entropy Gathering Daemon) からエントロピーを得、 乱数生成器に追加します。
...ます。
filename で指定した Unix domain socket から EGD に問い合わせ、
255 バイト分のエントロピーを取得します。
OpenSSL::Random.egd_bytes(filename, 255) と同じです。
@param filename EGD のソケットのファイル名
@raise OpenSSL::Random::RandomError... -
OpenSSL
:: Random . # egd _ bytes(filename , length) -> true (9025.0) -
EGD(Entropy Gathering Daemon) から length バイト分のエントロピーを得ます。
...domain socket から EGD に問い合わせ、
指定した大きさのエントロピーを乱数生成器に追加します。
@param filename EGD のソケットのファイル名
@param length 読み込むバイト数
@raise OpenSSL::Random::RandomError
@raise OpenSSL::Random::RandomError... -
OpenSSL
:: SSL :: SSLServer (9025.0) -
SSL サーバーのためのクラス。
...SSL サーバーのためのクラス。
TCPServer をラップするクラスで、TCPServer で接続した
ソケットを OpenSSL::SSL::SSLSocket でラップする機能を持ちます。
おおよそ TCPServer と同様のメソッドを持ちます。
基本的には SSL サーバを簡単......。
以下はクライアントからの入力を標準出力に出力するだけのサーバです。
require 'socket'
require 'openssl'
include OpenSSL
ctx = SSL::SSLContext.new()
ctx.cert = X509::Certificate.new(File.read('cert.pem'))
ctx.key = PKey::RSA.new(File.read('privke...