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

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

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

my $pem = Chilkat2::Pem->new;

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

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

# Iterate over the private keys.
my $numPrivateKeys = $pem->NumPrivateKeys;
my $i = 0;

my $privKey = Chilkat2::PrivateKey->new;
while ($i < $numPrivateKeys) {
    $pem->PrivateKeyAt($i, $privKey);
    print 'Private Key ', $i, ' is ', $privKey->BitLength, " in length\n";
    $i = $i + 1;
}

# Iterate over the certificates.
my $cert = Chilkat2::Cert->new;
my $numCerts = $pem->NumCerts;
$i = 0;
while ($i < $numCerts) {
    $pem->CertAt($i, $cert);
    print 'Certificate ', $i, ' : ', $cert->SubjectDN, "\n";
    $i = $i + 1;
}