代码之家  ›  专栏  ›  技术社区  ›  Jonah

X509::Attribute#value返回什么?

  •  1
  • Jonah  · 技术社区  · 6 年前

    这个 relevant documentation 没有太多关于返回值的信息 OpenSSL::X509::Attribute#value :

    value => asn1
    

    可能是指 OpenSSL::ASN1 模块,但我不清楚是什么。它是否返回 OpenSSL::ASN1::ASN1Data ? 一排吗?还有别的吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   cremno    6 年前

    它返回的实例 OpenSSL::ASN1::ASN1Data .

    在RDoc生成的文档中,可以单击方法的调用序列来查看其源代码。为了 OpenSSL::X509::Attribute#value 它是用C编写的,包含以下行:

    return rb_funcall(mASN1, rb_intern("decode"), 1, str);
    

    基本上等同于这个Ruby代码:

    mASN1 = OpenSSL::ASN1 # m → module, c would be class, and e → exception
    mASN1.send(:decode, str)
    

    因此,通过查看 OpenSSL::ASN1.decode 文件:

    OpenSSL::ASN1.解码(der)ASN1数据

    解码BER或DER编码值并创建 ASN1Data 实例。