Sample code for 30+ languages & platforms
Go

Iterate Keys and Certs in PEM

See more PEM Examples

Demonstrates how to access each of the private keys and certs contained within a PEM.

Chilkat Go Downloads

Go
    success := false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    pem := chilkat.NewPem()

    // Load the PEM from a file.
    // If the PEM is encrypted, provide a password.  Otherwise pass an empty string for the password.
    password := "myPassword"
    success = pem.LoadPemFile("../myPemFiles/myPem.pem",password)
    if success == false {
        fmt.Println(pem.LastErrorText())
        pem.DisposePem()
        return
    }

    // Note: If the app already has the PEM pre-loaded in a string variable, then load it 
    // by calling LoadPem instead.  
    pemContent := "... the PEM contents ..."
    success = pem.LoadPem(pemContent,password)
    // Check for success as before..

    // Iterate over the private keys.
    numPrivateKeys := pem.NumPrivateKeys()
    i := 0

    privKey := chilkat.NewPrivateKey()
    for i < numPrivateKeys {
        pem.PrivateKeyAt(i,privKey)
        fmt.Println("Private Key ", i, " is ", privKey.BitLength(), " in length")
        i = i + 1
    }

    // Iterate over the certificates.
    cert := chilkat.NewCert()
    numCerts := pem.NumCerts()
    i = 0
    for i < numCerts {
        pem.CertAt(i,cert)
        fmt.Println("Certificate ", i, " : ", cert.SubjectDN())
        i = i + 1
    }


    pem.DisposePem()
    privKey.DisposePrivateKey()
    cert.DisposeCert()