pub fn derive_key( pass: &[u8], salt: &[u8], n: u32, p: u32, r: u32, ) -> Result<(Vec<u8>, Vec<u8>), String>