Enum vapcore_secretstore::Error[][src]

pub enum Error {
    InvalidNodeAddress,
    InvalidNodeId,
    DuplicateSessionId,
    NoActiveSessionWithId,
    NotEnoughNodesForThreshold,
    TooEarlyForRequest,
    InvalidStateForRequest,
    InvalidNodeForRequest,
    InvalidMessage,
    InvalidMessageVersion,
    ReplayProtection,
    NodeDisconnected,
    ServerKeyAlreadyGenerated,
    ServerKeyIsNotFound,
    DocumentKeyAlreadyStored,
    DocumentKeyIsNotFound,
    ConsensusTemporaryUnreachable,
    ConsensusUnreachable,
    AccessDenied,
    ExclusiveSessionActive,
    HasActiveSessions,
    InsufficientRequesterData(String),
    VapKey(String),
    Io(String),
    Serde(String),
    Hyper(String),
    Database(String),
    Internal(String),
}

Secret store error.

Variants

InvalidNodeAddress

Invalid node address has been passed.

InvalidNodeId

Invalid node id has been passed.

DuplicateSessionId

Session with the given id already exists.

NoActiveSessionWithId

No active session with given id.

NotEnoughNodesForThreshold

Invalid threshold value has been passed. Threshold value must be in [0; n - 1], where n is a number of nodes participating in the encryption.

TooEarlyForRequest

Current state of encryption/decryption session does not allow to proceed request. Reschedule this request for later processing.

InvalidStateForRequest

Current state of encryption/decryption session does not allow to proceed request. This means that either there is some comm-failure or node is misbehaving/cheating.

InvalidNodeForRequest

Request cannot be sent/received from this node.

InvalidMessage

Message or some data in the message was recognized as invalid. This means that node is misbehaving/cheating.

InvalidMessageVersion

Message version is not supported.

ReplayProtection

Message is invalid because of replay-attack protection.

NodeDisconnected

Connection to node, required for this session is not established.

ServerKeyAlreadyGenerated

Server key with this ID is already generated.

ServerKeyIsNotFound

Server key with this ID is not yet generated.

DocumentKeyAlreadyStored

Document key with this ID is already stored.

DocumentKeyIsNotFound

Document key with this ID is not yet stored.

ConsensusTemporaryUnreachable

Consensus is temporary unreachable. Means that something is currently blocking us from either forming consensus group (like disconnecting from too many nodes, which are AGREE to participate in consensus) or from rejecting request (disconnecting from AccessDenied-nodes).

ConsensusUnreachable

Consensus is unreachable. It doesn’t mean that it will ALWAYS remain unreachable, but right NOW we have enough nodes confirmed that they do not want to be a part of consensus. Example: we’re connected to 10 of 100 nodes. Key threshold is 6 (i.e. 7 nodes are required for consensus). 4 nodes are responding with reject => consensus is considered unreachable, even though another 90 nodes still can respond with OK.

AccessDenied

Acl storage error.

ExclusiveSessionActive

Can’t start session, because exclusive session is active.

HasActiveSessions

Can’t start exclusive session, because there are other active sessions.

InsufficientRequesterData(String)

Insufficient requester data.

VapKey(String)

Cryptographic error.

Io(String)

I/O error has occurred.

Serde(String)

Deserialization error has occurred.

Hyper(String)

Hyper error.

Database(String)

Database-related error.

Internal(String)

Internal error.

Implementations

impl Error[src]

pub fn is_non_fatal(&self) -> bool[src]

Is this a fatal error? Non-fatal means that it is possible to replay the same request with a non-zero chance to success. I.e. the error is not about request itself (or current environment factors that are affecting request processing), but about current SecretStore state.

Trait Implementations

impl Clone for Error[src]

impl Debug for Error[src]

impl<'de> Deserialize<'de> for Error[src]

impl Display for Error[src]

impl From<AddrParseError> for Error[src]

impl From<Error> for Error[src]

impl From<Error> for Error[src]

impl From<Error> for Error[src]

impl Into<String> for Error[src]

impl PartialEq<Error> for Error[src]

impl Serialize for Error[src]

impl StructuralPartialEq for Error[src]

Auto Trait Implementations

impl RefUnwindSafe for Error

impl Send for Error

impl Sync for Error

impl Unpin for Error

impl UnwindSafe for Error

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Erased for T

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,