pub fn verify(
alg: Algorithm,
public: &[u8],
msg: &[u8],
sig: &[u8],
) -> Result<(), AlgorithmError>Expand description
Verify a detached signature.
Fails closed: a signature that does not verify is an
AlgorithmError::SignatureInvalid error, never a boolean, so a
forgotten result check cannot be mistaken for success.
ยงExamples
use crypto_core::Algorithm;
use crypto_dispatch::{generate_keypair, sign, verify};
let (public, secret) = generate_keypair(Algorithm::Ed25519)?;
let signature = sign(Algorithm::Ed25519, &secret, b"message")?;
// The signed message verifies.
verify(Algorithm::Ed25519, &public, b"message", &signature)?;
// A different message returns Err, never `Ok(false)`.
assert!(verify(Algorithm::Ed25519, &public, b"tampered", &signature).is_err());