view dcrypt/crypto/params/SymmetricKey.d @ 33:b9f8aa42a547

More changes suggested by Glenn Haecker for D2 compatibility.
author Thomas Dixon <reikon@reikon.us>
date Thu, 14 May 2009 01:33:11 -0400
parents 8b5eaf3c2979
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.crypto.params.SymmetricKey;

import dcrypt.crypto.params.CipherParameters;
import dcrypt.crypto.errors.InvalidParameterError;

/** Object representing and wrapping a symmetric key in bytes. */
class SymmetricKey : CipherParameters
{
    private ubyte[] _key;
    
    /**
     * Params:
     *     key = Key to be held.
     */
    this(void[] key=null)
    {
        _key = cast(ubyte[]) key;
    }
    
    /** Play nice with D2's idea of const. */
    version (D_Version2)
    {
        this (string key)
        {
            this(cast(ubyte[])key);
        }
    }
    
    /** Returns: Key in ubytes held by this object. */
    ubyte[] key()
    {
        return _key;
    }
    
    /**
     * Set the key held by this object.
     *
     * Params:
     *     newKey = New key to be held.
     * Returns: The new key.
     */
    ubyte[] key(void[] newKey)
    {
        return _key = cast(ubyte[]) newKey;
    }
}