comparison dcrypt/crypto/params/ParametersWithIV.d @ 27:8b5eaf3c2979

Fixed error in hash message padding reported by Glenn Haecker.
author Thomas Dixon <reikon@reikon.us>
date Sat, 09 May 2009 23:29:20 -0400
parents 5ce3012f1def
children 2b4bccdc8387
comparison
equal deleted inserted replaced
26:176c933827a8 27:8b5eaf3c2979
9 module dcrypt.crypto.params.ParametersWithIV; 9 module dcrypt.crypto.params.ParametersWithIV;
10 10
11 public import dcrypt.crypto.params.CipherParameters; 11 public import dcrypt.crypto.params.CipherParameters;
12 12
13 /** Wrap cipher parameters and IV. */ 13 /** Wrap cipher parameters and IV. */
14 class ParametersWithIV : CipherParameters { 14 class ParametersWithIV : CipherParameters
15 {
15 private ubyte[] _iv; 16 private ubyte[] _iv;
16 private CipherParameters _params; 17 private CipherParameters _params;
17 18
18 /** 19 /**
19 * Params: 20 * Params:
20 * params = Parameters to wrap. 21 * params = Parameters to wrap.
21 * iv = IV to be held. 22 * iv = IV to be held.
22 */ 23 */
23 this (CipherParameters params=null, ubyte[] iv=null) { 24 this (CipherParameters params=null, ubyte[] iv=null)
25 {
24 _params = params; 26 _params = params;
25 _iv = cast(ubyte[]) iv; 27 _iv = cast(ubyte[]) iv;
26 } 28 }
27 29
28 /** Returns: The IV. */ 30 /** Returns: The IV. */
29 ubyte[] iv() { 31 ubyte[] iv()
32 {
30 return _iv; 33 return _iv;
31 } 34 }
32 35
33 /** 36 /**
34 * Set the IV held by this object. 37 * Set the IV held by this object.
35 * 38 *
36 * Params: 39 * Params:
37 * newIV = The new IV for this parameter object. 40 * newIV = The new IV for this parameter object.
38 * Returns: The new IV. 41 * Returns: The new IV.
39 */ 42 */
40 ubyte[] iv(void[] newIV) {; 43 ubyte[] iv(void[] newIV)
44 {
41 return _iv = cast(ubyte[]) newIV; 45 return _iv = cast(ubyte[]) newIV;
42 } 46 }
43 47
44 /** Returns: The parameters for this object. */ 48 /** Returns: The parameters for this object. */
45 CipherParameters parameters() { 49 CipherParameters parameters()
50 {
46 return _params; 51 return _params;
47 } 52 }
48 53
49 /** 54 /**
50 * Set the parameters held by this object. 55 * Set the parameters held by this object.
51 * 56 *
52 * Params: 57 * Params:
53 * newParams = The new parameters to be held. 58 * newParams = The new parameters to be held.
54 * Returns: The new parameters. 59 * Returns: The new parameters.
55 */ 60 */
56 CipherParameters parameters(CipherParameters newParams) { 61 CipherParameters parameters(CipherParameters newParams)
62 {
57 return _params = newParams; 63 return _params = newParams;
58 } 64 }
59 } 65 }