pub enum VirtualClientsError {
Show 14 variants
DerivationInfoMalformed,
EpochInfoDecryptionFailed,
MissingEpochEncryptionKey,
MissingPprf,
MissingEmulationEpochState,
StorageError,
EncryptionKeyMismatch,
PprfError(PprfError),
CryptoError(CryptoError),
HashOutputLengthMismatch {
actual_length: usize,
expected_length: usize,
},
RandError,
Tls(Error),
AppDataDictionaryNotSupported,
VcComponentNotListed,
}extensions-draft-08 and crate feature virtual-clients-draft and (32-bit or 64-bit) only.Expand description
Errors that can occur while processing virtual-clients derivation info.
Variants§
DerivationInfoMalformed
The derivation-info bytes failed to deserialize.
EpochInfoDecryptionFailed
AEAD decryption of the encrypted epoch info failed (wrong key, tampered ciphertext, or mismatched AAD).
MissingEpochEncryptionKey
No virtual-clients epoch encryption key was registered for this epoch.
MissingPprf
No virtual-clients PPRF was registered for this epoch.
MissingEmulationEpochState
No virtual-clients EmulationEpochState was registered for this
epoch, or it has been deleted.
StorageError
Loading or storing virtual-clients state via the storage provider failed.
EncryptionKeyMismatch
The leaf encryption key in the path does not match the key derived from the path secret.
PprfError(PprfError)
PPRF evaluation failed (e.g. the input was already punctured or out of bounds).
CryptoError(CryptoError)
A cryptographic operation failed during virtual-clients processing.
HashOutputLengthMismatch
Hash function produced output of unexpected length.
Fields
RandError
Random byte generation failed.
Tls(Error)
TLS encoding/decoding of a virtual-clients structure failed. Covers
both serialization on the sender side and deserialization of the
decrypted EpochInfoTbe on the receiver side.
AppDataDictionaryNotSupported
The leaf carrying (or about to carry) a VC derivation-info entry
does not declare AppDataDictionary in its capabilities.
VcComponentNotListed
The leaf’s AppDataDictionary extension is missing the
AppComponents entry, or that entry does not list
VC_COMPONENT_ID.
Trait Implementations§
Source§impl Clone for VirtualClientsError
impl Clone for VirtualClientsError
Source§fn clone(&self) -> VirtualClientsError
fn clone(&self) -> VirtualClientsError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VirtualClientsError
impl Debug for VirtualClientsError
Source§impl Display for VirtualClientsError
impl Display for VirtualClientsError
Source§impl Error for VirtualClientsError
impl Error for VirtualClientsError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<CryptoError> for VirtualClientsError
impl From<CryptoError> for VirtualClientsError
Source§fn from(source: CryptoError) -> Self
fn from(source: CryptoError) -> Self
Source§impl From<Error> for VirtualClientsError
impl From<Error> for VirtualClientsError
Source§impl From<PprfError> for VirtualClientsError
impl From<PprfError> for VirtualClientsError
Source§impl From<VirtualClientsError> for MessageDecryptionError
impl From<VirtualClientsError> for MessageDecryptionError
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Source§impl<StorageError> From<VirtualClientsError> for MessageEncryptionError<StorageError>
impl<StorageError> From<VirtualClientsError> for MessageEncryptionError<StorageError>
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Source§impl From<VirtualClientsError> for StageCommitError
impl From<VirtualClientsError> for StageCommitError
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Source§impl From<VirtualClientsError> for CreateCommitError
impl From<VirtualClientsError> for CreateCommitError
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Source§impl<StorageError> From<VirtualClientsError> for SelfUpdateError<StorageError>
impl<StorageError> From<VirtualClientsError> for SelfUpdateError<StorageError>
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Source§impl<StorageError> From<VirtualClientsError> for RegisterVcEmulationEpochError<StorageError>
impl<StorageError> From<VirtualClientsError> for RegisterVcEmulationEpochError<StorageError>
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Source§impl PartialEq for VirtualClientsError
impl PartialEq for VirtualClientsError
Source§fn eq(&self, other: &VirtualClientsError) -> bool
fn eq(&self, other: &VirtualClientsError) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for VirtualClientsError
Auto Trait Implementations§
impl Freeze for VirtualClientsError
impl RefUnwindSafe for VirtualClientsError
impl Send for VirtualClientsError
impl Sync for VirtualClientsError
impl Unpin for VirtualClientsError
impl UnsafeUnpin for VirtualClientsError
impl UnwindSafe for VirtualClientsError
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
§impl<T> Classify for T
impl<T> Classify for T
type Classified = T
fn classify(self) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
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