ASN1对象标识符名称

时间:2012-06-16 05:06:41

标签: c++ c openssl asn.1

如何获取X509_NAME_ENTRY的对象标识符名称?

我的例子:

X509_NAME *subject = X509_get_subject_name(certificate);

for (i = 0; i < X509_NAME_entry_count(subject); i++)
{
    e =X509_NAME_get_entry(subject, i);
    OBJ_obj2txt(id, 200, e->object, 1);
            //id like '2.5.4.6,2.5.4.6'

    value = ASN1_STRING_data(e->value);

}

对于idendifier“2.5.4.6,2.5.4.6”我想获得值“C”,“2.5.4.8,2.5.4.8” - “ST”等。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

这是

char long_name[512];
i2t_ASN1_OBJECT(long_name, sizeof(long_name), e->object);

OpenSSL称之为“ln”和

const char *short_name;
int nid = OBJ_ln2nid(long_name);
short_name = OBJ_nid2sn(nid);

表示“sn”。