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

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

Perl
use chilkat();

$success = 0;

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

$pem = chilkat::CkPem->new();

#  Load the PEM from a file.
#  If the PEM is encrypted, provide a password.  Otherwise pass an empty string for the password.
$password = "myPassword";
$success = $pem->LoadPemFile("../myPemFiles/myPem.pem",$password);
if ($success == 0) {
    print $pem->lastErrorText() . "\r\n";
    exit;
}

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

#  Iterate over the private keys.
$numPrivateKeys = $pem->get_NumPrivateKeys();
$i = 0;

$privKey = chilkat::CkPrivateKey->new();
while ($i < $numPrivateKeys) {
    $pem->PrivateKeyAt($i,$privKey);
    print "Private Key " . $i . " is " . $privKey->get_BitLength() . " in length" . "\r\n";
    $i = $i + 1;
}

#  Iterate over the certificates.
$cert = chilkat::CkCert->new();
$numCerts = $pem->get_NumCerts();
$i = 0;
while ($i < $numCerts) {
    $pem->CertAt($i,$cert);
    print "Certificate " . $i . " : " . $cert->subjectDN() . "\r\n";
    $i = $i + 1;
}