0
|
1 /**
|
|
2 * This file is part of the dcrypt project.
|
|
3 *
|
|
4 * Copyright: Copyright (C) dcrypt contributors 2008. All rights reserved.
|
|
5 * License: MIT
|
|
6 * Authors: Thomas Dixon
|
|
7 */
|
|
8
|
|
9 module dcrypt.crypto.Cipher;
|
|
10
|
|
11 public import dcrypt.crypto.errors.InvalidKeyError;
|
|
12 public import dcrypt.crypto.errors.ShortBufferError;
|
|
13 public import dcrypt.crypto.errors.NotInitializedError;
|
|
14 public import dcrypt.crypto.errors.InvalidParameterError;
|
|
15
|
|
16 public import dcrypt.crypto.params.CipherParameters;
|
|
17
|
|
18 /** Base cipher class */
|
|
19 interface Cipher {
|
|
20 static const bool ENCRYPT = true,
|
|
21 DECRYPT = false;
|
|
22
|
|
23 /**
|
|
24 * Initialize a cipher.
|
|
25 *
|
|
26 * Params:
|
|
27 * encrypt = True if we are encrypting.
|
|
28 * params = Parameters to be passed to the cipher. (Key, rounds, etc.)
|
|
29 */
|
|
30 abstract void init(bool encrypt, CipherParameters params);
|
|
31
|
|
32 /** Returns: The name of the algorithm of this cipher. */
|
|
33 abstract char[] name();
|
|
34
|
|
35 /** Reset cipher to its state immediately subsequent the last init. */
|
|
36 abstract void reset();
|
|
37
|
|
38 }
|