首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenSSL::ASN1::ObjectId

家长:OpenSSL的:: ASN1 :: 原始

代表 OpenSSL :: ASN1 的原始对象 ID

公共类方法

OpenSSL :: ASN1 :: ObjectId.register(object_id,short_name,long_name) 显示源文件

这为内部表添加了一个新的 ObjectId。object_id数字形式在哪里,short_name是简称,long_name是长名。

如果成功则返回true。如果失败,则引发 OpenSSL :: ASN1 :: ASN1Error。

代码语言:javascript
复制
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;
}

公共实例方法

ln()显示源文件

ObjectId 的长名称,在<openssl / objects.h>中定义。

代码语言:javascript
复制
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;
}

另外别名为:long_name

long_name()

别名为:ln

oid()显示源文件

对象标识符为一个 String,例如“1.2.3.4.5”

代码语言:javascript
复制
static VALUE
ossl_asn1obj_get_oid(VALUE self)
{
    VALUE val;
    ASN1_OBJECT *a1obj;
    char buf[128];

    val = ossl_asn1_get_value(self);
    a1obj = obj_to_asn1obj(val);
    OBJ_obj2txt(buf, sizeof(buf), a1obj, 1);
    ASN1_OBJECT_free(a1obj);

    return rb_str_new2(buf);
}

short_name()

别名为:sn

sn()显示源代码

ObjectId 的简称,如<openssl / objects.h>中定义的。

代码语言:javascript
复制
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;
}

另外别名为:short_name

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com