Sample code for 30+ languages & platforms
React Native Requires Chilkat v11.0.0+

Use a Custom Set of Trusted Root Certificates

See more Certificates Examples

Demonstrates how to build a set of trusted root certificates to be used globally by all Chilkat classes.

Chilkat React Native Downloads

React Native
import { Cert, TrustedRoots, Zip, ZipEntry } from '@chilkat/react-native'

async function chilkatExample() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const trustedRoots = new TrustedRoots();

  //  Indicate that we will NOT trust any pre-installed certificates on the system.
  trustedRoots.trustSystemCaRoots = false;

  // Thawte is a certificate authority that provides a .zip download of their
  // root CA certificates:  https://www.thawte.com/roots/index.html
  // The direct download link is: https://www.verisign.com/support/thawte-roots.zip
  // Note: The above URLs are valid at the time of writing this example (29-May-2015).

  // Assuming the .zip has already been downloaded, open it and load each .pem file into
  // our trusted roots object.
  const zip = new Zip();

  // Open a .zip containing PEM files, among other things..
  try {
    await zip.openZipAsync('qa_data/certs/thawte-roots.zip');
  } catch {
    console.log(zip.lastErrorText);
    return;
  }

  const entry = new ZipEntry();
  let pemStr = '';
  const cert = new Cert();

  const pattern = '*.pem';
  let bHasMoreEntries = true;
  try {
    zip.entryMatching(pattern, entry);
  } catch {
    bHasMoreEntries = false;
  }
  while (bHasMoreEntries) {

    console.log(`Entry: ${entry.fileName}`);

    // Get the PEM of the CA cert:
    pemStr = await entry.unzipToStringAsync(0, 'utf-8');

    // Load it into a certificate object:
    try {
      cert.loadPem(pemStr);
    } catch {
      console.log(cert.lastErrorText);
    }

    // Add it to the trusted roots.
    trustedRoots.addCert(cert);

    bHasMoreEntries = true;
    try {
      entry.getNextMatch(pattern);
    } catch {
      bHasMoreEntries = false;
    }
  }

  //  Activate the trusted roots globally for all Chilkat objects.
  //  This call really shouldn't fail, so we're not checking the return value.
  trustedRoots.activate();
}