3 releases
0.1.2 | May 21, 2023 |
---|---|
0.1.1 | Jan 21, 2023 |
0.1.0 | Jan 13, 2023 |
#1120 in Cryptography
24 downloads per month
43KB
583 lines
No Chat Reports (NCR) Chat Encryption
This crate implements the No Chat Reports's custom chat encryption. More specifically this implements a fork of No Chat Reports.
All functionalities of the custom chat encryption are implemented. You can still use this crate normally if you are using the original No Chat Reports.
Examples
Encrypting
use ncr::{
encoding::Base64rEncoding,
encryption::{Cfb8Encryption, Encryption},
utils::prepend_header,
AesKey,
};
let key = AesKey::gen_from_passphrase(b"secret");
let plaintext = prepend_header("I love Minecraft!");
let ciphertext = Cfb8Encryption::<Base64rEncoding>::encrypt(&plaintext, &key).unwrap();
println!("{}", ciphertext);
Decrypting
use ncr::{
encoding::Base64rEncoding,
encryption::{Cfb8Encryption, Encryption},
utils::trim_header,
AesKey,
};
let key = AesKey::gen_from_passphrase(b"secret");
let ciphertext = r#"%[2_0»³"!7).«?;!.$¥`¶:8~667ª¸[¬)¢+¤^"#;
let plaintext = Cfb8Encryption::<Base64rEncoding>::decrypt(ciphertext, &key).unwrap();
let plaintext = trim_header(&plaintext).unwrap();
assert_eq!(plaintext, "I love Minecraft!");
Dependencies
~0.5–0.9MB
~16K SLoC