BSD style: see doc/license.txt for details
Initial release: Sep 2009
Kai Nacke
This module implements the Ripemd128 algorithm by Hans Dobbertin,
Antoon Bosselaers and Bart Preneel.
See http://homes.esat.kuleuven.be/~bosselae/ripemd160.html for more
information.
The implementation is based on:
RIPEMD-160 software written by Antoon Bosselaers,
available at http://www.esat.kuleuven.ac.be/~cosicart/ps/AB-9601/
- class Ripemd128 : MerkleDamgard [final] ¶
-
- this() ¶
-
- uint digestSize() [override] ¶
-
The size of a Ripemd128 digest is 16 bytes
- void reset() [override] ¶
-
Returns the cipher state to it's initial value
- void createDigest(ubyte[] buf) [override] ¶
-
the digest
Returns a digest of the current cipher state, this may be the
final digest, or a digest of the state between calls to update()
- uint blockSize() [protected, override] ¶
-
the block size
Specifies the size (in bytes) of the block of data to pass to
each call to transform(). For Ripemd128 the blockSize is 64.
- uint addSize() [protected, override] ¶
-
the length padding size
Specifies the size (in bytes) of the padding which uses the
length of the data which has been ciphered, this padding is
carried out by the padLength method. For Ripemd128 the addSize is 8.
- void padMessage(ubyte[] at) [protected, override] ¶
-
data | a slice of the cipher buffer to fill with padding |
Fills the passed buffer slice with the appropriate padding for
the final call to transform(). This padding will fill the cipher
buffer up to blockSize()-addSize().
- void padLength(ubyte[] at, ulong length) [protected, override] ¶
-
Performs the length padding
data | the slice of the cipher buffer to fill with padding |
length | the length of the data which has been ciphered |
Fills the passed buffer slice with addSize() bytes of padding
based on the length in bytes of the input data which has been
ciphered.
- void transform(const(ubyte[]) input) [protected, override] ¶
-
Performs the cipher on a block of data
data | the block of data to cipher |
The actual cipher algorithm is carried out by this method on
the passed block of data. This method is called for every
blockSize() bytes of input data and once more with the remaining
data padded to blockSize().