pub trait Verifier {
// Required method
fn verify(&self, signature: &Signature, message: &dyn AsRef<[u8]>) -> bool;
}Expand description
A trait for types capable of verifying digital signatures.
The Verifier trait provides a method to verify that a signature was
created by a corresponding signer for a specific message. This trait is
implemented by SigningPublicKey for all supported signature schemes.
§Examples
use bc_components::{SignatureScheme, Signer, Verifier};
// Create a key pair using the ECDSA signature scheme
let (private_key, public_key) = SignatureScheme::Ecdsa.keypair();
// Sign a message
let message = b"Hello, world!";
let signature = private_key.sign(&message).unwrap();
// Verify the signature
assert!(public_key.verify(&signature, &message));
// Verification should fail for a different message
assert!(!public_key.verify(&signature, &b"Different message"));Required Methods§
Sourcefn verify(&self, signature: &Signature, message: &dyn AsRef<[u8]>) -> bool
fn verify(&self, signature: &Signature, message: &dyn AsRef<[u8]>) -> bool
Verifies a signature against a message.
§Arguments
signature- The signature to verifymessage- The message that was allegedly signed
§Returns
true if the signature is valid for the message, false otherwise.
§Examples
use bc_components::{SignatureScheme, Signer, Verifier};
// Create a key pair
let (private_key, public_key) = SignatureScheme::Ed25519.keypair();
// Sign a message
let message = b"Hello, world!";
let signature = private_key.sign(&message).unwrap();
// Verify the signature with the correct message (should succeed)
assert!(public_key.verify(&signature, &message));
// Verify the signature with an incorrect message (should fail)
assert!(!public_key.verify(&signature, &b"Tampered message"));Implementors§
impl Verifier for SigningPrivateKey
Implementation of the Verifier trait for SigningPrivateKey
impl Verifier for SigningPublicKey
Implementation of the Verifier trait for SigningPublicKey
impl Verifier for ECPublicKey
Implements the Verifier trait for verifying signatures.