use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PostTextAesEncryptAdvancedRequest {
#[serde(rename = "text")]
pub text: String,
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
pub mode: Option<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>,
#[serde(rename = "output_format", skip_serializing_if = "Option::is_none")]
pub output_format: Option<OutputFormat>,
}
impl PostTextAesEncryptAdvancedRequest {
pub fn new(text: String, key: String) -> PostTextAesEncryptAdvancedRequest {
PostTextAesEncryptAdvancedRequest {
text,
key,
mode: None,
padding: None,
iv: None,
output_format: 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
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum OutputFormat {
#[serde(rename = "base64")]
Base64,
#[serde(rename = "hex")]
Hex,
}
impl Default for OutputFormat {
fn default() -> OutputFormat {
Self::Base64
}
}