Encryption and Decryption algorithms in APL


Recently a lot of what we've been doing hasn't been in APL, but an opportunity for a large new system has come our way.

This design means using an email server as a central repository to "bounce" communication off of. All the important processing happens in local PC-based APL workspaces.

This brought up the following questions

  1. How to read and write emails within APL
  2. How to attach files, possibly APL component files, to emails and expect the characters to be properly translated back and forth.
  3. How to ensure the messages are from a trusted source within the system and not from a spoofed third party.
  4. How to ensure that the parts of the messages which contain sensitive information cannot be read, except by the intended recipient.

The solutions have several parts

  1. The APL mail functions written by Conrad Hoesle-Kienzlen for Dyalog
  2. Some modifications to the attachment processing of these functions
  3. Signing emails with a Message Digest hash
  4. Implementing the Tiny Encryption Algorithm (TEA) in APL

We have submitted more details of these process to Vector