Как разобрать сертификат Тематическая строка? - PullRequest
1 голос
/ 05 июня 2019

Используя функцию CertNameToStr, вы можете получить строку темы сертификата:

C = США, S = Калифорния, L = Сан-Хосе, O = "Adobe Systems, Incorporated", OU = DigitalКласс ID 3 - Проверка ПО Microsoft v2, OU = Acrobat Engineering, CN = "Adobe Systems, Incorporated"

Мой вопрос заключается в том, как проанализировать его, чтобы получить массив пар имя-значение?

Я пытался использовать функцию SplitString() с символом , в качестве разделителя:

  StrArr := SplitString(edtSubjectStr.Text, ',');
  for I := Low(StrArr) to High(StrArr) do
    Memo1.Lines.Append(Trim(StrArr[i]));

, но результат неудовлетворительный:

C = US
S = Калифорния
L = Сан-Хосе
O = "Adobe Systems
Incorporated"
OU = Digital ID Class 3 - Проверка программного обеспечения Microsoft v2
OU = Acrobat Engineering
CN = "Adobe Systems
Incorporated"

Есть ли какая-либо функция API для анализа этой строки темы?

Или, возможно, есть способ ее анализа с некоторыми другими компонентами Delphi| классы |? функций

1 Ответ

3 голосов
/ 06 июня 2019

Вот ответ:

просто используйте CERT_X500_NAME_STR or CERT_NAME_STR_CRLF_FLAG в качестве значения свойства dwStrType функции CertNameToStr(), и вы получите CRLF разделенную строку!

...