Sample code for 30+ languages & platforms
Go

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()