Sample code for 30+ languages & platforms
Go

RSA Sign using Base64 Private Key

See more RSA Examples

Signs a string using a non-encrypted RSA private key in base64 encoding. Returns the RSA signature as a base64 string.

Chilkat Go Downloads

Go
    success := false

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

    privKey := chilkat.NewPrivateKey()

    sbPem := chilkat.NewStringBuilder()
    sbPem.AppendLine("-----BEGIN RSA PRIVATE KEY-----",true)
    sbPem.AppendLine("MIIC .... j5A==",true)
    sbPem.AppendLine("-----END RSA PRIVATE KEY-----",true)

    success = privKey.LoadPem(*sbPem.GetAsString())
    if success == false {
        fmt.Println(privKey.LastErrorText())
        privKey.DisposePrivateKey()
        sbPem.DisposeStringBuilder()
        return
    }

    rsa := chilkat.NewRsa()

    success = rsa.UsePrivateKey(privKey)
    if success == false {
        fmt.Println(rsa.LastErrorText())
        privKey.DisposePrivateKey()
        sbPem.DisposeStringBuilder()
        rsa.DisposeRsa()
        return
    }

    bd := chilkat.NewBinData()
    bd.AppendString("12345678","utf-8")

    success = rsa.SignRawBd(bd)
    if success == false {
        fmt.Println(rsa.LastErrorText())
        privKey.DisposePrivateKey()
        sbPem.DisposeStringBuilder()
        rsa.DisposeRsa()
        bd.DisposeBinData()
        return
    }

    // Get the base64 RSA signature.
    fmt.Println(*bd.GetEncoded("base64"))

    success = rsa.VerifyRawBd(bd)
    if success == false {
        fmt.Println(rsa.LastErrorText())
        privKey.DisposePrivateKey()
        sbPem.DisposeStringBuilder()
        rsa.DisposeRsa()
        bd.DisposeBinData()
        return
    }

    strOriginal := bd.GetString("utf-8")
    fmt.Println(*strOriginal)

    privKey.DisposePrivateKey()
    sbPem.DisposeStringBuilder()
    rsa.DisposeRsa()
    bd.DisposeBinData()