Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::ASN1::ObjectIdクラス

class OpenSSL::ASN1::ObjectId + OpenSSL::ASN1::Primitive + OpenSSL::ASN1::ASN1Data

クラスの継承リスト: OpenSSL::ASN1::ObjectId < OpenSSL::ASN1::Primitive < OpenSSL::ASN1::ASN1Data < Object < Kernel < BasicObject

要約

ASN.1 のオブジェクト識別子を表すクラス。

* ITU-T X.660 http://www.itu.int/rec/T-REC-X.660/en

特異メソッド

new(value) -> OpenSSL::ASN1::ObjectId
new(value, tag, tagging, tag_class) -> OpenSSL::ASN1::ObjectId

ASN.1 のオブジェクト識別子を表わす OpenSSL::ASN1::ObjectId の オブジェクトを生成します。

value としては、ドット区切り数字表記、short name、long name の文字列の をいずれかを渡します。

value 以外の引数を省略した場合はタグクラスは :UNIVERSAL、 タグ は OpenSSL::ASN1::OBJECT となります。

例:

require "openssl"
include OpenSSL
p ASN1::ObjectId.new("1.2.840.10040.4.3").long_name # => "dsaWithSHA1"
p ASN1::ObjectId.new("dsaWithSHA1").oid             # => "1.2.840.10040.4.3"
[PARAM] value:
ASN.1 オブジェクト識別子を表す文字列
[PARAM] tag:
タグ番号
[PARAM] tagging:
タグ付けの方法(:IMPLICIT もしくは :EXPLICIT)
[PARAM] tag_class:
タグクラス(:UNIVERSAL, :CONTEXT_SPECIFIC, :APPLICATION, :PRIVATE のいずれか)
new(value, tag, tag_class) -> OpenSSL::ASN1::ASN1Data

ASN.1 値を表現する OpenSSL::ASN1::ASN1Data オブジェクトを 生成します。

通常 UNIVERSAL なタグクラスを持つ ASN.1 値はこのクラスのサブクラスで 表現されるため、tag_class はそれ以外(:CONTEXT_SPECIFIC、:APPLICATION、 :PRIVATE のいずれか)を指定します。

value としては、通常は文字列(IMPLICIT tagging 相当) もしくは OpenSSL::ASN1::ASN1Data の配列(IMPLICIT tagging相当) を指定します。

[PARAM] value:
そのオブジェクトが表現する値
[PARAM] tag:
タグ
[PARAM] tag_class:
タグクラス
register(oid, short_name, long_name) -> true

オブジェクト識別子に対応する名前(short name と long name)を OpenSSLの内部テーブルに登録します。

登録した名前は OpenSSL::X509::Extension などで利用できるようになります。

例:

require "openssl"
OpenSSL::ASN1::ObjectId.register(
  "2.5.29.9", "subjectDirAttrs", "X509v3 Subject Directory Attributes")
p OpenSSL::ASN1::ObjectId.new("2.5.29.9").long_name
# => "X509v3 Subject Directory Attributes"
[PARAM] oid:
登録する識別子(ドット区切り数字表記の文字列)
[PARAM] short_name:
short nameとして登録する文字列
[PARAM] long_name:
long nameとして登録する文字列
[EXCEPTION] OpenSSL::ASN1Error:
登録に失敗した場合に発生します。

インスタンスメソッド

ln -> String | nil
long_name -> String | nil

オブジェクト識別子に対応する long name を返します。

例:

require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.ln   #=> "X509v3 Subject Alternative Name"

[SEE_ALSO] OpenSSL::ASN1::ObjectId#sn

oid -> String

オブジェクト識別子のドット区切り数値を文字列で返します。

例:

require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.oid   #=> "2.5.29.17"
[EXCEPTION] OpenSSL::ASN1::ASN1Error:
オブジェクト識別子名が未知である場合に発生します
sn -> String | nil
short_name -> String | nil

オブジェクト識別子に対応する short name を返します。

例:

require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.sn   #=> "subjectAltName"

[SEE_ALSO] OpenSSL::ASN1::ObjectId#ln

tag -> Integer

タグ番号を返します。

タグ番号です。Universal 型の場合は BOOLEAN = 1 から BMPSTRING = 30 のいずれかの値をとります。

[SEE_ALSO] OpenSSL::ASN1::ASN1Data#tag=

tag=(tag)

タグ番号を設定します。

[PARAM] tag:
設定するタグ番号

[SEE_ALSO] OpenSSL::ASN1::ASN1Data#tag

tag_class -> Symbol

タグクラスを返します。

:UNIVERSAL、:CONTEXT_SPECIFIC、:APPLICATION, :PRIVATE のいずれかを返します。

[SEE_ALSO] OpenSSL::ASN1::ASN1Data#tag_class=

tag_class=(tag_class)

タグクラスを設定します。

[PARAM] tag_class:
設定するタグクラス。:UNIVERSAL、:ONTEXT_SPECIFIC、:APPLICATION、:PRIVATE のいずれか

[SEE_ALSO] OpenSSL::ASN1::ASN1Data#tag_class

tagging -> Symbol | nil

タグ付けの方式を返します。

:IMPLICIT、:EXPLICIT、nil のいずれかを返します。

タグ(OpenSSL::ASN1::ASN1Data#tag)が :UNIVERSAL ならば この値は無視されます。

nil は :IMPLICIT と同義です。

[SEE_ALSO] OpenSSL::ASN1::Primitive#tagging=

tagging=(tagging)

タグ付けの方式を設定します。

[PARAM] tagging:
タグ付けの方式(:IMPLICIT または :EXPLICIT)

[SEE_ALSO] OpenSSL::ASN1::Primitive#tagging=

to_der -> String

ASN.1 値の DER 表現を返します。

[SEE_ALSO] OpenSSL::ASN1.decode

value -> object

ASN.1 値に対応するRubyのオブジェクトを返します。

[SEE_ALSO] OpenSSL::ASN1::ASN1Data#value=

value=(value)

ASN.1 値に対応するRubyのオブジェクトを変更します。

[PARAM] value:
設定するオブジェクト

[SEE_ALSO] OpenSSL::ASN1::ASN1Data#value

class OpenSSL::ASN1::ObjectId