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