
G'day all. On Tue, Apr 22, 2003 at 12:15:41PM +0100, Malcolm Wallace wrote:
I would have thought that its population would look something like:
Codec.Encryption.DES Codec.Encryption.RSA Codec.Encryption.Blowfish
etc. No need for any deeper structure. Any attempt to further classify crypto schemes by method or purpose would be confusing I think. Crypto is just crypto, i.e. binary to binary.
On Tue, Apr 22, 2003 at 11:00:05PM -0500, Matt Harden wrote:
What about ROT13, or Enigma? Those are text to text.
If it helps, remember that RSA and DES, for example, don't do the same thing. "Encryption" is a general heading which at least includes symmetric ciphers, asymmetric ciphers, digital signatures, hash functions and secure random number generators, and that's just the algorithms. Then there are all the various modes in which they can be used to encrypt blocks of data (e.g. PKCS#1 encoding for RSA, inner-CBC vs outer-CBC mode for 3DES etc). Codec.Encryption specifies what the module is for, not how it is used. Presumably there are going to be some type classes somewhere which specify whether it is a BinarySymmetricCipher like TripleDES or TextSymmetricCipher like FourWheelNavalEnigma. (These names are just examples, of course.) It's the same, for example, with FileFormat. Zip and Gzip are conceptually similar, but one supports multiple files and the other does not.
By the way, crypto hashes should go somewhere else, because they're not codecs. Same goes for crypto random-number generators.
Which suggests that Codec isn't the right name. :-/ Cheers, Andrew Bromage