Go
Go
Verify an RSA Signature Against the Signed Hash
See more Apple Keychain Examples
Demonstrates how to validate an RSA Signature against the hash that was signed.Chilkat Go Downloads
success := false
bd := chilkat.NewBinData()
var i int
for i = 0; i <= 100; i++ {
bd.AppendEncoded("000102030405060708090A0B0C0D0E0F","hex")
}
sha256_base64 := bd.GetHash("sha256","base64")
fmt.Println("sha256 hash in base64 format: ", *sha256_base64)
base64_rsa_sig := "AwF2BbOvL6jA5DwmMAc9n6J2Cc8PI6Rj5W079+aKJcIEtPWRzHor0Bvc3aftGM3Jbgj6SXlIC3M3RYS7UZOnfiHKFNZgbxaNT5WwsWooK42ZkC8DBZl0p7OunBUKd5SciUo+TKilioeUkriN3L1Zl9hwi3HVDVqgVo3XXskwIftSqLSFlepTLTmOWj9Y93dp8J4D9RyLtNgFQBc0WB22tyJTsuY56mLcWe1AMF3LizB9OrbwjynF2u16xWlrJdugccz795fJBUV9aQSD+8S3KeqwQhoi8RK1uhD68aGCyaSpBq0NZ8COAkn7MXaF4POxrAAt8udfHM+PRfSOptcH/w=="
// Get the public key to be used for signature verification.
pubKey := chilkat.NewPublicKey()
success = pubKey.LoadFromFile("rsaKeys/chilkat-rsa-2048.pem")
if success == false {
fmt.Println(pubKey.LastErrorText())
bd.DisposeBinData()
pubKey.DisposePublicKey()
return
}
rsa := chilkat.NewRsa()
success = rsa.UsePublicKey(pubKey)
if success == false {
fmt.Println(rsa.LastErrorText())
bd.DisposeBinData()
pubKey.DisposePublicKey()
rsa.DisposeRsa()
return
}
// Verify the hash against the signature.
rsa.SetEncodingMode("base64")
success = rsa.VerifyHashENC(*sha256_base64,"sha256",base64_rsa_sig)
if success == false {
fmt.Println(rsa.LastErrorText())
fmt.Println("Signature invalid.")
} else {
fmt.Println("Signature valid.")
}
bd.DisposeBinData()
pubKey.DisposePublicKey()
rsa.DisposeRsa()