Sample code for 30+ languages & platforms
Go Requires Chilkat v11.0.0+

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

Go
    success := false

    pfx := chilkat.NewPfx()

    //  Load the PKCS12 from a file
    success = pfx.LoadPfxFile("/someDir/my.p12","pfxFilePassword")
    if success == false {
        fmt.Println(pfx.LastErrorText())
        pfx.DisposePfx()
        return
    }

    numPrivateKeys := pfx.NumPrivateKeys()

    privKey := chilkat.NewPrivateKey()

    fmt.Println("Private Keys:")

    i := 0
    for i < numPrivateKeys {
        pfx.PrivateKeyAt(i,privKey)

        //  Do something with the private key ...

        i = i + 1
    }

    cert := chilkat.NewCert()

    numCerts := pfx.NumCerts()

    fmt.Println("Certs:")
    i = 0
    for i < numCerts {
        pfx.CertAt(i,cert)
        fmt.Println(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() == true {

            fmt.Println("Has private key!")

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

        }

        i = i + 1
    }


    pfx.DisposePfx()
    privKey.DisposePrivateKey()
    cert.DisposeCert()