Doing so will enable encrypting/decrypting files in a 'pipeline' without
having to write the intermediate results to a file or store them in
their entirety in memory.
This commit also updates the existing storage classes (local and FTP) to
meet the new interface definition.