Sample code for 30+ languages & platforms
Xojo Plugin Requires Chilkat v11.0.0+

Verfies an RSA Signature

See more Apple Keychain Examples

Verifies an RSA signature against the original data.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

//  The following data was signed by the following example:
//  RSA Sign using a Private Key on a USB Token or Smartcard
Dim bd As New Chilkat.BinData
Dim i As Int32
For i = 0 To 100
    success = bd.AppendEncoded("000102030405060708090A0B0C0D0E0F","hex")
Next

//  Load the signature
Dim bdSig As New Chilkat.BinData
success = bdSig.LoadFile("rsaSignatures/test1.sig")
If (success = False) Then
    System.DebugLog("Failed to load the RSA signature")
    Return
End If

//  Get the public key to be used for signature verification.
Dim pubKey As New Chilkat.PublicKey
success = pubKey.LoadFromFile("rsaKeys/chilkat-rsa-2048.pem")
If (success = False) Then
    System.DebugLog(pubKey.LastErrorText)
    Return
End If

Dim rsa As New Chilkat.Rsa
success = rsa.UsePublicKey(pubKey)
If (success = False) Then
    System.DebugLog(rsa.LastErrorText)
    Return
End If

//  Verify the hash of the data against the signature.
//  We pass in the original data.  Internally, the hash is generated
//  and used to validate the signature.
//  Validating the RSA signature means two things:  
//  (1) the original data is exactly what was signed, and 
//  (2) it was signed by the owner of the RSA private key.
success = rsa.VerifyBd(bd,"sha256",bdSig)

If (success = False) Then
    System.DebugLog(rsa.LastErrorText)
    System.DebugLog("Signature invalid.")
Else
    System.DebugLog("Signature valid.")
End If