Sample code for 30+ languages & platforms
Lianja

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

Lianja
llSuccess = .F.

loPfx = createobject("CkPfx")

// Load the PKCS12 from a file
llSuccess = loPfx.LoadPfxFile("/someDir/my.p12","pfxFilePassword")
if (llSuccess = .F.) then
    ? loPfx.LastErrorText
    release loPfx
    return
endif

lnNumPrivateKeys = loPfx.NumPrivateKeys

loPrivKey = createobject("CkPrivateKey")

? "Private Keys:"

i = 0
do while i < lnNumPrivateKeys
    loPfx.PrivateKeyAt(i,loPrivKey)

    // Do something with the private key ...

    i = i + 1
enddo

loCert = createobject("CkCert")

lnNumCerts = loPfx.NumCerts

? "Certs:"
i = 0
do while i < lnNumCerts
    loPfx.CertAt(i,loCert)
    ? loCert.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 (loCert.HasPrivateKey() = .T.) then

        ? "Has private key!"

        llSuccess = loCert.GetPrivateKey(loPrivKey)
        // ...

    endif

    i = i + 1
enddo


release loPfx
release loPrivKey
release loCert