Sample code for 30+ languages & platforms
Swift

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 Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let cert = CkoCert()!

    success = cert.load(fromFile: "qa_data/certs/testIcpBrasil.cer")
    if success == false {
        print("\(cert.lastErrorText!)")
        return
    }

    // If the cert's Subject Alternative Name contains multiple values, each specified by an OID,
    // then the Rfc822Name property returns XML.
    var subjectAltNameXml: String? = cert.rfc822Name

    print("\(subjectAltNameXml!)")

    // 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:

    let xml = CkoXml()!
    xml.load(xmlData: subjectAltNameXml)

    var oid: String?
    var name: String?

    var i: Int = 0
    var count_i: Int = xml.numChildrenHavingTag(tag: "name").intValue
    while i < count_i {
        xml.i = i
        oid = xml.chilkatPath(cmd: "name[i]|(oid)")
        name = xml.getChildContent(tagPath: "name[i]")
        print("\(oid!): \(name!)")
        i = i + 1
    }


}