123456789_123456789_123456789_123456789_123456789_

Class: OpenSSL::ASN1::ObjectId

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: OpenSSL::ASN1::Primitive
Defined in: ext/openssl/ossl_asn1.c,
ext/openssl/ossl_asn1.c

Overview

Represents the primitive object id for ::OpenSSL::ASN1

Class Method Summary

ASN1Data - Inherited

.new

value: Please have a look at Constructive and Primitive to see how Ruby types are mapped to ASN.1 types and vice versa.

Instance Attribute Summary

TaggedASN1Data - Included

#tagging

May be used as a hint for encoding a value either implicitly or explicitly by setting it either to :IMPLICIT or to :EXPLICIT.

ASN1Data - Inherited

#indefinite_length

Never nil.

#infinite_length
#tag

An Integer representing the tag number of this ASN1Data.

#tag_class

A Symbol representing the tag class of this ASN1Data.

#value

Carries the value of a ASN.1 type.

Instance Method Summary

Primitive - Inherited

#to_der

See ASN1Data#to_der for details.

TaggedASN1Data - Included

#initialize

value: is mandatory.

ASN1Data - Inherited

#to_der

Encodes this ASN1Data into a DER-encoded String value.

Constructor Details

This class inherits a constructor from OpenSSL::ASN1::ASN1Data

Class Method Details

.register(object_id, short_name, long_name)

This adds a new ObjectId to the internal tables. Where object_id is the numerical form, short_name is the short name, and long_name is the long name.

Returns true if successful. Raises an ASN1Error if it fails.

[ GitHub ]

  
# File 'ext/openssl/ossl_asn1.c', line 1117

static VALUE
ossl_asn1obj_s_register(VALUE self, VALUE oid, VALUE sn, VALUE ln)
{
    StringValueCStr(oid);
    StringValueCStr(sn);
    StringValueCStr(ln);

    if(!OBJ_create(RSTRING_PTR(oid), RSTRING_PTR(sn), RSTRING_PTR(ln)))
	ossl_raise(eASN1Error, NULL);

    return Qtrue;
}

Instance Method Details

#==(other_oid) ⇒ Boolean

Returns true if other_oid is the same as oid.

[ GitHub ]

  
# File 'ext/openssl/ossl_asn1.c', line 1220

static VALUE
ossl_asn1obj_eq(VALUE self, VALUE other)
{
    VALUE oid1, oid2;

    if (!rb_obj_is_kind_of(other, cASN1ObjectId))
        return Qfalse;

    oid1 = ossl_asn1obj_get_oid(self);
    oid2 = ossl_asn1obj_get_oid(other);
    return rb_str_equal(oid1, oid2);
}

#lnString #long_nameString
Also known as: #long_name

The long name of the ObjectId, as defined in <openssl/objects.h>.

[ GitHub ]

  
# File 'ext/openssl/ossl_asn1.c', line 1157

static VALUE
ossl_asn1obj_get_ln(VALUE self)
{
    VALUE val, ret = Qnil;
    int nid;

    val = ossl_asn1_get_value(self);
    if ((nid = OBJ_txt2nid(StringValueCStr(val))) != NID_undef)
	ret = rb_str_new2(OBJ_nid2ln(nid));

    return ret;
}

#lnString #long_nameString

Alias for #ln.

#oidString

Returns a String representing the ::Object Identifier in the dot notation, e.g. “1.2.3.4.5”

[ GitHub ]

  
# File 'ext/openssl/ossl_asn1.c', line 1199

static VALUE
ossl_asn1obj_get_oid(VALUE self)
{
    VALUE str;
    ASN1_OBJECT *a1obj;
    int state;

    a1obj = obj_to_asn1obj(ossl_asn1_get_value(self));
    str = rb_protect(asn1obj_get_oid_i, (VALUE)a1obj, &state);
    ASN1_OBJECT_free(a1obj);
    if (state)
	rb_jump_tag(state);
    return str;
}

#snString #short_nameString

Alias for #sn.

#snString #short_nameString
Also known as: #short_name

The short name of the ObjectId, as defined in <openssl/objects.h>.

[ GitHub ]

  
# File 'ext/openssl/ossl_asn1.c', line 1137

static VALUE
ossl_asn1obj_get_sn(VALUE self)
{
    VALUE val, ret = Qnil;
    int nid;

    val = ossl_asn1_get_value(self);
    if ((nid = OBJ_txt2nid(StringValueCStr(val))) != NID_undef)
	ret = rb_str_new2(OBJ_nid2sn(nid));

    return ret;
}