mtv_crypto_middleware/
lib.rs

1#[cfg(feature = "signed_fetch")]
2pub mod signed_fetch;
3#[cfg(feature = "ws")]
4pub mod ws;
5#[cfg(feature = "ws_signed_headers")]
6pub mod ws_signed_headers;
7
8#[cfg(test)]
9mod test_utils {
10    pub enum ReplyType {
11        InvalidMessageError,
12        InvalidSignatureError,
13        TimeoutError,
14        AuthChain,
15    }
16
17    // Mock for simulating a connection
18    pub struct InMemory {
19        pub sender: tokio::sync::mpsc::Sender<String>,
20        pub receiver: tokio::sync::mpsc::Receiver<String>,
21        pub reply_type: ReplyType,
22    }
23
24    impl InMemory {
25        pub fn new(reply_type: ReplyType) -> Self {
26            let chann = tokio::sync::mpsc::channel(1);
27            Self {
28                sender: chann.0,
29                receiver: chann.1,
30                reply_type,
31            }
32        }
33
34        pub async fn send_challenge(&self, auth_chain: &str) {
35            self.sender.send(auth_chain.to_string()).await.unwrap();
36        }
37    }
38
39    pub fn create_test_identity() -> mtv_crypto::Identity {
40      mtv_crypto::Identity::from_json(
41          r#"{
42         "ephemeralIdentity": {
43           "privateKey":"0x8d11d14dd05b58fa150ec39ceab942dbff334af4dd4e87df4244106023d758ce",
44           "publicKey":"a1a8de183be2f189bdfacf83ca4262016840c590abee0b2048288c3b9090dae87538eda022d7c6f82a5ed617b7138db1a63ebe92f7b1afc6de032d6568525f13",
45           "address": "0x68560651BD91509EB22b90f6F748422A26CA3425"
46         },
47         "expiration": "8020-07-28T07:42:51.682Z",
48         "authChain": [
49            {
50              "type": "SIGNER",
51              "payload": "0x13FE90239bfda363eC33a849b716616958c04f0F",
52              "signature": ""
53            },
54            {
55              "type": "ECDSA_EPHEMERAL",
56              "payload": "Memetaverse Login\nEphemeral address: 0x68560651BD91509EB22b90f6F748422A26CA3425\nExpiration: 8020-07-28T07:42:51.682Z",
57              "signature": "0xea55d3fcf473eec78b240609e0f091f8c4f888fa03a4f4f42a1f27539dd355763677c56cbfb5f4cf77c9286d7782d39fbbf7eb4b9af9dab2f4d153707d497f591b"
58            }
59          ]
60        }"#,
61      ).unwrap()
62    }
63}