Skip to content

Commit a30c6df

Browse files
committed
nostr: add test_nip44_decryption test
1 parent 57e1983 commit a30c6df

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

crates/nostr/src/nips/nip44.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,4 +209,44 @@ mod tests {
209209
content
210210
);
211211
}
212+
213+
#[test]
214+
fn test_nip44_decryption() {
215+
let secret_key =
216+
SecretKey::from_str("0000000000000000000000000000000000000000000000000000000000000002")
217+
.unwrap();
218+
let public_key = XOnlyPublicKey::from_str(
219+
"1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdeb",
220+
)
221+
.unwrap();
222+
let payload =
223+
"AUXEhLosA5eFMYOtumkiFW4Joq1OPmkU8k/25+3+VDFvOU39qkUDl1aiy8Q+0ozTwbhD57VJoIYayYS++hE=";
224+
assert_eq!(
225+
decrypt(&secret_key, &public_key, payload).unwrap(),
226+
String::from("A Peer-to-Peer Electronic Cash System")
227+
);
228+
229+
let secret_key =
230+
SecretKey::from_str("0000000000000000000000000000000000000000000000000000000000000001")
231+
.unwrap();
232+
let public_key = XOnlyPublicKey::from_str(
233+
"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
234+
)
235+
.unwrap();
236+
let payload = "AdYN4IQFz5veUIFH6CIkrGr0CcErnlSS4VdvoQaP2DCB1dIFL72HSriG1aFABcTlu86hrsG0MdOO9rPdVXc3jptMMzqvIN6tJlHPC8GdwFD5Y8BT76xIIOTJR2W0IdrM7++WC/9harEJAdeWHDAC9zNJX81CpCz4fnV1FZ8GxGLC0nUF7NLeUiNYu5WFXQuO9uWMK0pC7tk3XVogk90X6rwq0MQG9ihT7e1elatDy2YGat+VgQlDrz8ZLRw/lvU+QqeXMQgjqn42sMTrimG6NdKfHJSVWkT6SKZYVsuTyU1Iu5Nk0twEV8d11/MPfsMx4i36arzTC9qxE6jftpOoG8f/jwPTSCEpHdZzrb/CHJcpc+zyOW9BZE2ZOmSxYHAE0ustC9zRNbMT3m6LqxIoHq8j+8Ysu+Cwqr4nUNLYq/Q31UMdDg1oamYS17mWIAS7uf2yF5uT5IlG";
237+
assert_eq!(decrypt(&secret_key, &public_key, payload).unwrap(), String::from("A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending."));
238+
239+
let secret_key =
240+
SecretKey::from_str("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364139")
241+
.unwrap();
242+
let public_key = XOnlyPublicKey::from_str(
243+
"0000000000000000000000000000000000000000000000000000000000000002",
244+
)
245+
.unwrap();
246+
let payload = "AfSBdQ4T36kLcit8zg2znYCw2y6JXMMAGjM=";
247+
assert_eq!(
248+
decrypt(&secret_key, &public_key, payload).unwrap(),
249+
String::from("a")
250+
);
251+
}
212252
}

0 commit comments

Comments
 (0)