Sample code for 30+ languages & platforms
Perl

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

Perl
use chilkat();

$success = 0;

$pfx = chilkat::CkPfx->new();

# Load the PKCS12 from a file
$success = $pfx->LoadPfxFile("/someDir/my.p12","pfxFilePassword");
if ($success == 0) {
    print $pfx->lastErrorText() . "\r\n";
    exit;
}

$numPrivateKeys = $pfx->get_NumPrivateKeys();

$privKey = chilkat::CkPrivateKey->new();

print "Private Keys:" . "\r\n";

$i = 0;
while ($i < $numPrivateKeys) {
    $pfx->PrivateKeyAt($i,$privKey);

    # Do something with the private key ...

    $i = $i + 1;
}

$cert = chilkat::CkCert->new();

$numCerts = $pfx->get_NumCerts();

print "Certs:" . "\r\n";
$i = 0;
while ($i < $numCerts) {
    $pfx->CertAt($i,$cert);
    print $cert->subjectDN() . "\r\n";

    # 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() == 1) {

        print "Has private key!" . "\r\n";

        $success = $cert->GetPrivateKey($privKey);
        # ...

    }

    $i = $i + 1;
}