使用CertNameToStr
函数可以获得证书的主题字符串:
C =美国,S =加利福尼亚,L =圣何塞,O =“ Adobe Systems,Incorporated”,OU =数字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
公司成立”
OU =数字ID类别3-Microsoft软件验证v2
OU = Acrobat Engineering
CN =“ Adobe Systems
公司”
是否有任何API函数可以解析此主题字符串?
或者也许有一种与其他Delphi组件|类|函数一起解析的方法?
答案 0 :(得分:3)
这是答案:
只需使用CERT_X500_NAME_STR or CERT_NAME_STR_CRLF_FLAG
作为dwStrType
函数的CertNameToStr()
属性的值,您将得到一个CRLF
分隔的字符串!