Sample code for 30+ languages & platforms
Ruby

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

Ruby
require 'chilkat'

success = false

pfx = Chilkat::CkPfx.new()

# Load the PKCS12 from a file
success = pfx.LoadPfxFile("/someDir/my.p12","pfxFilePassword")
if (success == false)
    print pfx.lastErrorText() + "\n";
    exit
end

numPrivateKeys = pfx.get_NumPrivateKeys()

privKey = Chilkat::CkPrivateKey.new()

print "Private Keys:" + "\n";

i = 0
while i < numPrivateKeys
    pfx.PrivateKeyAt(i,privKey)

    # Do something with the private key ...

    i = i + 1
end

cert = Chilkat::CkCert.new()

numCerts = pfx.get_NumCerts()

print "Certs:" + "\n";
i = 0
while i < numCerts
    pfx.CertAt(i,cert)
    print cert.subjectDN() + "\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() == true)

        print "Has private key!" + "\n";

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

    end

    i = i + 1
end