#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncryptionMeta {
#[prost(uint64, tag = "1")]
pub key_id: u64,
#[prost(bytes = "vec", tag = "2")]
pub iv: ::prost::alloc::vec::Vec<u8>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileInfo {
#[prost(uint64, tag = "1")]
pub key_id: u64,
#[prost(bytes = "vec", tag = "2")]
pub iv: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "EncryptionMethod", tag = "3")]
pub method: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileDictionary {
#[prost(map = "string, message", tag = "1")]
pub files: ::std::collections::HashMap<::prost::alloc::string::String, FileInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataKey {
#[prost(bytes = "vec", tag = "1")]
pub key: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "EncryptionMethod", tag = "2")]
pub method: i32,
#[prost(uint64, tag = "3")]
pub creation_time: u64,
#[prost(bool, tag = "4")]
pub was_exposed: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyDictionary {
#[prost(map = "uint64, message", tag = "1")]
pub keys: ::std::collections::HashMap<u64, DataKey>,
#[prost(uint64, tag = "2")]
pub current_key_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MasterKey {
#[prost(oneof = "master_key::Backend", tags = "1, 2, 3")]
pub backend: ::core::option::Option<master_key::Backend>,
}
pub mod master_key {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Backend {
#[prost(message, tag = "1")]
Plaintext(super::MasterKeyPlaintext),
#[prost(message, tag = "2")]
File(super::MasterKeyFile),
#[prost(message, tag = "3")]
Kms(super::MasterKeyKms),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MasterKeyPlaintext {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MasterKeyFile {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MasterKeyKms {
#[prost(string, tag = "1")]
pub vendor: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub key_id: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub region: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub endpoint: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncryptedContent {
#[prost(map = "string, bytes", tag = "1")]
pub metadata: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::vec::Vec<u8>,
>,
#[prost(bytes = "vec", tag = "2")]
pub content: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "3")]
pub master_key: ::core::option::Option<MasterKey>,
#[prost(bytes = "vec", tag = "4")]
pub iv: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "5")]
pub ciphertext_key: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EncryptionMethod {
Unknown = 0,
Plaintext = 1,
Aes128Ctr = 2,
Aes192Ctr = 3,
Aes256Ctr = 4,
Sm4Ctr = 5,
}
impl EncryptionMethod {
pub fn as_str_name(&self) -> &'static str {
match self {
EncryptionMethod::Unknown => "UNKNOWN",
EncryptionMethod::Plaintext => "PLAINTEXT",
EncryptionMethod::Aes128Ctr => "AES128_CTR",
EncryptionMethod::Aes192Ctr => "AES192_CTR",
EncryptionMethod::Aes256Ctr => "AES256_CTR",
EncryptionMethod::Sm4Ctr => "SM4_CTR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN" => Some(Self::Unknown),
"PLAINTEXT" => Some(Self::Plaintext),
"AES128_CTR" => Some(Self::Aes128Ctr),
"AES192_CTR" => Some(Self::Aes192Ctr),
"AES256_CTR" => Some(Self::Aes256Ctr),
"SM4_CTR" => Some(Self::Sm4Ctr),
_ => None,
}
}
}