DataFlex
DataFlex
Subject Alternative Name for ICP Brasil Certs
See more Certificates Examples
Demonstrates how to access the multiple names contained in the Subject Alternative Name of a certificate. This example is for an ICP Brasil certificate.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoCert
String sSubjectAltNameXml
Handle hoXml
String sOid
String sName
Integer i
Integer iCount_i
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get ComLoadFromFile Of hoCert "qa_data/certs/testIcpBrasil.cer" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// If the cert's Subject Alternative Name contains multiple values, each specified by an OID,
// then the Rfc822Name property returns XML.
Get ComRfc822Name Of hoCert To sSubjectAltNameXml
Showln sSubjectAltNameXml
// Here's a sample of the subjectAltNameXml:
// <SubjectAltName>
// <name type="oid" oid="2.16.76.1.3.4">290999653223955019700000000000000000000150424SRJUXPTS</name>
// <name type="oid" oid="2.16.76.1.3.2">JOAO SILVA</name>
// <name type="oid" oid="2.16.76.1.3.3">02408939000115</name>
// <name type="oid" oid="2.16.76.1.3.7">000000000000</name>
// </SubjectAltName>
// The XML can be parsed like this:
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Get ComLoadXml Of hoXml sSubjectAltNameXml To iSuccess
Move 0 To i
Get ComNumChildrenHavingTag Of hoXml "name" To iCount_i
While (i < iCount_i)
Set ComI Of hoXml To i
Get ComChilkatPath Of hoXml "name[i]|(oid)" To sOid
Get ComGetChildContent Of hoXml "name[i]" To sName
Showln sOid ": " sName
Move (i + 1) To i
Loop
End_Procedure