В настоящее время я использую CertGetNameString
для извлечения значений для каждого атрибута субъекта следующим образом:
CertGetNameString(pCertificate,
CERT_NAME_ATTR_TYPE,
0,
szOID_ORGANIZATIONAL_UNIT_NAME,
buf,
_countof(buf));
Однако некоторые сертификаты, которые я обнаружил, имеют несколько значений для имени организационного подразделения (OU) и CertGetNameString
может читать только первый. Например, это предмет сертификата Adobe:
CN = Adobe Systems, Incorporated
OU = Acrobat Engineering
OU = Digital ID Class 3 - Microsoft Software Validation v2
O = Adobe Systems, Incorporated
L = San Jose
S = California
C = US
Как я могу прочитать все значения атрибутов OU (и других) с помощью CryptoAPI?