use crate::prelude2::*;
use actix_http::header::HeaderName;
pub async fn generate_random_16_string(request: HttpRequest) -> Result<HttpResponse> {
request.text(200, &crate::commons::generate_random_16_string())
}
pub async fn generate_random_32_string(request: HttpRequest) -> Result<HttpResponse> {
request.text(200, &crate::commons::generate_random_32_string())
}
pub async fn encrypt_aes_256(data: web::Bytes, request: HttpRequest) -> Result<HttpResponse> {
let headers = request.headers();
let key = if let Some(auth_header_value) = headers.get(HeaderName::from_static("key")) {
auth_header_value.to_str().map_err(|e| anyhow::anyhow!(e))?
} else {
""
};
let data = crate::commons::bytes_to_string(data.to_vec())?;
let data = crate::commons::aes_256_encrypt(key, &data)?;
request.text(200, &data)
}
pub async fn decrypt_aes_256(data: web::Bytes, request: HttpRequest) -> Result<HttpResponse> {
let headers = request.headers();
let key = if let Some(auth_header_value) = headers.get(HeaderName::from_static("key")) {
auth_header_value.to_str().map_err(|e| anyhow::anyhow!(e))?
} else {
""
};
let data = crate::commons::bytes_to_string(data.to_vec())?;
let data = crate::commons::aes_256_decrypt(key, &data)?;
request.text(200, &data)
}