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

Verfies an RSA Signature

See more Apple Keychain Examples

Verifies an RSA signature against the original data.

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

#  The following data was signed by the following example:
#  RSA Sign using a Private Key on a USB Token or Smartcard
$bd = New-Object Chilkat.BinData

for ($i = 0; $i -le 100; $i++) {
    $bd.AppendEncoded("000102030405060708090A0B0C0D0E0F","hex")
}

#  Load the signature
$bdSig = New-Object Chilkat.BinData
$success = $bdSig.LoadFile("rsaSignatures/test1.sig")
if ($success -eq $false) {
    $("Failed to load the RSA signature")
    exit
}

#  Get the public key to be used for signature verification.
$pubKey = New-Object Chilkat.PublicKey
$success = $pubKey.LoadFromFile("rsaKeys/chilkat-rsa-2048.pem")
if ($success -eq $false) {
    $($pubKey.LastErrorText)
    exit
}

$rsa = New-Object Chilkat.Rsa
$success = $rsa.UsePublicKey($pubKey)
if ($success -eq $false) {
    $($rsa.LastErrorText)
    exit
}

#  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 -eq $false) {
    $($rsa.LastErrorText)
    $("Signature invalid.")
}
else {
    $("Signature valid.")
}