|
1 | 1 | use crate::auth::cacao::Cacao; |
2 | 2 |
|
3 | | -/// Test that we can verify a Cacao |
| 3 | +/// Test that we can verify a deprecated Cacao. |
4 | 4 | #[test] |
5 | | -fn verify_success() { |
| 5 | +fn cacao_verify_success() { |
6 | 6 | let cacao_serialized = r#"{ |
7 | 7 | "h": { |
8 | 8 | "t": "eip4361" |
9 | 9 | }, |
10 | 10 | "p": { |
11 | | - "iss": "did:pkh:eip155:1:0x262f4f5DC82ad9b803680F07Da7d901D4F71d8D1", |
12 | | - "domain": "http://10.0.2.2:8080", |
13 | | - "aud": "http://10.0.2.2:8080", |
| 11 | + "iss": "did:pkh:eip155:1:0xB1bad80be351061Db2F726D2dDe28E0Ebbb88D30", |
| 12 | + "domain": "keys.walletconnect.com", |
| 13 | + "aud": "https://keys.walletconnect.com", |
14 | 14 | "version": "1", |
15 | | - "nonce": "[B@c3772c7", |
16 | | - "iat": "2023-01-17T12:15:05+01:00", |
| 15 | + "nonce": "2c586f5025cb20094329ccd83684e2b192bebb2a3f83fc91b0b27aa817fd24de", |
| 16 | + "iat": "2023-05-17T14:22:32+02:00", |
17 | 17 | "resources": [ |
18 | | - "did:key:z6MkkG9nM8ksS37sq5mgeoCn5kihLkWANcm9pza5WTkq3tWZ" |
| 18 | + "did:key:z6MkhoV7JnKEFgwai4R1ui14xcPDnqVFZ3a9dUNM3fE3z3Nf" |
19 | 19 | ] |
20 | 20 | }, |
21 | 21 | "s": { |
22 | 22 | "t": "eip191", |
23 | | - "s": "0xf2f0e5dc8875ef1e3d40472078b06ebe4af5fc832e464338996fb0d3134cde7613bc36416519e8dd8959655f0e89c6b7a9de55f7c95f43e8d2240f89939ed7171c" |
| 23 | + "s": "0x991f379195564ba1d131c53cc9b3cf13c03e3a8111f502fd40ca12e1d04d98ea58531295c48f852c9c35a938c778f52a2c994f109fc0e94cc4e16f62d41d54371c" |
24 | 24 | } |
25 | | - } "#; |
| 25 | + }"#; |
| 26 | + let cacao: Cacao = serde_json::from_str(cacao_serialized).unwrap(); |
| 27 | + let result = cacao.verify(); |
| 28 | + assert!(result.is_ok()); |
| 29 | + assert!(result.map_err(|_| false).unwrap()); |
| 30 | + |
| 31 | + let identity_key = cacao.p.identity_key(); |
| 32 | + assert!(identity_key.is_ok()); |
| 33 | + assert_eq!( |
| 34 | + identity_key.unwrap(), |
| 35 | + "z6MkhoV7JnKEFgwai4R1ui14xcPDnqVFZ3a9dUNM3fE3z3Nf" |
| 36 | + ) |
| 37 | +} |
| 38 | + |
| 39 | +/// Test that we can verify a updated Cacao. |
| 40 | +#[test] |
| 41 | +fn cacao_verify_success_identity_in_audience() { |
| 42 | + let cacao_serialized = r#"{ |
| 43 | + "h": { |
| 44 | + "t": "eip4361" |
| 45 | + }, |
| 46 | + "p": { |
| 47 | + "iss": "did:pkh:eip155:1:0xdFe7d0E324ed017a74aE311E9236E6CaDB24176b", |
| 48 | + "domain": "com.walletconnect.sample.web3inbox", |
| 49 | + "aud": "did:key:z6MkvjNoiz9AXGH1igzrtB54US5hE9bZPQm1ryKGkCLwWht7", |
| 50 | + "version": "1", |
| 51 | + "nonce": "6c9435d868ce15e0a1b0987a61a975e8c0edda17054840548dabf0a3c55cf5e4", |
| 52 | + "iat": "2023-09-07T11:04:23+02:00", |
| 53 | + "statement": "I further authorize this DAPP to send and receive messages on my behalf for this domain and manage my identity at identity.walletconnect.com.", |
| 54 | + "resources": [ |
| 55 | + "identity.walletconnect.com" |
| 56 | + ] |
| 57 | + }, |
| 58 | + "s": { |
| 59 | + "t": "eip191", |
| 60 | + "s": "0x18b8dd2595930bd4bcd8066ad9fca5c54aaab20d2ec1cf46ff90baa5a91acad80f064a2f533d9dfc75928958a1da8e4f6755e14cab325a40a3a51e4bd6f2a1c91b" |
| 61 | + } |
| 62 | + }"#; |
26 | 63 | let cacao: Cacao = serde_json::from_str(cacao_serialized).unwrap(); |
27 | | - println!("{}", cacao.siwe_message().unwrap()); |
28 | 64 | let result = cacao.verify(); |
29 | 65 | assert!(result.is_ok()); |
30 | 66 | assert!(result.map_err(|_| false).unwrap()); |
31 | 67 |
|
32 | 68 | let identity_key = cacao.p.identity_key(); |
33 | 69 | assert!(identity_key.is_ok()); |
| 70 | + assert_eq!( |
| 71 | + identity_key.unwrap(), |
| 72 | + "z6MkvjNoiz9AXGH1igzrtB54US5hE9bZPQm1ryKGkCLwWht7" |
| 73 | + ) |
34 | 74 | } |
35 | 75 |
|
36 | | -/// Test that we can verify a Cacao with a statement |
| 76 | +/// Test that we can verify a Cacao |
37 | 77 | #[test] |
38 | | -fn verify_success_statement() { |
| 78 | +fn cacao_verify_failure() { |
39 | 79 | let cacao_serialized = r#"{ |
40 | 80 | "h": { |
41 | 81 | "t": "eip4361" |
42 | 82 | }, |
43 | 83 | "p": { |
44 | | - "iss": "did:pkh:eip155:1:0x262f4f5DC82ad9b803680F07Da7d901D4F71d8D1", |
45 | | - "domain": "http://10.0.2.2:8080", |
46 | | - "aud": "http://10.0.2.2:8080", |
47 | | - "statement": "Test statement", |
| 84 | + "iss": "did:pkh:eip155:1:0xF5dA9A1Aa622903ae73f5eFE46485531913202AF", |
| 85 | + "domain": "keys.walletconnect.com", |
| 86 | + "aud": "https://keys.walletconnect.com", |
48 | 87 | "version": "1", |
49 | | - "nonce": "[B@c3772c7", |
50 | | - "iat": "2023-01-17T12:15:05+01:00", |
| 88 | + "nonce": "0d98d4e5d8c19d4cff09cd25f1863bca650d2b4009bd62f04dff7171438c4773", |
| 89 | + "iat": "2023-05-17T14:14:24+02:00", |
51 | 90 | "resources": [ |
52 | | - "did:key:z6MkkG9nM8ksS37sq5mgeoCn5kihLkWANcm9pza5WTkq3tWZ" |
| 91 | + "did:key:z6MkgzojB48jpTcLTatSCRHNpoMRvQbz8r13UJ1KyteHjEu9" |
53 | 92 | ] |
54 | 93 | }, |
55 | 94 | "s": { |
56 | 95 | "t": "eip191", |
57 | | - "s": "0xafedb7505846dc691a4f3f70266624a91a232d68ec61454f4426e016bcb0483773296097687429c47af82b5bf16324ec4ede13e67aee5b4597c9d34b3af0e3681c" |
| 96 | + "s": "0x726caf0b066fd857889fa73a8b04cbe249161c37a9342854ec92258a85a91ca5720d6d61afe45c7a54f42373ab1c90d888257637a938af5d9f242adad43b204d1b" |
58 | 97 | } |
59 | | - } "#; |
60 | | - let cacao: Cacao = serde_json::from_str(cacao_serialized).unwrap(); |
61 | | - println!("{}", cacao.siwe_message().unwrap()); |
62 | | - let result = cacao.verify(); |
63 | | - assert!(result.is_ok()); |
64 | | - assert!(result.map_err(|_| false).unwrap()); |
65 | | - |
66 | | - let identity_key = cacao.p.identity_key(); |
67 | | - assert!(identity_key.is_ok()); |
68 | | -} |
69 | | - |
70 | | -/// Test that we can verify a Cacao with uppercase address |
71 | | -#[test] |
72 | | -fn without_lowercase_address_verify_success() { |
73 | | - let cacao_serialized = r#"{"h":{"t":"eip4361"},"p":{"iss":"did:pkh:eip155:1:0xbD4D1935165012e7D29919dB8717A5e670a1a5b1","domain":"https://staging.keys.walletconnect.com","aud":"https://staging.keys.walletconnect.com","version":"1","nonce":"07487c09be5535dcbc341d8e35e5c9b4d3539a802089c42c5b1172dd9ed63c64","iat":"2023-01-25T15:08:36.846Z","statement":"Test","resources":["did:key:451cf9b97c64fcca05fbb0d4c40b886c94133653df5a2b6bd97bd29a0bbcdb37"]},"s":{"t":"eip191","s":"0x8496ad1dd1ddd5cb78ac26b62a6bd1c6cfff703ea3b11a9da29cfca112357ace75cac8ee28d114f9e166a6935ee9ed83151819a9e0ee738a0547116b1d978e351b"}}"#; |
| 98 | + }"#; |
74 | 99 | let cacao: Cacao = serde_json::from_str(cacao_serialized).unwrap(); |
75 | 100 | let result = cacao.verify(); |
76 | | - assert!(result.is_ok()); |
77 | | - assert!(result.map_err(|_| false).unwrap()); |
78 | | - |
79 | | - let identity_key = cacao.p.identity_key(); |
80 | | - assert!(identity_key.is_ok()); |
| 101 | + assert!(result.is_err()); |
81 | 102 | } |
0 commit comments