core_crypto_ffi/core_crypto/
randomness.rs1#[cfg(target_family = "wasm")]
2use wasm_bindgen::prelude::*;
3
4use crate::{CoreCrypto, CoreCryptoError, CoreCryptoResult};
5
6use super::EntropySeed;
7
8#[cfg_attr(not(target_family = "wasm"), uniffi::export)]
9#[cfg_attr(target_family = "wasm", wasm_bindgen)]
10impl CoreCrypto {
11 pub async fn random_bytes(&self, len: u32) -> CoreCryptoResult<Vec<u8>> {
13 let len = len.try_into().map_err(CoreCryptoError::generic())?;
14 self.inner.random_bytes(len).map_err(Into::into)
15 }
16
17 pub async fn reseed_rng(&self, seed: EntropySeed) -> CoreCryptoResult<()> {
19 let seed = core_crypto::prelude::EntropySeed::try_from_slice(&seed).map_err(CoreCryptoError::generic())?;
20 self.inner.reseed(Some(seed)).await?;
21
22 Ok(())
23 }
24}