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

class OpenSSL::OCSP::BasicResponse

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

要約

OCSP の Basic OCSP Response を表すクラスです。

レスポンスの実質的な内容(証明書が失効しているかどうか) はこのクラスのオブジェクトが保持します。

OCSP レスポンダからのレスポンス自体は OpenSSL::OCSP::Response のオブジェクトが表現していて、 このオブジェクトの OpenSSL::OCSP::Request#basic によって BasicResponse のオブジェクトを得ます。

目次

特異メソッド
new
インスタンスメソッド
add_nonce add_status copy_nonce sign status verify

特異メソッド

new -> OpenSSL::OCSP::BasicResponse[permalink][rdoc]

空の BasicResponse オブジェクトを生成します。

[SEE_ALSO] OpenSSL::OCSP::Response.create

インスタンスメソッド

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

BasicResponse に nonce を追加します。

引数を省略すると、ランダムな nonce を生成し利用します。

通常はこのメソッドを使わず OpenSSL::OCSP::BasicResponse#copy_nonce を 用います。

[PARAM] val:
追加する nonce の値(文字列)
add_status(cid, status, reason, revtime, thisupd, nextupd, exts) -> self[permalink][rdoc]

証明書の状態の問い合わせの結果をオブジェクトに追加します。

詳しくは OpenSSL::OCSP::BasicResponse#status を見てください。

[PARAM] cid:
問い合わせの(OpenSSL::OCSP::CertificateId オブジェクト)
[PARAM] status:
ステータスコード(整数)
[PARAM] reason:
失効理由コード(整数)
[PARAM] revtime:
失効時刻(Time オブジェクトもしくは nil)
[PARAM] thisupd:
最終更新時刻(Time オブジェクト)
[PARAM] nextupd:
次回更新時刻(Time オブジェクト)
[PARAM] exts:
拡張領域(OpenSSL::X509::Extension オブジェクトの配列)
copy_nonce(request) -> Integer[permalink][rdoc]

request から nonce の値をコピーします。

[PARAM] request:
コピー元のnonceを保持している Request (OpenSSL::OCSP::Request オブジェクト)
sign(signer_cert, signer_key, certs = [], flags=0) -> self[permalink][rdoc]

Response に署名します。

OCSP レスポンダ(もしくは CA)はレスポンスに署名をすることで、 レスポンスの内容を保証します。

flags には以下の値の OR を渡すことができます。

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

[PARAM] signer_cert:
署名者の証明書(OpenSSL::X509::Certificate オブジェクト)
[PARAM] signer_key:
証明に用いる秘密鍵(OpenSSL::PKey::PKey オブジェクト)
[PARAM] certs:
添付する証明書(OpenSSL::X509::Certificate オブジェクトの配列)
[PARAM] flags:
フラグ(整数)
status -> [[OpenSSL::OCSP::CertificateId, Integer, Integer, Time|nil, Time, Time|nil, [OpenSSL::X509::Extension]]][permalink][rdoc]

証明書の状態の問い合わせの結果を返します。

この返り値には複数の問い合わせ結果が含まれています。 個々の結果は以下の内容の配列です。

[ 問い合わせの CertificateId オブジェクト,
  ステータスコード,
  失効理由コード,
  失効時刻,
  最終更新時刻,
  次回更新時刻,
  拡張領域 ]

ステータスコードはいかのいずれかの値を取ります

失効理由コードは以下のいずれかを返します。

失効時刻は証明書が失効した時刻を表します。失効していない場合は nil を 返します。

最終更新時刻は失効情報が更新された時刻を表します。この時刻が現在時刻より 先である場合には、この Response の内容は信用できません。

次回更新時刻は、失効情報の更新予定時刻です。 この時刻が現在時刻より 後である場合には、この Response の内容は信用できません。 次回更新時刻が指定されていない場合には nil を返します。

拡張領域には、OpenSSL::X509::Extension の配列が渡されます。

結果をどのように解釈すべきか、より詳しくは [RFC2560] や X.509 を見てください。

例:

res.basic.status
# => [
#      [#<OpenSSL::OCSP::CertificateId:0x00000000e3c290>, # certificate ID
#       0,                                                # status code
#       0,                                                # reason code
#       nil,                                              # revoked time
#       2011-06-29 05:24:43 UTC,                          # update time
#       2011-07-06 05:24:43 UTC,                          # next update time
#       []]                                               # extensions
#    ]
[EXCEPTION] OpenSSL::OCSP::OCSPError:
ステータスの読み出しに失敗した場合に発生します
verify(certs, store, flags=0) -> bool[permalink][rdoc]

署名を検証します。

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

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

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