Sample code for 30+ languages & platforms
PHP 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 PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\Cert;
use Chilkat2\Pem;
use Chilkat2\PrivateKey;

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

$pem = new Pem();

// Load the PEM from a file.
// If the PEM is encrypted, provide a password.  Otherwise pass an empty string for the password.
$password = 'myPassword';
try {
    $pem->LoadPemFile('../myPemFiles/myPem.pem', $password);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\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 ...';
$pem->LoadPem($pemContent, $password);
// Check for success as before..

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

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

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