use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PostTextAesDecryptAdvancedRequest {
#[serde(rename = "text")]
pub text: String,
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "mode")]
pub mode: Mode,
#[serde(rename = "padding", skip_serializing_if = "Option::is_none")]
pub padding: Option<Padding>,
#[serde(rename = "iv", skip_serializing_if = "Option::is_none")]
pub iv: Option<String>,
}
impl PostTextAesDecryptAdvancedRequest {
pub fn new(text: String, key: String, mode: Mode) -> PostTextAesDecryptAdvancedRequest {
PostTextAesDecryptAdvancedRequest {
text,
key,
mode,
padding: None,
iv: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Mode {
#[serde(rename = "GCM")]
Gcm,
#[serde(rename = "CBC")]
Cbc,
#[serde(rename = "ECB")]
Ecb,
#[serde(rename = "CTR")]
Ctr,
#[serde(rename = "OFB")]
Ofb,
#[serde(rename = "CFB")]
Cfb,
}
impl Default for Mode {
fn default() -> Mode {
Self::Gcm
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Padding {
#[serde(rename = "PKCS7")]
Pkcs7,
#[serde(rename = "ZERO")]
Zero,
#[serde(rename = "NONE")]
None,
}
impl Default for Padding {
fn default() -> Padding {
Self::Pkcs7
}
}