Once this program has a graphical user interface, an Enigma like subsystem must be devised for data whitening. For content encryption, the use of Java's facilities is being considered as a long term option.
codegroup encodes any file into this form, allowing it to be transmitted through any medium, and decodes files containing codegroups into the original input. Encoded files contain a 16-bit cyclical redundancy check (CRC) and file size to verify, when decoded, that the message is complete and correct. Files being decoded may contain other information before and after the codegroups, allowing in-the-clear annotations to be included.
codegroup makes no attempt, to prevent your message from being read. Cryptographic security should be delegated to a package intended for that purpose, such as pgp. codegroup can then be applied to the encrypted binary output, transforming it into easily transmitted text.
Only codegroup conforms to the telegraphic convention of all upper case letters, and passes the “telephone test” of being readable without any modifiers such as “capital” and “lower-case”. Avoiding punctuation marks and lower case letters makes the output of codegroup much easier to transmit over a voice or traditional telegraphic link.
Text created by codegroup uses only upper case ASCII letters and spaces. Unlike files encoded with uuencode or pgp's “ASCII armour” facility, the output of codegroup can be easily (albeit tediously) read over the telephone, broadcast by shortwave radio to agents in the field, or sent by telegram, telex, or Morse code.
BUGS : When a CRC error is detected, no indication is given of the location in the file where the error(s) occurred. When sending large files, you may want to break them into pieces with the splits utility so, in case of error, only the erroneous pieces need to be re-sent.
BUGS : It would be nice to embed the original file name and modes in the encoded output, but this opens the door to all kinds of system-dependent problems. You can always include this information as text before the first codegroup, or send an archive created with tar or zip.
COPYRIGHT Notice : This software is in the public domain. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, without any conditions or restrictions. This software is provided “as is” without express or implied warranty.