Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::OCSP::Requestクラス

class OpenSSL::OCSP::Request

クラスの継承リスト: OpenSSL::OCSP::Request < Object < Kernel < BasicObject

要約

OCSP リクエストを表すクラスです。

問合せたい証明書を OpenSSL::OCSP::CertificateId オブジェクトの 形で複数持つことができます。

目次

特異メソッド
new
インスタンスメソッド
add_certid add_nonce certid check_nonce sign to_der verify

特異メソッド

new -> OpenSSL::OCSP::Request[permalink][rdoc]
new(der) -> OpenSSL::OCSP::Request

Request オブジェクトを生成します。 引数なしの場合は、中身が空のオブジェクトを生成します。 文字列を渡した場合は der 形式であると見なして読み込みます。

[PARAM] der:
リクエストの情報をエンコードしたder形式の文字列
[EXCEPTION] OpenSSL::OCSP::OCSPError:
文字列のデコードに失敗した場合に発生します

インスタンスメソッド

add_certid(cid) -> self[permalink][rdoc]

Request オブジェクトに問い合わせ対象の証明書情報を追加します。

証明書情報は OpenSSL::OCSP::CertificateId の形で渡す必要があります。

[PARAM] cid:
問い合わせ対象の証明書情報(OpenSSL::OCSP::CertificateId オブジェクト)
[EXCEPTION] OpenSSL::OCSP::OCSPError:
追加に失敗した場合に発生します。

[SEE_ALSO] OpenSSL::OCSP::Request#certid

add_nonce(nonce = nil) -> self[permalink][rdoc]

Request オブジェクトに nonce を追加します。

nonce とは、リプレイ攻撃を防止するために設定する乱数です。

[PARAM] nonce:
設定するnonce文字列。nilの場合は適当な乱数を自動で設定します
certid -> [OpenSSL::OCSP::CertificateId][permalink][rdoc]

Request オブジェクトが保持している問い合わせ対象の証明書の情報を 配列で返します。

[SEE_ALSO] OpenSSL::OCSP::Request#add_certid

check_nonce(basic_resp) -> Integer[permalink][rdoc]

自身の nonce とレスポンスの nonce が整合しているか チェックします。

-1 から 3 までの整数を返します。それぞれの意味は以下の通りです。 * -1 自身にしか nonce が設定されていない * 0 nonce が自身とレスポンスの両方にあるが等しくない * 1 nonce が自身とレスポンスの両方にあり等しい * 2 nonce が自身とレスポンスのどちらにもない * 3 nonce がレスポンスにしか設定されていない

0 は明らかに不正なので、これは必ずチェックする必要があります。 1 は nonce が正しいということを意味します。 それ以外は、場合(サーバの実装など) によって不正であったりそうでなかったりしますので、適切にチェック する必要があります。

[PARAM] basic_resp:
比較するレスポンス(OpenSSL::OCSP::BasicResponse オブジェクト)
sign(signer_cert, signer_key, certs=nil, flags=nil) -> self[permalink][rdoc]

Request オブジェクトに署名をします。

この署名はリクエスタが自分自身を証明するために署名します。 OSCP レスポンダはこの署名を確認します。 Request に対する署名は必須ではありません。

certs に証明書の配列を渡すことで、この署名を検証するために 必要となる別の証明書を付加することができます。

[PARAM] signer_cert:
署名者の証明書(OpenSSL::X509::Certificate オブジェクト)
[PARAM] signer_key:
証明に用いる秘密鍵(OpenSSL::PKey::PKey オブジェクト)
[PARAM] certs:
添付する証明書(OpenSSL::X509::Certificate オブジェクトの配列)
[PARAM] flags:
フラグ(整数)
[EXCEPTION] OpenSSL::OCSP::OCSPError:
署名に失敗した場合に発生します
to_der -> String[permalink][rdoc]

Request オブジェクトを DER 形式の文字列に変換します。

verify(certs, store, flags=0) -> bool[permalink][rdoc]

Request オブジェクトの署名を検証します。

検証に成功した場合は真を返します。

flags には以下の値の OR を取ったものを渡します。

TRUSTOTHER を有効にすると certs で指定した証明書を検証せずに信頼します。

[PARAM] certs:
検証に用いる追加的な証明書(OpenSSL::X509::Certificate オブジェクトの配列)
[PARAM] store:
検証に用いる証明書ストア(OpenSSL::X509::Store オブジェクト)
[PARAM] flags:
フラグ(整数)