Sample code for 30+ languages & platforms
AutoIt

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

AutoIt
Local $bSuccess = False

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

$oPem = ObjCreate("Chilkat.Pem")

; Load the PEM from a file.
; If the PEM is encrypted, provide a password.  Otherwise pass an empty string for the password.
Local $sPassword = "myPassword"
$bSuccess = $oPem.LoadPemFile("../myPemFiles/myPem.pem",$sPassword)
If ($bSuccess = False) Then
    ConsoleWrite($oPem.LastErrorText & @CRLF)
    Exit
EndIf

; Note: If the app already has the PEM pre-loaded in a string variable, then load it 
; by calling LoadPem instead.  
Local $sPemContent = "... the PEM contents ..."
$bSuccess = $oPem.LoadPem($sPemContent,$sPassword)
; Check for success as before..

; Iterate over the private keys.
Local $iNumPrivateKeys = $oPem.NumPrivateKeys
Local $i = 0

$oPrivKey = ObjCreate("Chilkat.PrivateKey")
While $i < $iNumPrivateKeys
    $oPem.PrivateKeyAt($i,$oPrivKey)
    ConsoleWrite("Private Key " & $i & " is " & $oPrivKey.BitLength & " in length" & @CRLF)
    $i = $i + 1
Wend

; Iterate over the certificates.
$oCert = ObjCreate("Chilkat.Cert")
Local $iNumCerts = $oPem.NumCerts
$i = 0
While $i < $iNumCerts
    $oPem.CertAt($i,$oCert)
    ConsoleWrite("Certificate " & $i & " : " & $oCert.SubjectDN & @CRLF)
    $i = $i + 1
Wend