Struct SteVecPayloadV3
pub struct SteVecPayloadV3 {
pub version: u16,
pub kind: SteVecKind,
pub identifier: Identifier,
pub key_header: KeyHeader,
pub ste_vec: Vec<SteVecEntryV3>,
}Expand description
EQL v3 SteVec document payload — {v, k: "sv", i, h, sv}. The root k
discriminator IS kept (the v3 jsonb document models it).
h is the key header, stored once for the whole document: every entry
encrypts under the document’s single data key, so the key-retrieval
material (iv, tag, descriptor, keyset) lives at the envelope instead of
being repeated inside every entry’s c. Entry nonces are derived from the
entries’ stored selectors, so no nonce is stored anywhere. Decrypting any
entry therefore needs h + the entry’s s + c (see
crate::zerokms::KeyHeader::record_with_selector).
Fields§
§version: u16Payload version — always EQL_SCHEMA_VERSION_V3.
kind: SteVecKindThe k: "sv" form discriminator.
identifier: IdentifierTable and column this payload belongs to.
key_header: KeyHeaderThe document’s key header (MessagePack Base85; opaque to SQL).
ste_vec: Vec<SteVecEntryV3>Per-selector encrypted entries. sv[0] is the decryption root.
Trait Implementations§
§impl Clone for SteVecPayloadV3
impl Clone for SteVecPayloadV3
§fn clone(&self) -> SteVecPayloadV3
fn clone(&self) -> SteVecPayloadV3
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for SteVecPayloadV3
impl Debug for SteVecPayloadV3
§impl<'de> Deserialize<'de> for SteVecPayloadV3
impl<'de> Deserialize<'de> for SteVecPayloadV3
§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
§impl Serialize for SteVecPayloadV3
impl Serialize for SteVecPayloadV3
Auto Trait Implementations§
impl Freeze for SteVecPayloadV3
impl RefUnwindSafe for SteVecPayloadV3
impl Send for SteVecPayloadV3
impl Sync for SteVecPayloadV3
impl Unpin for SteVecPayloadV3
impl UnsafeUnpin for SteVecPayloadV3
impl UnwindSafe for SteVecPayloadV3
Blanket Implementations§
impl<T> AuthStrategyBounds for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more