1#![cfg_attr(docsrs, feature(doc_cfg))]
24#![deny(broken_intra_doc_links)]
25#![allow(clippy::derive_partial_eq_without_eq)]
26#![allow(clippy::too_long_first_doc_paragraph)]
27
28pub use prost;
30
31#[cfg(not(feature = "json"))]
32include!("codegen/google.crypto.tink.rs");
33#[cfg(feature = "json")]
34include!("codegen/serde/google.crypto.tink.rs");
35
36#[cfg(feature = "json")]
39#[cfg_attr(docsrs, doc(cfg(feature = "json")))]
40pub mod json {
41 pub mod key_status_type {
42 use serde::Deserialize;
44 use std::convert::TryFrom;
45 pub fn serialize<S: serde::Serializer>(
46 val: &i32,
47 serializer: S,
48 ) -> Result<S::Ok, S::Error> {
49 serializer.serialize_str(match crate::KeyStatusType::try_from(*val) {
50 Ok(crate::KeyStatusType::Enabled) => "ENABLED",
51 Ok(crate::KeyStatusType::Disabled) => "DISABLED",
52 Ok(crate::KeyStatusType::Destroyed) => "DESTROYED",
53 _ => "UNKNOWN",
54 })
55 }
56 pub fn deserialize<'de, D: serde::Deserializer<'de>>(
57 deserializer: D,
58 ) -> Result<i32, D::Error> {
59 let s = String::deserialize(deserializer)?;
60 Ok(match s.as_ref() {
61 "ENABLED" => crate::KeyStatusType::Enabled as i32,
62 "DISABLED" => crate::KeyStatusType::Disabled as i32,
63 "DESTROYED" => crate::KeyStatusType::Destroyed as i32,
64 _ => crate::KeyStatusType::UnknownStatus as i32,
65 })
66 }
67 }
68 pub mod output_prefix_type {
69 use serde::Deserialize;
71 use std::convert::TryFrom;
72 pub fn serialize<S: serde::Serializer>(
73 val: &i32,
74 serializer: S,
75 ) -> Result<S::Ok, S::Error> {
76 serializer.serialize_str(match crate::OutputPrefixType::try_from(*val) {
77 Ok(crate::OutputPrefixType::Tink) => "TINK",
78 Ok(crate::OutputPrefixType::Legacy) => "LEGACY",
79 Ok(crate::OutputPrefixType::Raw) => "RAW",
80 Ok(crate::OutputPrefixType::Crunchy) => "CRUNCHY",
81 _ => "UNKNOWN",
82 })
83 }
84 pub fn deserialize<'de, D: serde::Deserializer<'de>>(
85 deserializer: D,
86 ) -> Result<i32, D::Error> {
87 let s = String::deserialize(deserializer)?;
88 Ok(match s.as_ref() {
89 "TINK" => crate::OutputPrefixType::Tink as i32,
90 "LEGACY" => crate::OutputPrefixType::Legacy as i32,
91 "RAW" => crate::OutputPrefixType::Raw as i32,
92 "CRUNCHY" => crate::OutputPrefixType::Crunchy as i32,
93 _ => crate::OutputPrefixType::UnknownPrefix as i32,
94 })
95 }
96 }
97 pub mod key_material_type {
98 use serde::Deserialize;
101 use std::convert::TryFrom;
102 pub fn serialize<S: serde::Serializer>(
103 val: &i32,
104 serializer: S,
105 ) -> Result<S::Ok, S::Error> {
106 serializer.serialize_str(match crate::key_data::KeyMaterialType::try_from(*val) {
107 Ok(crate::key_data::KeyMaterialType::Symmetric) => "SYMMETRIC",
108 Ok(crate::key_data::KeyMaterialType::AsymmetricPrivate) => "ASYMMETRIC_PRIVATE",
109 Ok(crate::key_data::KeyMaterialType::AsymmetricPublic) => "ASYMMETRIC_PUBLIC",
110 Ok(crate::key_data::KeyMaterialType::Remote) => "REMOTE",
111 _ => "UNKNOWN",
112 })
113 }
114 pub fn deserialize<'de, D: serde::Deserializer<'de>>(
115 deserializer: D,
116 ) -> Result<i32, D::Error> {
117 let s = String::deserialize(deserializer)?;
118 Ok(match s.as_ref() {
119 "SYMMETRIC" => crate::key_data::KeyMaterialType::Symmetric as i32,
120 "ASYMMETRIC_PRIVATE" => crate::key_data::KeyMaterialType::AsymmetricPrivate as i32,
121 "ASYMMETRIC_PUBLIC" => crate::key_data::KeyMaterialType::AsymmetricPublic as i32,
122 "REMOTE" => crate::key_data::KeyMaterialType::Remote as i32,
123 _ => crate::key_data::KeyMaterialType::UnknownKeymaterial as i32,
124 })
125 }
126 }
127 pub mod b64 {
128 use base64::Engine;
130 use serde::Deserialize;
131 pub fn serialize<S: serde::Serializer>(
132 val: &[u8],
133 serializer: S,
134 ) -> Result<S::Ok, S::Error> {
135 serializer.serialize_str(&base64::engine::general_purpose::STANDARD.encode(val))
136 }
137 pub fn deserialize<'de, D: serde::Deserializer<'de>>(
138 deserializer: D,
139 ) -> Result<Vec<u8>, D::Error> {
140 let s = String::deserialize(deserializer)?;
141 base64::engine::general_purpose::STANDARD
142 .decode(&s)
143 .map_err(|_e| {
144 serde::de::Error::invalid_value(
145 serde::de::Unexpected::Str(&s),
146 &"base64 data expected",
147 )
148 })
149 }
150 }
151}