view dcrypt/crypto/BlockCipherPadding.d @ 28:ad687db713a4

Further reworked the code for hash padding. Replaced all instances of 'char[]' with 'string' and removed a few 'const' modifiers as per Glenn Haecker's patch for D2 compatibility. Updated CONTRIBUTORS file.
author Thomas Dixon <reikon@reikon.us>
date Sun, 10 May 2009 22:38:48 -0400
parents 8b5eaf3c2979
children 2b4bccdc8387
line wrap: on
line source

/**
 * This file is part of the dcrypt project.
 *
 * Copyright: Copyright (C) dcrypt contributors 2008. All rights reserved.
 * License:   MIT
 * Authors:   Thomas Dixon
 */
 
 module dcrypt.crypto.BlockCipherPadding;
 
 public import dcrypt.crypto.errors.InvalidPaddingError;
 
 /** 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);
     
     /**
      * 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_);
 }