Sample code for 30+ languages & platforms
React Native

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 React Native Downloads

React Native
import { Cert, Xml } from '@chilkat/react-native'

function chilkatExample() {
  const cert = new Cert();

  try {
    cert.loadFromFile('qa_data/certs/testIcpBrasil.cer');
  } catch {
    console.log(cert.lastErrorText);
    return;
  }

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

  console.log(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:

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

  let oid = '';
  let name = '';

  let i = 0;
  const countI = xml.numChildrenHavingTag('name');
  while (i < countI) {
    xml.i = i;
    oid = xml.chilkatPath('name[i]|(oid)');
    name = xml.getChildContent('name[i]');
    console.log(`${oid}: ${name}`);
    i++;
  }
}