Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::X509::Extensionクラス

class OpenSSL::X509::Extension

クラスの継承リスト: OpenSSL::X509::Extension < Object < Kernel < BasicObject

要約

X.509 v3 証明書の拡張領域のためのクラスです。

OpenSSL::X509::Certificate オブジェクトは その拡張領域を Extension オブジェクトの配列として保持し、 OpenSSL::X509::Certificate#extensions でその配列が得られます。

このクラスのインスタンス生成は OpenSSL::ASN1::ASN1Data を 取り扱う必要があり面倒です。 OpenSSL::X509::ExtensionFactory を用いることで インスタンスの生成を簡便に行うことができます。

参照

目次

特異メソッド
new
インスタンスメソッド
critical= critical? oid oid= to_a to_der to_h to_s value value=

特異メソッド

new(der) -> OpenSSL::X509::Extension[permalink][rdoc]
new(oid, value, critical=false) -> OpenSSL::X509::Extension

OpenSSL::X509::Extension オブジェクトを生成します。

引数が1つの場合は DER 形式の文字列を渡します。

引数が2つ以上の場合は、oid には拡張領域の OID の ドット区切り表記、 short name、long name のいずれかである文字列を与えます。 value にはその値を表す DER 形式の文字列、もしくは OpenSSL::ASN1::ASN1Data のサブクラスを与えます。

例;

require 'openssl'
include OpenSSL
oid = "subjectKeyIdentifier"
val = "\004\024\206\312\245\"\201b\357\255\n\211\274\255rA,)I\364\206V"
ex = X509::Extension.new(oid, val)
p ex.value # => "86:CA:A5:22:81:62:EF:AD:0A:89:BC:AD:72:41:2C:29:49:F4:86:56"
ex2 = X509::Extension.new("2.5.29.19", "0\x03\x01\x01\xFF")
p ex2.oid # => "basicConstrains"
ex3 = X509::Extension.new("basicConstraints", ASN1.Sequence([ASN1::Boolean(false)]))
p ex3 # => basicConstraints = CA:FALSE
[PARAM] der:
DER形式の文字列
[PARAM] oid:
OIDを表す文字列(ドット区切り、short name, long nameのいずれか)
[PARAM] value:
拡張領域の値を表す DER 形式文字列
[PARAM] critical:
拡張領域の重要度

インスタンスメソッド

critical=(bool)[permalink][rdoc]

その拡張領域の重要度(critical)を真偽値で設定します。

[PARAM] bool:
設定する重要度の真偽値

[SEE_ALSO] OpenSSL::X509::Extension#critical?

critical? -> bool[permalink][rdoc]

その拡張領域の重要度(critical)を返します。

[SEE_ALSO] OpenSSL::X509::Extension#critical=

oid -> String[permalink][rdoc]

拡張領域の識別子(extnID)をOIDの文字列で返します。

[SEE_ALSO] OpenSSL::X509::Extension#oid=

oid=(oid)[permalink][rdoc]

拡張領域の識別子(extnID)をOIDの文字列で設定します。

[PARAM] oid:
OIDの文字列
[EXCEPTION] OpenSSL::X509::Extension:
識別子の設定に失敗した場合に発生します

[SEE_ALSO] OpenSSL::X509::Extension#oid

to_a -> [String, String, bool][permalink][rdoc]

拡張領域の内容を、[識別子(extnID), 値(extnValue), 重要度(critical)] という 形で返します。

to_der -> String[permalink][rdoc]

DER 形式のバイト列に変換して返します。

[EXCEPTION] OpenSSL::X509::Extension:
変換に失敗した場合に発生します
to_h -> Hash[permalink][rdoc]

拡張領域の内容を、

{ "oid" => 識別子(extnID), "value" => 値(extnValue), "critical" => 重要度(critical) }

というハッシュで返します。

to_s -> String[permalink][rdoc]

拡張領域の内容を、文字列表現で返します。

value -> String[permalink][rdoc]

拡張領域の値(extnValue)を返します。

[SEE_ALSO] OpenSSL::X509::Extension#value=

value=(value)[permalink][rdoc]

拡張領域の値(extnValue)を設定します。

[PARAM] value:
設定する値の文字列
[EXCEPTION] OpenSSL::X509::Extension:
値の設定に失敗した場合に発生します

[SEE_ALSO] OpenSSL::X509::Extension#value