PHP Requires Chilkat v11.0.0+
Chilkat2 PHP
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 PHP Downloads
<?php
use Chilkat2\BinData;
use Chilkat2\PublicKey;
use Chilkat2\Rsa;
$bd = new BinData();
for ($i = 0; $i <= 100; $i++) {
$bd->AppendEncoded('000102030405060708090A0B0C0D0E0F', 'hex');
}
$sha256_base64 = $bd->GetHash('sha256', 'base64');
echo 'sha256 hash in base64 format: ', $sha256_base64, "\n";
$base64_rsa_sig = 'AwF2BbOvL6jA5DwmMAc9n6J2Cc8PI6Rj5W079+aKJcIEtPWRzHor0Bvc3aftGM3Jbgj6SXlIC3M3RYS7UZOnfiHKFNZgbxaNT5WwsWooK42ZkC8DBZl0p7OunBUKd5SciUo+TKilioeUkriN3L1Zl9hwi3HVDVqgVo3XXskwIftSqLSFlepTLTmOWj9Y93dp8J4D9RyLtNgFQBc0WB22tyJTsuY56mLcWe1AMF3LizB9OrbwjynF2u16xWlrJdugccz795fJBUV9aQSD+8S3KeqwQhoi8RK1uhD68aGCyaSpBq0NZ8COAkn7MXaF4POxrAAt8udfHM+PRfSOptcH/w==';
// 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 against the signature.
$rsa->EncodingMode = 'base64';
try {
$rsa->VerifyHashENC($sha256_base64, 'sha256', $base64_rsa_sig);
echo "Signature valid.\n";
} catch (\Chilkat2\Exception $e) {
echo $e->getMessage(), "\n";
echo "Signature invalid.\n";
}