Spec-Zone.ru › Ruby 3.4

класс OpenSSL::ASN1::ObjectId

Родитель:
OpenSSL::ASN1::Primitive

Представляет примитивный идентификатор объекта для OpenSSL::ASN1

Публичные методы класса

OpenSSL::ASN1::ObjectId.register(object_id, short_name, long_name)
Исходный код
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;
}

Это добавляет новый ObjectId во внутренние таблицы. Где object_id — числовая форма, short_name — короткое имя, а long_name — полное имя.

Возвращает true при успешном выполнении. Вызывает OpenSSL::ASN1::ASN1Error в случае неудачи.

Публичные методы экземпляра

oid == other_oid → true или false
Исходный код
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);
}

Возвращает true если other_oid совпадает с oid.

ln → строка
Исходный код
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;
}

Полное имя ObjectId, определённое в <openssl/objects.h>.

Также переименован в: long_name
long_name → строка

Полное имя ObjectId, определённое в <openssl/objects.h>.

Псевдоним для: ln
oid → строка
Исходный код
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;
}

Возвращает String, представляющий идентификатор Object в точечной нотации, например, “1.2.3.4.5”

short_name → строка

Короткое имя ObjectId, определённое в <openssl/objects.h>.

Псевдоним для: sn
sn → строка
Исходный код
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;
}

Короткое имя ObjectId, определённое в <openssl/objects.h>.

Также переименован в: short_name

Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API