pub enum KeyOrigin {
DeviceKey,
ProcessingKey,
KeyDbDerived,
KeyDb,
KeyDbUnitKeys,
ExternalUk,
}Expand description
How AACS keys were resolved. Variants are ordered root-of-trust → per-disc-leaf, matching the resolver’s path-try order: the resolver attempts derivation from the strongest input it has first and falls back toward pre-computed per-disc material.
Variants§
DeviceKey
MKB + device keys → subset-difference tree → VUK
ProcessingKey
MKB + processing keys → media key → VUK
KeyDbDerived
Media key + Volume ID from KEYDB → derived VUK
KeyDb
VUK found directly in KEYDB by disc hash
KeyDbUnitKeys
Pre-decrypted unit keys taken directly from KEYDB by disc hash.
No VUK present in the entry — AacsState::vuk is None.
ExternalUk
Unit key supplied directly by the caller (the external Unit Key path).
No keydb, no derivation — AacsState::vuk is None.
Implementations§
Trait Implementations§
impl Copy for KeyOrigin
impl StructuralPartialEq for KeyOrigin
Auto Trait Implementations§
impl Freeze for KeyOrigin
impl RefUnwindSafe for KeyOrigin
impl Send for KeyOrigin
impl Sync for KeyOrigin
impl Unpin for KeyOrigin
impl UnsafeUnpin for KeyOrigin
impl UnwindSafe for KeyOrigin
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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