A: Encrypting message headers B: Providing on-the-fly encryption C: Double-encrypting messages D: Compressing data after encryption E: Ensuring that a message has not been tampered with