1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use sodiumoxide; use sodiumoxide::randombytes; use sodiumoxide::crypto::hash::sha256; pub fn hash(m: &[u8]) -> Vec<u8> { let digest = sha256::hash(&m); digest.0.to_vec() } pub fn random_bytes(size: usize) -> Vec<u8> { randombytes::randombytes(size) } /// Initialize the sodium library and chooses faster version of the primitives /// if possible. /// /// `init` also makes `KeyPair::random()` thread-safe. pub fn init() -> bool { sodiumoxide::init() }