diff dcrypt/crypto/ciphers/RC4.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/RC4.d	Fri Sep 12 05:20:43 2008 -0400
+++ b/dcrypt/crypto/ciphers/RC4.d	Tue Nov 18 18:03:40 2008 -0500
@@ -20,7 +20,6 @@
         ubyte[] state,
                 workingKey;
         ubyte x, y;
-        bool initialized;
     }
     
     void init(bool encrypt, CipherParameters params) {
@@ -34,7 +33,8 @@
         workingKey = keyParams.key;
         state = new ubyte[256];
         setup(workingKey);
-        initialized = true;
+        _encrypt = true;
+        _initialized = true;
     }
     
     char[] name() {
@@ -50,7 +50,7 @@
     }
     
     uint update(void[] input_, void[] output_) {
-        if (!initialized)
+        if (!_initialized)
             throw new NotInitializedError(name()~": Cipher not initialized");
             
         ubyte[] input = cast(ubyte[]) input_,