I hate encryption

This commit is contained in:
Ethan O'Brien
2024-02-21 13:50:18 -06:00
parent 4405b1ae22
commit 163f5956a1
7 changed files with 2048 additions and 13 deletions

24
src/encryption.rs Normal file
View File

@@ -0,0 +1,24 @@
use openssl::symm::{Cipher, Crypter, Mode};
use openssl::error::ErrorStack;
use base64::{Engine as _, engine::general_purpose};
const IV_LENGTH: usize = 16;
const KEY: &str = "3559b435f24b297a79c68b9709ef2125";
pub fn decrypt_packet(base64_input: &str) -> Result<String, ErrorStack> {
let base64_buffer = general_purpose::STANDARD.decode(base64_input).unwrap();
let decryption_iv = &base64_buffer[..IV_LENGTH];
let ciphertext = &base64_buffer[IV_LENGTH..];
let cipher = Cipher::aes_256_cbc();
let mut decrypter = Crypter::new(cipher, Mode::Decrypt, KEY.as_bytes(), Some(decryption_iv))?;
let mut decrypted_data = vec![0u8; ciphertext.len() + cipher.block_size()];
let mut decrypted_len = decrypter.update(ciphertext, &mut decrypted_data)?;
decrypted_len += decrypter.finalize(&mut decrypted_data[decrypted_len..])?;
decrypted_data.truncate(decrypted_len);
Ok(String::from_utf8(decrypted_data).unwrap())
}