Mercurial > projects > dcrypt
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];