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);

}

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

我怎样才能做到这一点?

4

1 回答 1

1

它是

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

于 2012-06-16T12:56:18.943 回答