view dcrypt/misc/Checksum.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 21847420b1ac
children
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.misc.Checksum;

/** Base class for 32-bit checksums */
abstract class Checksum
{
    /**
     * Compute a checksum.
     * 
     * Params:
     *     input_ = Data to be processed.
     *     start = Starting value for the checksum.
     *     
     * Returns: The computed 32 bit checksum.
     */
    uint compute(void[] input_, uint start);
    
    /** Play nice with D2's idea of const. */
    version (D_Version2)
    {
        uint compute(string input_, uint start)
        {
            return compute(cast(ubyte[])input_, start);
        }
    }
    
    /** Returns: The name of the checksum algorithm. */
    string name();
}