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.