17.04.2007 13:36:13e-mail из сертификата Ответов: 10
Волков
Как получить e-mail из сертификата?
 
Ответы:
17.04.2007 15:12:27Kirill Sobolev
Если речь идет о получении email из полей Issuer или Subject, то проще всего сначала найти его (CertFindRDNAttr), потом декодировать (CertRDNValueToStr)
17.04.2007 15:14:11Kirill Sobolev
А если надо получить email из Subject или из SubjectAltName, то можно воспользоваться CertGetNameString.
18.04.2007 8:44:56Волков
Нельзя ли чуть поподробнее про CertFindRDNAttr? Как с помощью этой функции получить результат?
18.04.2007 11:02:18Kirill Sobolev
http://msdn2.microsoft.com/en-us/library/aa376069.aspx
18.04.2007 13:06:56Волков
Какой указывать OID для электронной почты, а второй параметр это структура CERT_NAME_INFO где ее взять если у меня только контекст сертификата?
18.04.2007 13:29:53Kirill Sobolev
OID для email 1.2.840.113549.1.9.1 (szOID_RSA_emailAddr из wincrypt.h)
CERT_INFO - это декодированный Issuer или Subject из CERT_CONTEXT::CERT_INFO
18.04.2007 13:46:59Александр
szOID_RSA_emailAddr

Есть стандартные OID-ы для структуры RDN. Смотри MSDN. В частности структуру CERT_RDN_ATTR. Тебе сюда http://msdn2.microsoft.com/en-us/library/aa377501.aspx
18.04.2007 14:59:18Волков
Надо cделать так:

cbEncoded = CertContext->pCertInfo->Subject потом декодировать cbEncoded CryptDecodeObject и то что получится передавать во втором параметре?
18.04.2007 15:20:30Kirill Sobolev
Совершенно верно.
19.04.2007 10:03:55Волков
Большое спасибо за помощь!