如何通过编程方式获取X509证书中的电子邮件地址?

时间:2013-03-22 02:46:36

标签: c ssl openssl x509certificate x509

我正在尝试从C中的X509 cert对象获取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字段?我考虑过解析字符串,但我猜想必须有一种更聪明的方法吗?

1 个答案:

答案 0 :(得分: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);