GnuPG is a free and open implementation of the OpenPGP standard, and I'm using that in a project, to automatically send encrypted messages to one of our suppliers. It is rather easy to implement actually: after downloading the Crypt::OpenPGP Perl module (and dozens of dependencies), the rest is quite simple. After generating a suitable keypair, Crypt::OpenPGP can take a file and encrypt it to the key of the recipient. In this specific case, the data flow is as follows: my client uses a small Win32 program which utilizes Curl to submit a file via secure HTTP to a web service. That service receives the data stream, encrypts it with GnuPG and sends the result off via SMTP to the intended recipient.