Crates.io | ncr |
lib.rs | ncr |
version | 0.1.2 |
source | src |
created_at | 2023-01-13 14:22:46.69169 |
updated_at | 2023-05-21 10:42:15.687887 |
description | Rust implementation of chat encryption in the Minecraft mod No Chat Reports |
homepage | |
repository | https://github.com/ALaggyDev/ncr-rs |
max_upload_size | |
id | 757950 |
size | 43,018 |
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.
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);
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!");