1
1
//! Test vectors generated with OpenSSL
2
2
3
3
use aes:: Aes128 ;
4
- use block_modes:: block_padding:: { NoPadding , ZeroPadding } ;
4
+ use block_modes:: block_padding:: NoPadding ;
5
5
use block_modes:: BlockMode ;
6
6
use block_modes:: { Cbc , Ecb , Ige } ;
7
- use cipher:: generic_array:: GenericArray ;
8
7
9
8
#[ test]
10
9
fn ecb_aes128 ( ) {
11
10
let key = include_bytes ! ( "data/aes128.key.bin" ) ;
12
11
let plaintext = include_bytes ! ( "data/aes128.plaintext.bin" ) ;
13
12
let ciphertext = include_bytes ! ( "data/ecb-aes128.ciphertext.bin" ) ;
14
-
15
13
// ECB mode ignores IV
16
14
let iv = Default :: default ( ) ;
17
- let mode = Ecb :: < Aes128 , ZeroPadding > :: new_var ( key, iv) . unwrap ( ) ;
18
- let mut pt = plaintext. to_vec ( ) ;
19
- let n = pt. len ( ) ;
20
- mode. encrypt ( & mut pt, n) . unwrap ( ) ;
21
- assert_eq ! ( pt, & ciphertext[ ..] ) ;
22
-
23
- let mode = Ecb :: < Aes128 , ZeroPadding > :: new_var ( key, iv) . unwrap ( ) ;
24
- let mut ct = ciphertext. to_vec ( ) ;
25
- mode. decrypt ( & mut ct) . unwrap ( ) ;
26
- assert_eq ! ( ct, & plaintext[ ..] ) ;
15
+
16
+ let mode = Ecb :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
17
+ assert_eq ! ( mode. encrypt_vec( plaintext) , & ciphertext[ ..] ) ;
18
+
19
+ let mode = Ecb :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
20
+ assert_eq ! ( mode. decrypt_vec( ciphertext) . unwrap( ) , & plaintext[ ..] ) ;
27
21
}
28
22
29
23
#[ test]
@@ -33,16 +27,11 @@ fn cbc_aes128() {
33
27
let plaintext = include_bytes ! ( "data/aes128.plaintext.bin" ) ;
34
28
let ciphertext = include_bytes ! ( "data/cbc-aes128.ciphertext.bin" ) ;
35
29
36
- let mode = Cbc :: < Aes128 , ZeroPadding > :: new_var ( key, iv) . unwrap ( ) ;
37
- let mut pt = plaintext. to_vec ( ) ;
38
- let n = pt. len ( ) ;
39
- mode. encrypt ( & mut pt, n) . unwrap ( ) ;
40
- assert_eq ! ( pt, & ciphertext[ ..] ) ;
30
+ let mode = Cbc :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
31
+ assert_eq ! ( mode. encrypt_vec( plaintext) , & ciphertext[ ..] ) ;
41
32
42
- let mode = Cbc :: < Aes128 , ZeroPadding > :: new_var ( key, iv) . unwrap ( ) ;
43
- let mut ct = ciphertext. to_vec ( ) ;
44
- mode. decrypt ( & mut ct) . unwrap ( ) ;
45
- assert_eq ! ( ct, & plaintext[ ..] ) ;
33
+ let mode = Cbc :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
34
+ assert_eq ! ( mode. decrypt_vec( ciphertext) . unwrap( ) , & plaintext[ ..] ) ;
46
35
}
47
36
48
37
/// Test that parallel code works correctly
@@ -73,28 +62,28 @@ fn par_blocks() {
73
62
74
63
#[ test]
75
64
fn ige_aes256_1 ( ) {
76
- let key = GenericArray :: from_slice ( include_bytes ! ( "data/ige-aes128-1.key.bin" ) ) ;
77
- let iv = GenericArray :: from_slice ( include_bytes ! ( "data/ige-aes128-1.iv.bin" ) ) ;
65
+ let key = include_bytes ! ( "data/ige-aes128-1.key.bin" ) ;
66
+ let iv = include_bytes ! ( "data/ige-aes128-1.iv.bin" ) ;
78
67
let plaintext = include_bytes ! ( "data/ige-aes128-1.plaintext.bin" ) ;
79
68
let ciphertext = include_bytes ! ( "data/ige-aes128-1.ciphertext.bin" ) ;
80
69
81
- let mode = Ige :: < Aes128 , NoPadding > :: new_fix ( key, iv) ;
70
+ let mode = Ige :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
82
71
assert_eq ! ( mode. encrypt_vec( plaintext) , & ciphertext[ ..] ) ;
83
72
84
- let mode = Ige :: < Aes128 , NoPadding > :: new_fix ( key, iv) ;
73
+ let mode = Ige :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
85
74
assert_eq ! ( mode. decrypt_vec( ciphertext) . unwrap( ) , & plaintext[ ..] ) ;
86
75
}
87
76
88
77
#[ test]
89
78
fn ige_aes256_2 ( ) {
90
- let key = GenericArray :: from_slice ( include_bytes ! ( "data/ige-aes128-2.key.bin" ) ) ;
91
- let iv = GenericArray :: from_slice ( include_bytes ! ( "data/ige-aes128-2.iv.bin" ) ) ;
79
+ let key = include_bytes ! ( "data/ige-aes128-2.key.bin" ) ;
80
+ let iv = include_bytes ! ( "data/ige-aes128-2.iv.bin" ) ;
92
81
let plaintext = include_bytes ! ( "data/ige-aes128-2.plaintext.bin" ) ;
93
82
let ciphertext = include_bytes ! ( "data/ige-aes128-2.ciphertext.bin" ) ;
94
83
95
- let mode = Ige :: < Aes128 , NoPadding > :: new_fix ( key, iv) ;
84
+ let mode = Ige :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
96
85
assert_eq ! ( mode. encrypt_vec( plaintext) , & ciphertext[ ..] ) ;
97
86
98
- let mode = Ige :: < Aes128 , NoPadding > :: new_fix ( key, iv) ;
87
+ let mode = Ige :: < Aes128 , NoPadding > :: new_var ( key, iv) . unwrap ( ) ;
99
88
assert_eq ! ( mode. decrypt_vec( ciphertext) . unwrap( ) , & plaintext[ ..] ) ;
100
89
}
0 commit comments