rn-csca
Interact with ldif and pem CSCAs
Installation
npm install rn-csca
Usage
import { parsePem, parsePemString, parseLdif, parseLdifString, findMasterCertificate } from 'rn-csca';
const pemString = `-----BEGIN CERTIFICATE-----
MIIBkTCB+wIJANy...
-----END CERTIFICATE-----`;
try {
const certificates = parsePemString(pemString);
console.log(`Found ${certificates.length} certificates`);
certificates.forEach((certDer, index) => {
console.log(`Certificate ${index}: ${certDer.byteLength} bytes`);
});
} catch (error) {
console.error('Failed to parse PEM:', error);
}
const pemBytes = new TextEncoder().encode(pemString);
const certificates = parsePem(pemBytes.buffer);
const ldifString = `dn: cn=certificate1
objectClass: certificationAuthority
cACertificate:: MIIBkTCB+wIJANy...`;
try {
const ldifCertificates = parseLdifString(ldifString);
console.log(`Found ${ldifCertificates.length} certificates from LDIF`);
} catch (error) {
console.error('Failed to parse LDIF:', error);
}
const ldifBytes = new TextEncoder().encode(ldifString);
const ldifCertificates = parseLdif(ldifBytes.buffer);
const slaveCertDer = certificates[0];
const masterCertsDer = certificates.slice(1);
try {
const masterCert = findMasterCertificate(slaveCertDer, masterCertsDer);
if (masterCert) {
console.log(`Found master certificate: ${masterCert.byteLength} bytes`);
} else {
console.log('No master certificate found');
}
} catch (error) {
console.error('Error finding master certificate:', error);
}
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT
Made with create-react-native-library