Sample code for 30+ languages & platforms
Rust

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

Rust

// Note: Not all certificates contain a Subject Alternative Name.
// If it does not, the SubjectAlternativeName property will contain the empty string.

let cert = chilkat::Cert::new();

if cert.load_from_file("qa_data/certs/testIcpBrasil.cer").is_err() {
    println!("{}", cert.last_error_text());
    return;
}

let subject_alt_name_xml = cert.subject_alternative_name();

println!("{}", subject_alt_name_xml);

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

let xml = chilkat::Xml::new();

let _ = xml.load_xml(&subject_alt_name_xml);

let mut i = 0;
let count_i = xml.num_children_having_tag("name");
while i < count_i {
    xml.set_i(i);
    let _ = xml.chilkat_path("name[i]|(oid)").unwrap_or_default();
    let _ = xml.get_child_content("name[i]").unwrap_or_default();
    i = i + 1;
}

let rfc822_name = xml.get_child_content("rfc822Name").unwrap_or_default();