2

我正在尝试从 C 中的 X509 证书对象中获取 CN 和 emailAddress 字段。目前我正在获取这样的 CN:

cert_entry = X509_NAME_get_entry(X509_get_subject_name(cert), 0);
ASN1_STRING *entryData = X509_NAME_ENTRY_get_data( cert_entry );
ASN1_STRING_to_UTF8(&CN, entryData);
printf("%s",CN);

我的问题是如何获取 emailAddress 字段?我考虑过解析字符串,但我猜必须有一种更聪明的方法来做到这一点?

4

1 回答 1

4

弄清楚了

X509_NAME * subject_name = X509_get_subject_name(cert); 
int nid_email = OBJ_txt2nid("emailAddress"); 
X509_NAME_get_text_by_NID(subject_name, nid_email, peer_email, 256);
于 2013-03-22T05:00:40.260 回答