OpenPGP.js that we use supports streaming encryption. Swift surely also has a way to stream data. Need to implement an encryptFile mechanism that can encrypt files up to 25mb without actually using that much memory.
The result of encryption should be un-armored (binary) pgp-encrypted data.