mtv_crypto_middleware/
lib.rs1#[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 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}