DataFlex
DataFlex
Subject Alternative Name
See more Certificates Examples
Demonstrates the usage of the SubjectAlternativeName property to get the certificate SAN (subject alternative name) as XML.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 sRfc822Name
String sTemp1
Move False To iSuccess
// Note: Not all certificates contain a Subject Alternative Name.
// If it does not, the SubjectAlternativeName property will contain the empty string.
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
Get ComSubjectAlternativeName Of hoCert To sSubjectAltNameXml
Showln sSubjectAltNameXml
// Here's a sample of the subjectAltNameXml:
// <?xml version="1.0" encoding="utf-8"?>
// <SubjectAltName>
// <name type="oid" oid="2.16.76.1.3.4">...</name>
// <name type="oid" oid="2.16.76.1.3.2">...</name>
// <name type="oid" oid="2.16.76.1.3.3">...</name>
// <name type="oid" oid="2.16.76.1.3.7">...</name>
// <rfc822Name>...</rfc822Name>
// </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
Move (i + 1) To i
Loop
Get ComGetChildContent Of hoXml "rfc822Name" To sRfc822Name
End_Procedure