Sample code for 30+ languages & platforms
Java

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

Chilkat2 Java
import com.chilkatsoft.chilkat2.Cert;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        Cert cert = new Cert();

        try {
            cert.loadFromFile("qa_data/certs/testIcpBrasil.cer");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // If the cert's Subject Alternative Name contains multiple values, each specified by an OID,
        // then the Rfc822Name property returns XML.
        String subjectAltNameXml = cert.getRfc822Name();

        System.out.println(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:

        Xml xml = new Xml();
        xml.loadXml(subjectAltNameXml);

        String oid = "";
        String name = "";

        int i = 0;
        int count_i = xml.numChildrenHavingTag("name");
        while (i < count_i) {
            xml.setI(i);
            oid = xml.chilkatPath("name[i]|(oid)");
            name = xml.getChildContent("name[i]");
            System.out.println(oid + ": " + name);
            i = i + 1;
        }
    }
}