public verifySignature ( string $plaintext, string $signature, string $fingerprint ) : boolean | ||
$plaintext | string | The plaintext to sign |
$signature | string | The signature that should be verified |
$fingerprint | string | The fingerprint to identify the public key (RSA public key fingerprint) |
return | boolean | TRUE if the signature is correct for the given plaintext and public key |
public function verifySignature($plaintext, $signature, $fingerprint)
{
if ($fingerprint === null || !isset($this->keys[$fingerprint])) {
throw new InvalidKeyPairIdException('Invalid keypair fingerprint given', 1304959763);
}
$verifyResult = openssl_verify($plaintext, $signature, $this->getPublicKey($fingerprint)->getKeyString());
return $verifyResult === 1;
}
/** * @test */ public function signAndVerifySignatureBasicallyWorks() { $plaintext = 'trustworthy data!'; $signature = $this->rsaWalletService->sign($plaintext, $this->keyPairUuid); $this->assertTrue($this->rsaWalletService->verifySignature($plaintext, $signature, $this->keyPairUuid)); $this->assertFalse($this->rsaWalletService->verifySignature('modified data!', $signature, $this->keyPairUuid)); }