use core::mem;
use core::cmp::Ordering;
extern crate flatbuffers;
use self::flatbuffers::{EndianScalar, Follow};
pub enum EMEOffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct EME<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for EME<'a> {
type Inner = EME<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> EME<'a> {
pub const VT_ENCRYPTED_BLOB: flatbuffers::VOffsetT = 4;
pub const VT_EPHEMERAL_PUBLIC_KEY: flatbuffers::VOffsetT = 6;
pub const VT_MAC: flatbuffers::VOffsetT = 8;
pub const VT_NONCE_START: flatbuffers::VOffsetT = 10;
pub const VT_TAG: flatbuffers::VOffsetT = 12;
pub const VT_IV: flatbuffers::VOffsetT = 14;
pub const VT_SALT: flatbuffers::VOffsetT = 16;
pub const VT_PUBLIC_KEY_IDENTIFIER: flatbuffers::VOffsetT = 18;
pub const VT_CIPHER_SUITE: flatbuffers::VOffsetT = 20;
pub const VT_KDF_PARAMETERS: flatbuffers::VOffsetT = 22;
pub const VT_ENCRYPTION_ALGORITHM_PARAMETERS: flatbuffers::VOffsetT = 24;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
EME { _tab: table }
}
#[allow(unused_mut)]
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: flatbuffers::Allocator + 'bldr>(
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
args: &'args EMEArgs<'args>
) -> flatbuffers::WIPOffset<EME<'bldr>> {
let mut builder = EMEBuilder::new(_fbb);
if let Some(x) = args.ENCRYPTION_ALGORITHM_PARAMETERS { builder.add_ENCRYPTION_ALGORITHM_PARAMETERS(x); }
if let Some(x) = args.KDF_PARAMETERS { builder.add_KDF_PARAMETERS(x); }
if let Some(x) = args.CIPHER_SUITE { builder.add_CIPHER_SUITE(x); }
if let Some(x) = args.PUBLIC_KEY_IDENTIFIER { builder.add_PUBLIC_KEY_IDENTIFIER(x); }
if let Some(x) = args.SALT { builder.add_SALT(x); }
if let Some(x) = args.IV { builder.add_IV(x); }
if let Some(x) = args.TAG { builder.add_TAG(x); }
if let Some(x) = args.NONCE_START { builder.add_NONCE_START(x); }
if let Some(x) = args.MAC { builder.add_MAC(x); }
if let Some(x) = args.EPHEMERAL_PUBLIC_KEY { builder.add_EPHEMERAL_PUBLIC_KEY(x); }
if let Some(x) = args.ENCRYPTED_BLOB { builder.add_ENCRYPTED_BLOB(x); }
builder.finish()
}
pub fn unpack(&self) -> EMET {
let ENCRYPTED_BLOB = self.ENCRYPTED_BLOB().map(|x| {
x.into_iter().collect()
});
let EPHEMERAL_PUBLIC_KEY = self.EPHEMERAL_PUBLIC_KEY().map(|x| {
x.to_string()
});
let MAC = self.MAC().map(|x| {
x.to_string()
});
let NONCE_START = self.NONCE_START().map(|x| {
x.into_iter().collect()
});
let TAG = self.TAG().map(|x| {
x.to_string()
});
let IV = self.IV().map(|x| {
x.to_string()
});
let SALT = self.SALT().map(|x| {
x.to_string()
});
let PUBLIC_KEY_IDENTIFIER = self.PUBLIC_KEY_IDENTIFIER().map(|x| {
x.to_string()
});
let CIPHER_SUITE = self.CIPHER_SUITE().map(|x| {
x.to_string()
});
let KDF_PARAMETERS = self.KDF_PARAMETERS().map(|x| {
x.to_string()
});
let ENCRYPTION_ALGORITHM_PARAMETERS = self.ENCRYPTION_ALGORITHM_PARAMETERS().map(|x| {
x.to_string()
});
EMET {
ENCRYPTED_BLOB,
EPHEMERAL_PUBLIC_KEY,
MAC,
NONCE_START,
TAG,
IV,
SALT,
PUBLIC_KEY_IDENTIFIER,
CIPHER_SUITE,
KDF_PARAMETERS,
ENCRYPTION_ALGORITHM_PARAMETERS,
}
}
#[inline]
pub fn ENCRYPTED_BLOB(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(EME::VT_ENCRYPTED_BLOB, None)}
}
#[inline]
pub fn EPHEMERAL_PUBLIC_KEY(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_EPHEMERAL_PUBLIC_KEY, None)}
}
#[inline]
pub fn MAC(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_MAC, None)}
}
#[inline]
pub fn NONCE_START(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(EME::VT_NONCE_START, None)}
}
#[inline]
pub fn TAG(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_TAG, None)}
}
#[inline]
pub fn IV(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_IV, None)}
}
#[inline]
pub fn SALT(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_SALT, None)}
}
#[inline]
pub fn PUBLIC_KEY_IDENTIFIER(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_PUBLIC_KEY_IDENTIFIER, None)}
}
#[inline]
pub fn CIPHER_SUITE(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_CIPHER_SUITE, None)}
}
#[inline]
pub fn KDF_PARAMETERS(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_KDF_PARAMETERS, None)}
}
#[inline]
pub fn ENCRYPTION_ALGORITHM_PARAMETERS(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EME::VT_ENCRYPTION_ALGORITHM_PARAMETERS, None)}
}
}
impl flatbuffers::Verifiable for EME<'_> {
#[inline]
fn run_verifier(
v: &mut flatbuffers::Verifier, pos: usize
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
use self::flatbuffers::Verifiable;
v.visit_table(pos)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("ENCRYPTED_BLOB", Self::VT_ENCRYPTED_BLOB, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("EPHEMERAL_PUBLIC_KEY", Self::VT_EPHEMERAL_PUBLIC_KEY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("MAC", Self::VT_MAC, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("NONCE_START", Self::VT_NONCE_START, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("TAG", Self::VT_TAG, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("IV", Self::VT_IV, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("SALT", Self::VT_SALT, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("PUBLIC_KEY_IDENTIFIER", Self::VT_PUBLIC_KEY_IDENTIFIER, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("CIPHER_SUITE", Self::VT_CIPHER_SUITE, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("KDF_PARAMETERS", Self::VT_KDF_PARAMETERS, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("ENCRYPTION_ALGORITHM_PARAMETERS", Self::VT_ENCRYPTION_ALGORITHM_PARAMETERS, false)?
.finish();
Ok(())
}
}
pub struct EMEArgs<'a> {
pub ENCRYPTED_BLOB: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
pub EPHEMERAL_PUBLIC_KEY: Option<flatbuffers::WIPOffset<&'a str>>,
pub MAC: Option<flatbuffers::WIPOffset<&'a str>>,
pub NONCE_START: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
pub TAG: Option<flatbuffers::WIPOffset<&'a str>>,
pub IV: Option<flatbuffers::WIPOffset<&'a str>>,
pub SALT: Option<flatbuffers::WIPOffset<&'a str>>,
pub PUBLIC_KEY_IDENTIFIER: Option<flatbuffers::WIPOffset<&'a str>>,
pub CIPHER_SUITE: Option<flatbuffers::WIPOffset<&'a str>>,
pub KDF_PARAMETERS: Option<flatbuffers::WIPOffset<&'a str>>,
pub ENCRYPTION_ALGORITHM_PARAMETERS: Option<flatbuffers::WIPOffset<&'a str>>,
}
impl<'a> Default for EMEArgs<'a> {
#[inline]
fn default() -> Self {
EMEArgs {
ENCRYPTED_BLOB: None,
EPHEMERAL_PUBLIC_KEY: None,
MAC: None,
NONCE_START: None,
TAG: None,
IV: None,
SALT: None,
PUBLIC_KEY_IDENTIFIER: None,
CIPHER_SUITE: None,
KDF_PARAMETERS: None,
ENCRYPTION_ALGORITHM_PARAMETERS: None,
}
}
}
pub struct EMEBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
}
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> EMEBuilder<'a, 'b, A> {
#[inline]
pub fn add_ENCRYPTED_BLOB(&mut self, ENCRYPTED_BLOB: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_ENCRYPTED_BLOB, ENCRYPTED_BLOB);
}
#[inline]
pub fn add_EPHEMERAL_PUBLIC_KEY(&mut self, EPHEMERAL_PUBLIC_KEY: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_EPHEMERAL_PUBLIC_KEY, EPHEMERAL_PUBLIC_KEY);
}
#[inline]
pub fn add_MAC(&mut self, MAC: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_MAC, MAC);
}
#[inline]
pub fn add_NONCE_START(&mut self, NONCE_START: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_NONCE_START, NONCE_START);
}
#[inline]
pub fn add_TAG(&mut self, TAG: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_TAG, TAG);
}
#[inline]
pub fn add_IV(&mut self, IV: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_IV, IV);
}
#[inline]
pub fn add_SALT(&mut self, SALT: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_SALT, SALT);
}
#[inline]
pub fn add_PUBLIC_KEY_IDENTIFIER(&mut self, PUBLIC_KEY_IDENTIFIER: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_PUBLIC_KEY_IDENTIFIER, PUBLIC_KEY_IDENTIFIER);
}
#[inline]
pub fn add_CIPHER_SUITE(&mut self, CIPHER_SUITE: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_CIPHER_SUITE, CIPHER_SUITE);
}
#[inline]
pub fn add_KDF_PARAMETERS(&mut self, KDF_PARAMETERS: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_KDF_PARAMETERS, KDF_PARAMETERS);
}
#[inline]
pub fn add_ENCRYPTION_ALGORITHM_PARAMETERS(&mut self, ENCRYPTION_ALGORITHM_PARAMETERS: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EME::VT_ENCRYPTION_ALGORITHM_PARAMETERS, ENCRYPTION_ALGORITHM_PARAMETERS);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> EMEBuilder<'a, 'b, A> {
let start = _fbb.start_table();
EMEBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<EME<'a>> {
let o = self.fbb_.end_table(self.start_);
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for EME<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("EME");
ds.field("ENCRYPTED_BLOB", &self.ENCRYPTED_BLOB());
ds.field("EPHEMERAL_PUBLIC_KEY", &self.EPHEMERAL_PUBLIC_KEY());
ds.field("MAC", &self.MAC());
ds.field("NONCE_START", &self.NONCE_START());
ds.field("TAG", &self.TAG());
ds.field("IV", &self.IV());
ds.field("SALT", &self.SALT());
ds.field("PUBLIC_KEY_IDENTIFIER", &self.PUBLIC_KEY_IDENTIFIER());
ds.field("CIPHER_SUITE", &self.CIPHER_SUITE());
ds.field("KDF_PARAMETERS", &self.KDF_PARAMETERS());
ds.field("ENCRYPTION_ALGORITHM_PARAMETERS", &self.ENCRYPTION_ALGORITHM_PARAMETERS());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct EMET {
pub ENCRYPTED_BLOB: Option<Vec<u8>>,
pub EPHEMERAL_PUBLIC_KEY: Option<String>,
pub MAC: Option<String>,
pub NONCE_START: Option<Vec<u8>>,
pub TAG: Option<String>,
pub IV: Option<String>,
pub SALT: Option<String>,
pub PUBLIC_KEY_IDENTIFIER: Option<String>,
pub CIPHER_SUITE: Option<String>,
pub KDF_PARAMETERS: Option<String>,
pub ENCRYPTION_ALGORITHM_PARAMETERS: Option<String>,
}
impl Default for EMET {
fn default() -> Self {
Self {
ENCRYPTED_BLOB: None,
EPHEMERAL_PUBLIC_KEY: None,
MAC: None,
NONCE_START: None,
TAG: None,
IV: None,
SALT: None,
PUBLIC_KEY_IDENTIFIER: None,
CIPHER_SUITE: None,
KDF_PARAMETERS: None,
ENCRYPTION_ALGORITHM_PARAMETERS: None,
}
}
}
impl EMET {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<EME<'b>> {
let ENCRYPTED_BLOB = self.ENCRYPTED_BLOB.as_ref().map(|x|{
_fbb.create_vector(x)
});
let EPHEMERAL_PUBLIC_KEY = self.EPHEMERAL_PUBLIC_KEY.as_ref().map(|x|{
_fbb.create_string(x)
});
let MAC = self.MAC.as_ref().map(|x|{
_fbb.create_string(x)
});
let NONCE_START = self.NONCE_START.as_ref().map(|x|{
_fbb.create_vector(x)
});
let TAG = self.TAG.as_ref().map(|x|{
_fbb.create_string(x)
});
let IV = self.IV.as_ref().map(|x|{
_fbb.create_string(x)
});
let SALT = self.SALT.as_ref().map(|x|{
_fbb.create_string(x)
});
let PUBLIC_KEY_IDENTIFIER = self.PUBLIC_KEY_IDENTIFIER.as_ref().map(|x|{
_fbb.create_string(x)
});
let CIPHER_SUITE = self.CIPHER_SUITE.as_ref().map(|x|{
_fbb.create_string(x)
});
let KDF_PARAMETERS = self.KDF_PARAMETERS.as_ref().map(|x|{
_fbb.create_string(x)
});
let ENCRYPTION_ALGORITHM_PARAMETERS = self.ENCRYPTION_ALGORITHM_PARAMETERS.as_ref().map(|x|{
_fbb.create_string(x)
});
EME::create(_fbb, &EMEArgs{
ENCRYPTED_BLOB,
EPHEMERAL_PUBLIC_KEY,
MAC,
NONCE_START,
TAG,
IV,
SALT,
PUBLIC_KEY_IDENTIFIER,
CIPHER_SUITE,
KDF_PARAMETERS,
ENCRYPTION_ALGORITHM_PARAMETERS,
})
}
}
#[inline]
pub fn root_as_EME(buf: &[u8]) -> Result<EME, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<EME>(buf)
}
#[inline]
pub fn size_prefixed_root_as_EME(buf: &[u8]) -> Result<EME, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<EME>(buf)
}
#[inline]
pub fn root_as_EME_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<EME<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<EME<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_EME_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<EME<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<EME<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_EME_unchecked(buf: &[u8]) -> EME {
flatbuffers::root_unchecked::<EME>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_EME_unchecked(buf: &[u8]) -> EME {
flatbuffers::size_prefixed_root_unchecked::<EME>(buf)
}
pub const EME_IDENTIFIER: &str = "$EME";
#[inline]
pub fn EME_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, EME_IDENTIFIER, false)
}
#[inline]
pub fn EME_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, EME_IDENTIFIER, true)
}
#[inline]
pub fn finish_EME_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<EME<'a>>) {
fbb.finish(root, Some(EME_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_EME_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<EME<'a>>) {
fbb.finish_size_prefixed(root, Some(EME_IDENTIFIER));
}