@@ -10,7 +10,6 @@ use cipher::{
10
10
KeyInit , KeySizeUser , ParBlocksSizeUser ,
11
11
} ;
12
12
use core:: fmt;
13
- use subtle:: { Choice , ConstantTimeEq } ;
14
13
15
14
#[ cfg( feature = "zeroize" ) ]
16
15
use cipher:: zeroize:: { Zeroize , ZeroizeOnDrop } ;
@@ -45,73 +44,6 @@ impl KeySizeUser for Des {
45
44
type KeySize = U8 ;
46
45
}
47
46
48
- static WEAK_KEYS : [ [ u8 ; 8 ] ; 64 ] = [
49
- [ 0x01 , 0x01 , 0x01 , 0x01 , 0x01 , 0x01 , 0x01 , 0x01 ] ,
50
- [ 0xFE , 0xFE , 0xFE , 0xFE , 0xFE , 0xFE , 0xFE , 0xFE ] ,
51
- [ 0xE0 , 0xE0 , 0xE0 , 0xE0 , 0xF1 , 0xF1 , 0xF1 , 0xF1 ] ,
52
- [ 0x1F , 0x1F , 0x1F , 0x1F , 0x0E , 0x0E , 0x0E , 0x0E ] ,
53
- [ 0x01 , 0x1F , 0x01 , 0x1F , 0x01 , 0x0E , 0x01 , 0x0E ] ,
54
- [ 0x1F , 0x01 , 0x1F , 0x01 , 0x0E , 0x01 , 0x0E , 0x01 ] ,
55
- [ 0x01 , 0xE0 , 0x01 , 0xE0 , 0x01 , 0xF1 , 0x01 , 0xF1 ] ,
56
- [ 0xE0 , 0x01 , 0xE0 , 0x01 , 0xF1 , 0x01 , 0xF1 , 0x01 ] ,
57
- [ 0x01 , 0xFE , 0x01 , 0xFE , 0x01 , 0xFE , 0x01 , 0xFE ] ,
58
- [ 0xFE , 0x01 , 0xFE , 0x01 , 0xFE , 0x01 , 0xFE , 0x01 ] ,
59
- [ 0x1F , 0xE0 , 0x1F , 0xE0 , 0x0E , 0xF1 , 0x0E , 0xF1 ] ,
60
- [ 0xE0 , 0x1F , 0xE0 , 0x1F , 0xF1 , 0x0E , 0xF1 , 0x0E ] ,
61
- [ 0x1F , 0xFE , 0x1F , 0xFE , 0x0E , 0xFE , 0x0E , 0xFE ] ,
62
- [ 0xFE , 0x1F , 0xFE , 0x1F , 0xFE , 0x0E , 0xFE , 0x0E ] ,
63
- [ 0xE0 , 0xFE , 0xE0 , 0xFE , 0xF1 , 0xFE , 0xF1 , 0xFE ] ,
64
- [ 0xFE , 0xE0 , 0xFE , 0xE0 , 0xFE , 0xF1 , 0xFE , 0xF1 ] ,
65
- [ 0x01 , 0x01 , 0x1F , 0x1F , 0x01 , 0x01 , 0x0E , 0x0E ] ,
66
- [ 0x1F , 0x1F , 0x01 , 0x01 , 0x0E , 0x0E , 0x01 , 0x01 ] ,
67
- [ 0xE0 , 0xE0 , 0x1F , 0x1F , 0xF1 , 0xF1 , 0x0E , 0x0E ] ,
68
- [ 0x01 , 0x01 , 0xE0 , 0xE0 , 0x01 , 0x01 , 0xF1 , 0xF1 ] ,
69
- [ 0x1F , 0x1F , 0xE0 , 0xE0 , 0x0E , 0x0E , 0xF1 , 0xF1 ] ,
70
- [ 0xE0 , 0xE0 , 0xFE , 0xFE , 0xF1 , 0xF1 , 0xFE , 0xFE ] ,
71
- [ 0x01 , 0x01 , 0xFE , 0xFE , 0x01 , 0x01 , 0xFE , 0xFE ] ,
72
- [ 0x1F , 0x1F , 0xFE , 0xFE , 0x0E , 0x0E , 0xFE , 0xFE ] ,
73
- [ 0xE0 , 0xFE , 0x01 , 0x1F , 0xF1 , 0xFE , 0x01 , 0x0E ] ,
74
- [ 0x01 , 0x1F , 0x1F , 0x01 , 0x01 , 0x0E , 0x0E , 0x01 ] ,
75
- [ 0x1F , 0xE0 , 0x01 , 0xFE , 0x0E , 0xF1 , 0x01 , 0xFE ] ,
76
- [ 0xE0 , 0xFE , 0x1F , 0x01 , 0xF1 , 0xFE , 0x0E , 0x01 ] ,
77
- [ 0x01 , 0x1F , 0xE0 , 0xFE , 0x01 , 0x0E , 0xF1 , 0xFE ] ,
78
- [ 0x1F , 0xE0 , 0xE0 , 0x1F , 0x0E , 0xF1 , 0xF1 , 0x0E ] ,
79
- [ 0xE0 , 0xFE , 0xFE , 0xE0 , 0xF1 , 0xFE , 0xFE , 0xF1 ] ,
80
- [ 0x01 , 0x1F , 0xFE , 0xE0 , 0x01 , 0x0E , 0xFE , 0xF1 ] ,
81
- [ 0x1F , 0xE0 , 0xFE , 0x01 , 0x0E , 0xF1 , 0xFE , 0x01 ] ,
82
- [ 0xFE , 0x01 , 0x01 , 0xFE , 0xFE , 0x01 , 0x01 , 0xFE ] ,
83
- [ 0x01 , 0xE0 , 0x1F , 0xFE , 0x01 , 0xF1 , 0x0E , 0xFE ] ,
84
- [ 0x1F , 0xFE , 0x01 , 0xE0 , 0x0E , 0xFE , 0x01 , 0xF1 ] ,
85
- [ 0xFE , 0x01 , 0x1F , 0xE0 , 0xFE , 0x01 , 0x0E , 0xF1 ] ,
86
- [ 0xFE , 0x01 , 0xE0 , 0x1F , 0xFE , 0x01 , 0xF1 , 0x0E ] ,
87
- [ 0x1F , 0xFE , 0xE0 , 0x01 , 0x0E , 0xFE , 0xF1 , 0x01 ] ,
88
- [ 0xFE , 0x1F , 0x01 , 0xE0 , 0xFE , 0x0E , 0x01 , 0xF1 ] ,
89
- [ 0x01 , 0xE0 , 0xE0 , 0x01 , 0x01 , 0xF1 , 0xF1 , 0x01 ] ,
90
- [ 0x1F , 0xFE , 0xFE , 0x1F , 0x0E , 0xFE , 0xFE , 0x0E ] ,
91
- [ 0xFE , 0x1F , 0xE0 , 0x01 , 0xFE , 0x0E , 0xF1 , 0x01 ] ,
92
- [ 0x01 , 0xE0 , 0xFE , 0x1F , 0x01 , 0xF1 , 0xFE , 0x0E ] ,
93
- [ 0xE0 , 0x01 , 0x01 , 0xE0 , 0xF1 , 0x01 , 0x01 , 0xF1 ] ,
94
- [ 0xFE , 0x1F , 0x1F , 0xFE , 0xFE , 0x0E , 0x0E , 0xFE ] ,
95
- [ 0x01 , 0xFE , 0x1F , 0xE0 , 0x01 , 0xFE , 0x0E , 0xF1 ] ,
96
- [ 0xE0 , 0x01 , 0x1F , 0xFE , 0xF1 , 0x01 , 0x0E , 0xFE ] ,
97
- [ 0xFE , 0xE0 , 0x01 , 0x1F , 0xFE , 0xF1 , 0x01 , 0x0E ] ,
98
- [ 0x01 , 0xFE , 0xE0 , 0x1F , 0x01 , 0xFE , 0xF1 , 0x0E ] ,
99
- [ 0xE0 , 0x01 , 0xFE , 0x1F , 0xF1 , 0x01 , 0xFE , 0x0E ] ,
100
- [ 0xFE , 0xE0 , 0x1F , 0x01 , 0xFE , 0xF1 , 0x0E , 0x01 ] ,
101
- [ 0x01 , 0xFE , 0xFE , 0x01 , 0x01 , 0xFE , 0xFE , 0x01 ] ,
102
- [ 0xE0 , 0x1F , 0x01 , 0xFE , 0xF1 , 0x0E , 0x01 , 0xFE ] ,
103
- [ 0xFE , 0xE0 , 0xE0 , 0xFE , 0xFE , 0xF1 , 0xF1 , 0xFE ] ,
104
- [ 0x1F , 0x01 , 0x01 , 0x1F , 0x0E , 0x01 , 0x01 , 0x0E ] ,
105
- [ 0xE0 , 0x1F , 0x1F , 0xE0 , 0xF1 , 0x0E , 0x0E , 0xF1 ] ,
106
- [ 0xFE , 0xFE , 0x01 , 0x01 , 0xFE , 0xFE , 0x01 , 0x01 ] ,
107
- [ 0x1F , 0x01 , 0xE0 , 0xFE , 0x0E , 0x01 , 0xF1 , 0xFE ] ,
108
- [ 0xE0 , 0x1F , 0xFE , 0x01 , 0xF1 , 0x0E , 0xFE , 0x01 ] ,
109
- [ 0xFE , 0xFE , 0x1F , 0x1F , 0xFE , 0xFE , 0x0E , 0x0E ] ,
110
- [ 0x1F , 0x01 , 0xFE , 0xE0 , 0x0E , 0x01 , 0xFE , 0xF1 ] ,
111
- [ 0xE0 , 0xE0 , 0x01 , 0x01 , 0xF1 , 0xF1 , 0x01 , 0x01 ] ,
112
- [ 0xFE , 0xFE , 0xE0 , 0xE0 , 0xFE , 0xFE , 0xF1 , 0xF1 ] ,
113
- ] ;
114
-
115
47
impl KeyInit for Des {
116
48
#[ inline]
117
49
fn new ( key : & Key < Self > ) -> Self {
@@ -121,16 +53,9 @@ impl KeyInit for Des {
121
53
122
54
#[ inline]
123
55
fn weak_key_test ( key : & Key < Self > ) -> Result < ( ) , WeakKeyError > {
124
- let mut weak = Choice :: from ( 0 ) ;
125
-
126
- for weak_key in & WEAK_KEYS {
127
- weak |= key. ct_eq ( weak_key) ;
128
- }
129
-
130
- if weak. unwrap_u8 ( ) == 0 {
131
- Ok ( ( ) )
132
- } else {
133
- Err ( WeakKeyError )
56
+ match super :: weak_key_test ( & key. 0 ) {
57
+ 0 => Ok ( ( ) ) ,
58
+ _ => Err ( WeakKeyError ) ,
134
59
}
135
60
}
136
61
}
0 commit comments