#[non_exhaustive]pub enum Verification {
BestEffort,
Off,
Checksum,
Signature,
Strict,
}Expand description
How strictly UpdateEngine enforces integrity and
authenticity checks on a release.
A “signature” is either a minisign signature (checked against
EngineConfig::minisign_public_key) or a Sparkle-style Ed25519
signature (checked against EngineConfig::ed25519_public_key). Every
signature the release publishes and a configured key can check is
verified, and any mismatch fails the download. The same applies to deltas.
The default, BestEffort, verifies whatever the
release provides and skips a check when its input is absent — so an
unsigned release installs with only a checksum, or with nothing. The
Signature/Strict modes instead fail closed: a release that cannot be
verified is rejected at check time (before
it is surfaced as available) and again at
download time.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
BestEffort
Verify whatever the release and config provide; skip a check when its input is missing (no checksum, no signature, or no public key). The backwards-compatible default — note it fails open.
Off
Skip all integrity, authenticity, and payload checks. For tests and local development only.
Checksum
Require a matching SHA-256. Fails closed when the release publishes no checksum. A signature is still verified when one is available.
Signature
Require a valid signature: the release must publish a minisign or Ed25519 signature for which a public key is configured. A checksum is still verified when available, but is not itself required.
Strict
Require both a valid signature and a matching SHA-256.
Trait Implementations§
Source§impl Clone for Verification
impl Clone for Verification
Source§fn clone(&self) -> Verification
fn clone(&self) -> Verification
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Verification
Source§impl Debug for Verification
impl Debug for Verification
Source§impl Default for Verification
impl Default for Verification
Source§fn default() -> Verification
fn default() -> Verification
impl Eq for Verification
Source§impl PartialEq for Verification
impl PartialEq for Verification
impl StructuralPartialEq for Verification
Auto Trait Implementations§
impl Freeze for Verification
impl RefUnwindSafe for Verification
impl Send for Verification
impl Sync for Verification
impl Unpin for Verification
impl UnsafeUnpin for Verification
impl UnwindSafe for Verification
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().