shadow_crypt_shell/encryption/
salt.rs1use rand::rand_core::{OsRng, TryRngCore};
2
3use crate::errors::{WorkflowError, WorkflowResult};
4
5pub fn generate_salt() -> WorkflowResult<[u8; 16]> {
6 let mut buffer = [0u8; 16];
7 OsRng
8 .try_fill_bytes(&mut buffer)
9 .map_err(|e| WorkflowError::SaltGeneration(format!("Failed to generate salt: {}", e)))?;
10
11 Ok(buffer)
12}
13
14#[cfg(test)]
15mod tests {
16 use super::generate_salt;
17
18 #[test]
19 fn test_generate_salt_length() {
20 let salt = generate_salt().expect("Failed to generate salt");
21 assert_eq!(salt.len(), 16);
22 }
23}