使用CertNameToStr
函数您可以获得证书的主题字符串:
C=US, S=California, L=San Jose, O="Adobe Systems, Incorporated", OU=Digital ID Class 3 - Microsoft Software Validation 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=California
L=San Jose
O="Adobe Systems
Incorporated"
OU=Digital ID Class 3 - Microsoft Software Validation v2
OU=Acrobat Engineering
CN="Adobe Systems
Incorporated"
有没有API函数可以解析这个主题字符串?
或者也许有一种方法可以用其他一些 Delphi 组件|类|函数来解析它?
最佳答案
答案如下:
只需使用 CERT_X500_NAME_STR 或 CERT_NAME_STR_CRLF_FLAG
作为 CertNameToStr()
函数的 dwStrType
属性的值,您就会得到一个 CRLF
分隔字符串!
关于delphi - 如何解析证书主题字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56464228/