X.509 v3 証明書の拡張領域のためのクラスです。
OpenSSL::X509::Certificate オブジェクトはその拡張領域を Extension オブジェクトの配列として保持し、 OpenSSL::X509::Certificate#extensions でその配列が得られます。
このクラスのインスタンス生成は OpenSSL::ASN1::ASN1Data を取り扱う必要があり面倒です。 OpenSSL::X509::ExtensionFactory を用いることでインスタンスの生成を簡便に行うことができます。
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
critical=(bool)
[permalink][rdoc]その拡張領域の重要度(critical)を真偽値で設定します。
[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の文字列で設定します。
[SEE_ALSO] OpenSSL::X509::Extension#oid
to_a -> [String, String, bool]
[permalink][rdoc]拡張領域の内容を、[識別子(extnID), 値(extnValue), 重要度(critical)] という形で返します。
to_der -> String
[permalink][rdoc]DER 形式のバイト列に変換して返します。
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)を設定します。
[SEE_ALSO] OpenSSL::X509::Extension#value