Mercurial > projects > dcrypt
diff dcrypt/crypto/BlockCipherPadding.d @ 32:2b4bccdc8387
Added version() statements to play nice with D2's current feelings about const. Changed a few methods (addEntropy and read in the base PRNG class, and the constructor for ParametersWithIV) to accept void[] in place of ubyte[].
author | Thomas Dixon <reikon@reikon.us> |
---|---|
date | Tue, 12 May 2009 22:09:33 -0400 |
parents | ad687db713a4 |
children | 6b2c35b84186 |
line wrap: on
line diff
--- a/dcrypt/crypto/BlockCipherPadding.d Tue May 12 17:10:47 2009 -0400 +++ b/dcrypt/crypto/BlockCipherPadding.d Tue May 12 22:09:33 2009 -0400 @@ -13,29 +13,38 @@ /** Base padding class for implementing block padding schemes. */ abstract class BlockCipherPadding { - /** Returns: The name of the padding scheme implemented. */ - string name(); - - /** - * Generate padding to a specific length. - * - * Params: - * len = Length of padding to generate - * - * Returns: The padding bytes to be added. - */ - ubyte[] pad(uint len); + /** Returns: The name of the padding scheme implemented. */ + string name(); + + /** + * Generate padding to a specific length. + * + * Params: + * len = Length of padding to generate + * + * Returns: The padding bytes to be added. + */ + ubyte[] pad(uint len); + + /** + * Return the number of pad bytes in the block. + * + * Params: + * input_ = Padded block of which to count the pad bytes. + * + * Returns: The number of pad bytes in the block. + * + * Throws: dcrypt.crypto.errors.InvalidPaddingError if + * pad length cannot be discerned. + */ + uint unpad(void[] input_); - /** - * Return the number of pad bytes in the block. - * - * Params: - * input_ = Padded block of which to count the pad bytes. - * - * Returns: The number of pad bytes in the block. - * - * Throws: dcrypt.crypto.errors.InvalidPaddingError if - * pad length cannot be discerned. - */ - uint unpad(void[] input_); + /** Play nice with D2's idea of const. */ + version (D_Version2) + { + uint unpad(string input_) + { + return unpad(cast(ubyte[])input_); + } + } }