summaryrefslogtreecommitdiff
path: root/exes/webhook/src/handler/signature.rs
blob: ece7b85c8951ca48a24c53d4007586939fda88b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
use ed25519_dalek::{PublicKey, Signature, Verifier};

pub fn validate_signature(public_key: &PublicKey, data: &[u8], hex_signature: &str) -> bool {
    let mut slice: [u8; Signature::BYTE_SIZE] = [0; Signature::BYTE_SIZE];
    let signature_result = hex::decode_to_slice(hex_signature, &mut slice);

    let mut result = false;
    if signature_result.is_ok() {
        result = public_key.verify(data, &Signature::from(slice)).is_ok();
    }

    result
}