envelop
pub fn encrypt<Data: Payload>( key: &Key, payload: &Data) -> Result<EncryptionResult, Box<dyn Error>>