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

Verfies an RSA Signature

See more Apple Keychain Examples

Verifies an RSA signature against the original data.

Chilkat PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\BinData;
use Chilkat2\PublicKey;
use Chilkat2\Rsa;

// The following data was signed by the following example:
// RSA Sign using a Private Key on a USB Token or Smartcard
$bd = new BinData();
for ($i = 0; $i <= 100; $i++) {
    $bd->AppendEncoded('000102030405060708090A0B0C0D0E0F', 'hex');
}

// Load the signature
$bdSig = new BinData();
try {
    $bdSig->LoadFile('rsaSignatures/test1.sig');
} catch (\Chilkat2\Exception $e) {
    echo "Failed to load the RSA signature\n";
    exit;
}

// Get the public key to be used for signature verification.
$pubKey = new PublicKey();
try {
    $pubKey->LoadFromFile('rsaKeys/chilkat-rsa-2048.pem');

    $rsa = new Rsa();
    $rsa->UsePublicKey($pubKey);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    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.

try {
    $rsa->VerifyBd($bd, 'sha256', $bdSig);
    echo "Signature valid.\n";
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    echo "Signature invalid.\n";
}