pub struct HighEntropySecret {
secret: Zeroizing<Vec<u8>>,
}Expand description
A secret that is guaranteed to be high-entropy, and therefore safe to use as input keying material for a cheap KDF.
Fields§
§secret: Zeroizing<Vec<u8>>Implementations§
Source§impl HighEntropySecret
impl HighEntropySecret
Sourcepub fn from<T: HighEntropySecretSource>(secret: T) -> Self
pub fn from<T: HighEntropySecretSource>(secret: T) -> Self
Constructs a HighEntropySecret from any HighEntropySecretSource, whose implementation
guarantees the provided bytes are high-entropy.
pub(crate) fn from_internal(secret: &[u8]) -> Self
Sourcepub fn make(desired_size: usize) -> Result<Self, HighEntropySecretError>
pub fn make(desired_size: usize) -> Result<Self, HighEntropySecretError>
Generates a new high-entropy secret of the desired size, using cryptographically secure random bytes. The generated bytes are high-entropy by construction.
desired_size should be at least 16 bytes to provide adequate security headroom.
Trait Implementations§
Source§impl Clone for HighEntropySecret
impl Clone for HighEntropySecret
Source§fn clone(&self) -> HighEntropySecret
fn clone(&self) -> HighEntropySecret
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<UT> ConvertError<UT> for HighEntropySecret
impl<UT> ConvertError<UT> for HighEntropySecret
fn try_convert_unexpected_callback_error( e: UnexpectedUniFFICallbackError, ) -> Result<Self>
Source§impl Debug for HighEntropySecret
impl Debug for HighEntropySecret
Source§impl<UT> FfiConverter<UT> for HighEntropySecret
impl<UT> FfiConverter<UT> for HighEntropySecret
Source§const TYPE_ID_META: MetadataBuffer
const TYPE_ID_META: MetadataBuffer
Type ID metadata, serialized into a [MetadataBuffer].
Source§type FfiType = <Vec<u8> as Lower<UniFfiTag>>::FfiType
type FfiType = <Vec<u8> as Lower<UniFfiTag>>::FfiType
The low-level type used for passing values of this type over the FFI. Read more
Source§fn lower(obj: HighEntropySecret) -> Self::FfiType
fn lower(obj: HighEntropySecret) -> Self::FfiType
Lower a rust value of the target type, into an FFI value of type Self::FfiType. Read more
Source§fn try_lift(v: Self::FfiType) -> Result<HighEntropySecret>
fn try_lift(v: Self::FfiType) -> Result<HighEntropySecret>
Lift a rust value of the target type, from an FFI value of type Self::FfiType. Read more
Source§impl FromWasmAbi for HighEntropySecret
Available on crate feature wasm only.
impl FromWasmAbi for HighEntropySecret
Available on crate feature
wasm only.Source§impl IntoWasmAbi for HighEntropySecret
Available on crate feature wasm only.
impl IntoWasmAbi for HighEntropySecret
Available on crate feature
wasm only.Source§impl<UT> Lift<UT> for HighEntropySecret
impl<UT> Lift<UT> for HighEntropySecret
Source§impl<UT> LiftRef<UT> for HighEntropySecret
impl<UT> LiftRef<UT> for HighEntropySecret
type LiftType = HighEntropySecret
Source§impl<UT> LiftReturn<UT> for HighEntropySecret
impl<UT> LiftReturn<UT> for HighEntropySecret
Source§type ReturnType = <HighEntropySecret as Lift<UT>>::FfiType
type ReturnType = <HighEntropySecret as Lift<UT>>::FfiType
FFI return type for trait interfaces
Source§fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
Lift a successfully returned value from a trait interface
§fn lift_foreign_return(
ffi_return: Self::ReturnType,
call_status: RustCallStatus,
) -> Self
fn lift_foreign_return( ffi_return: Self::ReturnType, call_status: RustCallStatus, ) -> Self
Lift a foreign returned value from a trait interface Read more
§fn lift_error(_buf: RustBuffer) -> Self
fn lift_error(_buf: RustBuffer) -> Self
Lift a Rust value for a callback interface method error result Read more
§fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
Lift a Rust value for an unexpected callback interface error Read more
Source§impl<UT> Lower<UT> for HighEntropySecret
impl<UT> Lower<UT> for HighEntropySecret
Source§impl<UT> LowerError<UT> for HighEntropySecret
impl<UT> LowerError<UT> for HighEntropySecret
Source§fn lower_error(obj: Self) -> RustBuffer
fn lower_error(obj: Self) -> RustBuffer
Lower this value for scaffolding function return Read more
Source§impl<UT> LowerReturn<UT> for HighEntropySecret
impl<UT> LowerReturn<UT> for HighEntropySecret
Source§type ReturnType = <HighEntropySecret as Lower<UT>>::FfiType
type ReturnType = <HighEntropySecret as Lower<UT>>::FfiType
The type that should be returned by scaffolding functions for this type. Read more
Source§fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
Lower the return value from an scaffolding call Read more
§fn handle_failed_lift(
error: LiftArgsError,
) -> Result<Self::ReturnType, RustCallError>
fn handle_failed_lift( error: LiftArgsError, ) -> Result<Self::ReturnType, RustCallError>
Lower the return value for failed argument lifts Read more
Source§impl OptionFromWasmAbi for HighEntropySecret
Available on crate feature wasm only.
impl OptionFromWasmAbi for HighEntropySecret
Available on crate feature
wasm only.Source§impl<UT> TypeId<UT> for HighEntropySecret
impl<UT> TypeId<UT> for HighEntropySecret
const TYPE_ID_META: MetadataBuffer
Source§impl WasmDescribe for HighEntropySecret
Available on crate feature wasm only.
impl WasmDescribe for HighEntropySecret
Available on crate feature
wasm only.Auto Trait Implementations§
impl Freeze for HighEntropySecret
impl RefUnwindSafe for HighEntropySecret
impl Send for HighEntropySecret
impl Sync for HighEntropySecret
impl Unpin for HighEntropySecret
impl UnsafeUnpin for HighEntropySecret
impl UnwindSafe for HighEntropySecret
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T>
unsafe fn consume_handle(handle: Handle) -> Arc<T>
Consume a handle, getting back the initial
Arc<> Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
Same as
IntoWasmAbi::AbiSource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
Same as
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.