Sample code for 30+ languages & platforms
PowerShell

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

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

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

$pem = New-Object Chilkat.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"
$success = $pem.LoadPemFile("../myPemFiles/myPem.pem",$password)
if ($success -eq $false) {
    $($pem.LastErrorText)
    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.NumPrivateKeys
$i = 0

$privKey = New-Object Chilkat.PrivateKey
while ($i -lt $numPrivateKeys) {
    $pem.PrivateKeyAt($i,$privKey)
    $("Private Key " + $i + " is " + $privKey.BitLength + " in length")
    $i = $i + 1
}

# Iterate over the certificates.
$cert = New-Object Chilkat.Cert
$numCerts = $pem.NumCerts
$i = 0
while ($i -lt $numCerts) {
    $pem.CertAt($i,$cert)
    $("Certificate " + $i + " : " + $cert.SubjectDN)
    $i = $i + 1
}