diff dcrypt/crypto/ciphers/XTEA.d @ 14:5ce3012f1def

Removed some redundancy in code. Added NotSupportedError, a base PRNG class and a class which creates a PRNG from a hash function. Changed the MAC class' finalization methods to digest and hexDigest instead of finish and hexFinish respectively. Also added a base Checksum class, crc32 and adler32 in dcrypt.misc as per request.
author Thomas Dixon <reikon@reikon.us>
date Tue, 18 Nov 2008 18:03:40 -0500
parents 8c7f8fecdd75
children 4589f8c5eb3c
line wrap: on
line diff
--- a/dcrypt/crypto/ciphers/XTEA.d	Fri Sep 12 05:20:43 2008 -0400
+++ b/dcrypt/crypto/ciphers/XTEA.d	Tue Nov 18 18:03:40 2008 -0500
@@ -22,8 +22,6 @@
         uint[] subkeys,
                sum0,
                sum1;
-        bool initialized,
-             encrypt;
     }
     
     void reset(){}
@@ -41,7 +39,7 @@
         if (!keyParams)
             throw new InvalidParameterError(
                     name()~": Invalid parameter passed to init");
-        this.encrypt = encrypt;
+        _encrypt = encrypt;
                     
         if (keyParams.key.length != KEY_SIZE)
             throw new InvalidKeyError(
@@ -61,11 +59,11 @@
             j += DELTA;
             sum1[i] = (j + subkeys[j >> 11 & 3]);
         }
-        initialized = true;
+        _initialized = true;
     }
     
     uint update(void[] input_, void[] output_) {
-        if (!initialized)
+        if (!_initialized)
             throw new NotInitializedError(name()~": Cipher not initialized");
             
         ubyte[] input = cast(ubyte[]) input_,
@@ -80,7 +78,7 @@
         uint v0 = Util.ubytesToUintBig(input, 0),
              v1 = Util.ubytesToUintBig(input, 4);
              
-        if (encrypt) {
+        if (_encrypt) {
             for (int i = 0; i < ROUNDS; i++) {
                 v0 += ((v1 << 4 ^ v1 >> 5) + v1) ^ sum0[i];
                 v1 += ((v0 << 4 ^ v0 >> 5) + v0) ^ sum1[i];