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
39
/*
   Appellation: peers <module>
   Creator: FL03 <jo3mccain@icloud.com>
   Description:
       ... Summary ...
*/
pub use self::{attr::*, interface::*, peer::*, utils::*};

pub(crate) mod attr;
pub(crate) mod interface;
pub(crate) mod peer;

pub(crate) mod utils {
    use crate::{NoiseKeys, NoiseResult, PeerKp};

    pub fn authorize_peer(noise_keys: NoiseKeys, kp: PeerKp) -> NoiseResult {
        noise_keys.into_authentic(&kp)
    }

    pub fn generate_noise_keys() -> NoiseKeys {
        NoiseKeys::new()
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_auth_peer() {
        let kp = Peer::generate_ed25519();
        let nk = Peer::generate_noise_keys();
        let peer = Peer::from(kp);
        let a = peer.authenticate(nk.clone());
        let b = authorize_peer(nk, peer.keypair());
        assert!(a.is_ok());
        assert!(b.is_ok());
    }
}