OpenSSL::ASN1::ObjectId
类 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。
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>中定义。
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”
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>中定义的。
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