1
2
3
4
5
6
7
8
9
10
pub trait AgentSigner<RES> {
    fn sign_connect_req(&self) -> Vec<u8>;
    fn validate_connect_res(&self, resp: &[u8]) -> Result<RES, String>;
}

pub trait ClusterValidator<REQ>: Clone {
    fn validate_connect_req(&self, req: &[u8]) -> Result<REQ, String>;
    fn generate_domain(&self, req: &REQ) -> Result<String, String>;
    fn sign_response_res(&self, m: &REQ, err: Option<String>) -> Vec<u8>;
}