summaryrefslogtreecommitdiff
path: root/exes/webhook/src/handler/tests/signature.rs
blob: 4ff52ff33d6a7aacd7eb179abc767264ef742f94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use crate::handler::signature::validate;
use ed25519_dalek::PublicKey;

#[test]
fn validate_signature_test() {
    let signature = "543ec3547d57f9ddb1ec4c5c36503ebf288ffda3da3d510764c9a49c2abb57690ef974c63d174771bdd2481de1066966f57abbec12a3ec171b9f6e2373837002";
    let content = b"message de test incroyable";
    let public_key = PublicKey::from_bytes(
        &hex::decode("eefe0c24473737cb2035232e3b4eb91c206f0a14684168f3503f7d8316058d6f").unwrap(),
    )
    .unwrap();

    assert!(validate(&public_key, content, signature));
}

#[test]
fn validate_signature_reverse_test() {
    let signature = "543ec3547d57f9ddb1ec4c5c36503ebf288ffda3da3d510764c9a49c2abb57690ef974c63d174771bdd2481de1066966f57abbec12a3ec171b9f6e2373837002";
    let public_key = PublicKey::from_bytes(
        &hex::decode("c029eea18437292c87c62aec34e7d1bd4e38fe6126f3f7c446de6375dc666044").unwrap(),
    )
    .unwrap();

    let content = b"ceci est un test qui ne fonctionnera pas!";
    assert!(!validate(&public_key, content, signature));
}

#[test]
fn invalid_hex() {
    let signature = "zzz";
    let public_key = PublicKey::from_bytes(
        &hex::decode("c029eea18437292c87c62aec34e7d1bd4e38fe6126f3f7c446de6375dc666044").unwrap(),
    )
    .unwrap();

    let content = b"ceci est un test qui ne fonctionnera pas!";
    assert!(!validate(&public_key, content, signature));
}