Sample code for 30+ languages & platforms
Ruby

Verfies an RSA Signature

See more Apple Keychain Examples

Verifies an RSA signature against the original data.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

# The following data was signed by the following example:
# RSA Sign using a Private Key on a USB Token or Smartcard
bd = Chilkat::CkBinData.new()

for i in 0 .. 100
    bd.AppendEncoded("000102030405060708090A0B0C0D0E0F","hex")
end

# Load the signature
bdSig = Chilkat::CkBinData.new()
success = bdSig.LoadFile("rsaSignatures/test1.sig")
if (success == false)
    print "Failed to load the RSA signature" + "\n";
    exit
end

# Get the public key to be used for signature verification.
pubKey = Chilkat::CkPublicKey.new()
success = pubKey.LoadFromFile("rsaKeys/chilkat-rsa-2048.pem")
if (success == false)
    print pubKey.lastErrorText() + "\n";
    exit
end

rsa = Chilkat::CkRsa.new()
success = rsa.UsePublicKey(pubKey)
if (success == false)
    print rsa.lastErrorText() + "\n";
    exit
end

# 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)
    print rsa.lastErrorText() + "\n";
    print "Signature invalid." + "\n";
else
    print "Signature valid." + "\n";
end