Sample code for 30+ languages & platforms
PowerShell

Load PKCS12 / PFX and Access Contents

See more PFX/P12 Examples

Loads a PKCS12 / PFX file and iterates over the contents which include private keys and certificates.

Chilkat PowerShell Downloads

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

$success = $false

$pfx = New-Object Chilkat.Pfx

# Load the PKCS12 from a file
$success = $pfx.LoadPfxFile("/someDir/my.p12","pfxFilePassword")
if ($success -eq $false) {
    $($pfx.LastErrorText)
    exit
}

$numPrivateKeys = $pfx.NumPrivateKeys

$privKey = New-Object Chilkat.PrivateKey

$("Private Keys:")

$i = 0
while ($i -lt $numPrivateKeys) {
    $pfx.PrivateKeyAt($i,$privKey)

    # Do something with the private key ...

    $i = $i + 1
}

$cert = New-Object Chilkat.Cert

$numCerts = $pfx.NumCerts

$("Certs:")
$i = 0
while ($i -lt $numCerts) {
    $pfx.CertAt($i,$cert)
    $($cert.SubjectDN)

    # If the certificate has a private key (one of the private keys within the PFX)
    # then it can also be obtained via the certificate object:
    if ($cert.HasPrivateKey() -eq $true) {

        $("Has private key!")

        $success = $cert.GetPrivateKey($privKey)
        # ...

    }

    $i = $i + 1
}