Skip to main content

Error

Enum Error 

Source
pub enum Error {
    InsufficientEntropy,
    RequestTooLarge,
    AdditionalInputTooLong,
    PersonalizationTooLong,
    ReseedRequired,
    InvalidLength,
}
Expand description

Errors returned by the DRBG mechanisms (SP 800-90A §9).

Each mechanism re-exports this single enum; the variants map onto the ERROR_FLAG / length-check conditions of §10 and the reseed-count exhaustion of §9.3.3.

Variants§

§

InsufficientEntropy

The instantiate/reseed entropy input is shorter than the mechanism’s minimum (security_strength bits, SP 800-90A §8.6.3 and the tables of §10). Also raised, for CTR_DRBG without a derivation function, when the entropy input length is not exactly seedlen (§10.2.1.3.1).

§

RequestTooLarge

A single generate request asked for more than max_number_of_bits_per_request (SP 800-90A §10, tables 2/3: 2^19 bits = 65 536 octets).

§

AdditionalInputTooLong

The additional_input supplied to generate/reseed exceeds max_additional_input_length (2^35 bits; enforced here as a byte bound to keep the length fields in range).

§

PersonalizationTooLong

The personalization string exceeds max_personalization_string_length (SP 800-90A §10, 2^35 bits).

§

ReseedRequired

The reseed counter reached reseed_interval: a reseed is required before the next generate (SP 800-90A §9.3.3, step 1 → status “Reseed required”). The caller must call reseed.

§

InvalidLength

A CTR_DRBG no-df key length that is not one of the AES key sizes, or a personalization/additional-input length that does not match seedlen in no-df mode (SP 800-90A §10.2.1.3.1 / §10.2.1.5.1).

Trait Implementations§

Source§

impl Clone for Error

Source§

fn clone(&self) -> Error

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Error

Source§

fn eq(&self, other: &Error) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Error

Source§

impl Eq for Error

Source§

impl StructuralPartialEq for Error

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.