ASN1 对象标识符名称

ASN1 object identifier name

本文关键字:对象标识符 ASN1      更新时间:2023-10-16

如何获取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);
}
对于标识符"2.5.4.6,2.5.4.6

",我想获取值"C",对于"2.5.4.8,2.5.4.8" - "ST"等。

我该怎么做?

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"。