Sample code for 30+ languages & platforms
C#

Iterate Keys and Certs in PEM

See more PEM Examples

Demonstrates how to access each of the private keys and certs contained within a PEM.

Chilkat C# Downloads

C#
bool success = false;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Chilkat.Pem pem = new Chilkat.Pem();

// Load the PEM from a file.
// If the PEM is encrypted, provide a password.  Otherwise pass an empty string for the password.
string password = "myPassword";
success = pem.LoadPemFile("../myPemFiles/myPem.pem",password);
if (success == false) {
    Debug.WriteLine(pem.LastErrorText);
    return;
}

// Note: If the app already has the PEM pre-loaded in a string variable, then load it 
// by calling LoadPem instead.  
string pemContent = "... the PEM contents ...";
success = pem.LoadPem(pemContent,password);
// Check for success as before..

// Iterate over the private keys.
int numPrivateKeys = pem.NumPrivateKeys;
int i = 0;

Chilkat.PrivateKey privKey = new Chilkat.PrivateKey();
while (i < numPrivateKeys) {
    pem.PrivateKeyAt(i,privKey);
    Debug.WriteLine("Private Key " + Convert.ToString(i) + " is " + Convert.ToString(privKey.BitLength) + " in length");
    i = i + 1;
}

// Iterate over the certificates.
Chilkat.Cert cert = new Chilkat.Cert();
int numCerts = pem.NumCerts;
i = 0;
while (i < numCerts) {
    pem.CertAt(i,cert);
    Debug.WriteLine("Certificate " + Convert.ToString(i) + " : " + cert.SubjectDN);
    i = i + 1;
}