Sample code for 30+ languages & platforms
Go

Get a Certificate's Key Size

See more Certificates Examples

Demonstrates how to get the RSA key size of a certificate (for example, 1024-bit, 2048-bit, etc.)

Chilkat Go Downloads

Go
    success := false

    // For this example, I have a certificate in raw base64 format (not PEM),
    // that looks like this:  "MIIGkDCCBHigAwIBAgIUMDA ... s/iqLsLA=="
    sbCertBase64 := chilkat.NewStringBuilder()
    success = sbCertBase64.LoadFile("qa_data/certs/base64Cert.txt","utf-8")

    cert := chilkat.NewCert()
    success = cert.LoadFromBase64(*sbCertBase64.GetAsString())
    if success == false {
        fmt.Println(cert.LastErrorText())
        sbCertBase64.DisposeStringBuilder()
        cert.DisposeCert()
        return
    }

    // Get the public key.
    pubKey := chilkat.NewPublicKey()
    cert.GetPublicKey(pubKey)

    numBits := pubKey.KeySize()
    fmt.Println("Number of bits = ", numBits)

    // If using an older version of Chilkat, the key size can be obtained like this:
    xml := chilkat.NewXml()
    xml.LoadXml(*pubKey.GetXml())

    binDat := chilkat.NewBinData()
    binDat.AppendEncoded(*xml.GetChildContent("Modulus"),"base64")

    numBits = 8 * binDat.NumBytes()
    fmt.Println("Number of bits = ", numBits)

    sbCertBase64.DisposeStringBuilder()
    cert.DisposeCert()
    pubKey.DisposePublicKey()
    xml.DisposeXml()
    binDat.DisposeBinData()