Blowfish is an encryption algorithm devised by Bruce Schneier. It is described in [1] Bruce Schneier, “Description of a New Variable-Length Key, 64-bit Block Cipher (Blowfish)”, Fast Software Encryption, Cambridge Security Workshop, p. 191–204, December 09–11, 1993.
The Blowfish algorithm takes input data and a key, and combines the two to produce output data that is cryptographically encrypted or decrypted, as the case may be.
This library consists of four filter functions that encode and decode using the Blowfish algorithm, and two constants for specifying the trimming mode on decryption.
reader-encrypt is a string source function that reads its value string
source argument and encrypts it using a supplied encryption key.
reader-decrypt is a string source function that reads its value string
source argument and decrypts it using a supplied encryption key.
writer-encrypt is a string sink function that encrypts data written to it
using a supplied encryption key, and then outputs it to its value string sink argument.
writer-decrypt is a string sink function that decrypts data written to it
using a supplied encryption key, and then outputs it to its value string sink argument.
The reader-decrypt and writer-decrypt functions can be given one of two trimming
modes:
no-trimming is the default, and means that the null-padding should be left
alone.
null-trimming specifies that the null-padding should be trimmed from the
decoded data.
To use OMFFBLOWFISH, you must import it into your program using an import declaration such as:
import "omffblowfish.xmd" prefixed by blowfish.