Sample code for 30+ languages & platforms
Dart

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

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final cert = CkCert();

  try {
    cert.loadFromFile('qa_data/certs/testIcpBrasil.cer');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // If the cert's Subject Alternative Name contains multiple values, each specified by an OID,
  // then the Rfc822Name property returns XML.
  final subjectAltNameXml = 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:

  final xml = CkXml();
  xml.loadXml(subjectAltNameXml);

  var oid = '';
  var name = '';

  var i = 0;
  final countI = xml.numChildrenHavingTag('name');
  while (i < countI) {
    xml.i = i;
    oid = xml.chilkatPath('name[i]|(oid)');
    name = xml.getChildContent('name[i]');
    print('$oid: $name');
    i++;
  }
}