Skip to main content

verify

Function verify 

Source
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());