@@ -3,8 +3,12 @@ use crate::algorithm::hash::Hash;
3
3
use crate :: algorithm:: mac:: Mac ;
4
4
use crate :: error:: SshError ;
5
5
use crate :: SshResult ;
6
- use aes:: cipher:: { NewCipher , StreamCipher , StreamCipherSeek } ;
7
- use aes:: { Aes128Ctr , Aes192Ctr , Aes256Ctr } ;
6
+ use aes:: cipher:: { KeyIvInit , StreamCipher , StreamCipherSeek } ;
7
+ use ctr;
8
+
9
+ type Aes128Ctr64BE = ctr:: Ctr64BE < aes:: Aes128 > ;
10
+ type Aes192Ctr64BE = ctr:: Ctr64BE < aes:: Aes192 > ;
11
+ type Aes256Ctr64BE = ctr:: Ctr64BE < aes:: Aes256 > ;
8
12
9
13
const CTR128_BLOCK_SIZE : usize = 16 ;
10
14
const CTR192_BLOCK_SIZE : usize = 24 ;
@@ -65,8 +69,8 @@ macro_rules! crate_aes {
65
69
siv. clone_from_slice( & hash. iv_s_c[ ..$iv_size] ) ;
66
70
67
71
// TODO unwrap
68
- let c = $alg:: new_from_slices ( & ckey, & civ) . unwrap ( ) ;
69
- let r = $alg:: new_from_slices ( & skey, & siv) . unwrap ( ) ;
72
+ let c = $alg:: new ( & ckey. into ( ) , & civ. into ( ) ) ;
73
+ let r = $alg:: new ( & skey. into ( ) , & siv. into ( ) ) ;
70
74
// hmac
71
75
let ( ik_c_s, ik_s_c) = hash. mix_ik( mac. bsize( ) ) ;
72
76
$name {
@@ -133,8 +137,8 @@ macro_rules! crate_aes {
133
137
}
134
138
135
139
// aes-128-ctr
136
- crate_aes ! ( Ctr128 , Aes128Ctr , CTR128_BLOCK_SIZE , IV_SIZE ) ;
140
+ crate_aes ! ( Ctr128 , Aes128Ctr64BE , CTR128_BLOCK_SIZE , IV_SIZE ) ;
137
141
// aes-192-ctr
138
- crate_aes ! ( Ctr192 , Aes192Ctr , CTR192_BLOCK_SIZE , IV_SIZE ) ;
142
+ crate_aes ! ( Ctr192 , Aes192Ctr64BE , CTR192_BLOCK_SIZE , IV_SIZE ) ;
139
143
// aes-256-ctr
140
- crate_aes ! ( Ctr256 , Aes256Ctr , CTR256_BLOCK_SIZE , IV_SIZE ) ;
144
+ crate_aes ! ( Ctr256 , Aes256Ctr64BE , CTR256_BLOCK_SIZE , IV_SIZE ) ;
0 commit comments