Skip to main content

Utils

Struct Utils 

Source
pub struct Utils;
Expand description

The core API provides a clean interface that:

  • Defines cryptographic operation traits (KemOperations, SignatureOperations, etc.)
  • Uses dependency injection via CryptoProvider trait
  • Returns ProviderNotConfigured when no provider is set on a context
  • Maintains no circular dependencies with implementation crates
  • Provides proper validation and error handling

Real implementations are provided by the main lib-q crate through LibQCryptoProvider.

Utility functions that work consistently across platforms

Implementations§

Source§

impl Utils

Source

pub fn random_bytes(length: usize) -> Result<Vec<u8>>

Generate cryptographically secure random bytes

This function works in both std and no_std environments:

  • In std environments with the “rand” feature: Uses rand::rng()
  • In no_std environments with the “getrandom” feature: Uses getrandom directly
  • In no_std environments without getrandom: Returns an error
Source

pub fn bytes_to_hex(bytes: &[u8]) -> String

Convert bytes to hex string

Source

pub fn hex_to_bytes(hex: &str) -> Result<Vec<u8>>

Convert hex string to bytes

§Errors

Returns crate::error::Error::HexDecode with a crate::error::HexDecodeError reason when the trimmed input is not valid hexadecimal (odd length or non-hex digit).

Source

pub fn constant_time_compare(a: &[u8], b: &[u8]) -> bool

Constant-time comparison of two byte slices

Auto Trait Implementations§

§

impl Freeze for Utils

§

impl RefUnwindSafe for Utils

§

impl Send for Utils

§

impl Sync for Utils

§

impl Unpin for Utils

§

impl UnsafeUnpin for Utils

§

impl UnwindSafe for Utils

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> 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, 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.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more