pub fn read_or_create_salt(salt_path: &Path) -> Result<[u8; 16], String>
Reads salt from salt_path; generates and writes a fresh 16-byte salt if absent.
salt_path