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_);
+        }
+    }
  }