Skip to main content

uapi_sdk_rust/models/generated/
post_text_aes_encrypt_advanced_request.rs

1/*
2 * UAPI
3 *
4 * UAPI 官方接口文档
5 *
6 * The version of the OpenAPI document: 1.0.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PostTextAesEncryptAdvancedRequest {
16    /// 待加密的明文文本
17    #[serde(rename = "text")]
18    pub text: String,
19    /// 加密密钥(支持任意长度)
20    #[serde(rename = "key")]
21    pub key: String,
22    /// 加密模式:GCM/CBC/ECB/CTR/OFB/CFB(可选,默认GCM)
23    #[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
24    pub mode: Option<Mode>,
25    /// 填充方式:PKCS7/ZERO/NONE(可选,默认PKCS7)
26    #[serde(rename = "padding", skip_serializing_if = "Option::is_none")]
27    pub padding: Option<Padding>,
28    /// 自定义IV(可选,Base64编码,16字节)。GCM模式无需此参数
29    #[serde(rename = "iv", skip_serializing_if = "Option::is_none")]
30    pub iv: Option<String>,
31    /// 输出格式:base64(默认)或hex
32    #[serde(rename = "output_format", skip_serializing_if = "Option::is_none")]
33    pub output_format: Option<OutputFormat>,
34}
35
36impl PostTextAesEncryptAdvancedRequest {
37    pub fn new(text: String, key: String) -> PostTextAesEncryptAdvancedRequest {
38        PostTextAesEncryptAdvancedRequest {
39            text,
40            key,
41            mode: None,
42            padding: None,
43            iv: None,
44            output_format: None,
45        }
46    }
47}
48/// 加密模式:GCM/CBC/ECB/CTR/OFB/CFB(可选,默认GCM)
49#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum Mode {
51    #[serde(rename = "GCM")]
52    Gcm,
53    #[serde(rename = "CBC")]
54    Cbc,
55    #[serde(rename = "ECB")]
56    Ecb,
57    #[serde(rename = "CTR")]
58    Ctr,
59    #[serde(rename = "OFB")]
60    Ofb,
61    #[serde(rename = "CFB")]
62    Cfb,
63}
64
65impl Default for Mode {
66    fn default() -> Mode {
67        Self::Gcm
68    }
69}
70/// 填充方式:PKCS7/ZERO/NONE(可选,默认PKCS7)
71#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
72pub enum Padding {
73    #[serde(rename = "PKCS7")]
74    Pkcs7,
75    #[serde(rename = "ZERO")]
76    Zero,
77    #[serde(rename = "NONE")]
78    None,
79}
80
81impl Default for Padding {
82    fn default() -> Padding {
83        Self::Pkcs7
84    }
85}
86/// 输出格式:base64(默认)或hex
87#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
88pub enum OutputFormat {
89    #[serde(rename = "base64")]
90    Base64,
91    #[serde(rename = "hex")]
92    Hex,
93}
94
95impl Default for OutputFormat {
96    fn default() -> OutputFormat {
97        Self::Base64
98    }
99}
100