@@ -105,104 +105,56 @@ fn hashlib_new(
105
105
}
106
106
}
107
107
108
- fn md5 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
109
- let hasher = PyHasher :: new ( "md5" , HashWrapper :: md5 ( ) ) ;
110
-
108
+ fn init (
109
+ hasher : PyHasher ,
110
+ data : OptionalArg < PyBytesRef > ,
111
+ vm : & VirtualMachine ,
112
+ ) -> PyResult < PyHasher > {
111
113
if let OptionalArg :: Present ( data) = data {
112
114
hasher. update ( data, vm) ?;
113
115
}
114
116
115
117
Ok ( hasher)
116
118
}
117
119
118
- fn sha1 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
119
- let hasher = PyHasher :: new ( "sha1" , HashWrapper :: sha1 ( ) ) ;
120
-
121
- if let OptionalArg :: Present ( data) = data {
122
- hasher. update ( data, vm) ?;
123
- }
120
+ fn md5 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
121
+ init ( PyHasher :: new ( "md5" , HashWrapper :: md5 ( ) ) , data, vm)
122
+ }
124
123
125
- Ok ( hasher)
124
+ fn sha1 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
125
+ init ( PyHasher :: new ( "sha1" , HashWrapper :: sha1 ( ) ) , data, vm)
126
126
}
127
127
128
128
fn sha224 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
129
- let hasher = PyHasher :: new ( "sha224" , HashWrapper :: sha224 ( ) ) ;
130
-
131
- if let OptionalArg :: Present ( data) = data {
132
- hasher. update ( data, vm) ?;
133
- }
134
-
135
- Ok ( hasher)
129
+ init ( PyHasher :: new ( "sha224" , HashWrapper :: sha224 ( ) ) , data, vm)
136
130
}
137
131
138
132
fn sha256 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
139
- let hasher = PyHasher :: new ( "sha256" , HashWrapper :: sha256 ( ) ) ;
140
-
141
- if let OptionalArg :: Present ( data) = data {
142
- hasher. update ( data, vm) ?;
143
- }
144
-
145
- Ok ( hasher)
133
+ init ( PyHasher :: new ( "sha256" , HashWrapper :: sha256 ( ) ) , data, vm)
146
134
}
147
135
148
136
fn sha384 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
149
- let hasher = PyHasher :: new ( "sha384" , HashWrapper :: sha384 ( ) ) ;
150
-
151
- if let OptionalArg :: Present ( data) = data {
152
- hasher. update ( data, vm) ?;
153
- }
154
-
155
- Ok ( hasher)
137
+ init ( PyHasher :: new ( "sha384" , HashWrapper :: sha384 ( ) ) , data, vm)
156
138
}
157
139
158
140
fn sha512 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
159
- let hasher = PyHasher :: new ( "sha512" , HashWrapper :: sha512 ( ) ) ;
160
-
161
- if let OptionalArg :: Present ( data) = data {
162
- hasher. update ( data, vm) ?;
163
- }
164
-
165
- Ok ( hasher)
141
+ init ( PyHasher :: new ( "sha512" , HashWrapper :: sha512 ( ) ) , data, vm)
166
142
}
167
143
168
144
fn sha3_224 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
169
- let hasher = PyHasher :: new ( "sha3_224" , HashWrapper :: sha3_224 ( ) ) ;
170
-
171
- if let OptionalArg :: Present ( data) = data {
172
- hasher. update ( data, vm) ?;
173
- }
174
-
175
- Ok ( hasher)
145
+ init ( PyHasher :: new ( "sha3_224" , HashWrapper :: sha3_224 ( ) ) , data, vm)
176
146
}
177
147
178
148
fn sha3_256 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
179
- let hasher = PyHasher :: new ( "sha3_256" , HashWrapper :: sha3_256 ( ) ) ;
180
-
181
- if let OptionalArg :: Present ( data) = data {
182
- hasher. update ( data, vm) ?;
183
- }
184
-
185
- Ok ( hasher)
149
+ init ( PyHasher :: new ( "sha3_256" , HashWrapper :: sha3_256 ( ) ) , data, vm)
186
150
}
187
151
188
152
fn sha3_384 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
189
- let hasher = PyHasher :: new ( "sha3_384" , HashWrapper :: sha3_384 ( ) ) ;
190
-
191
- if let OptionalArg :: Present ( data) = data {
192
- hasher. update ( data, vm) ?;
193
- }
194
-
195
- Ok ( hasher)
153
+ init ( PyHasher :: new ( "sha3_384" , HashWrapper :: sha3_384 ( ) ) , data, vm)
196
154
}
197
155
198
156
fn sha3_512 ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
199
- let hasher = PyHasher :: new ( "sha3_512" , HashWrapper :: sha3_512 ( ) ) ;
200
-
201
- if let OptionalArg :: Present ( data) = data {
202
- hasher. update ( data, vm) ?;
203
- }
204
-
205
- Ok ( hasher)
157
+ init ( PyHasher :: new ( "sha3_512" , HashWrapper :: sha3_512 ( ) ) , data, vm)
206
158
}
207
159
208
160
fn shake128 ( _data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
@@ -215,24 +167,12 @@ fn shake256(_data: OptionalArg<PyBytesRef>, vm: &VirtualMachine) -> PyResult<PyH
215
167
216
168
fn blake2b ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
217
169
// TODO: handle parameters
218
- let hasher = PyHasher :: new ( "blake2b" , HashWrapper :: blake2b ( ) ) ;
219
-
220
- if let OptionalArg :: Present ( data) = data {
221
- hasher. update ( data, vm) ?;
222
- }
223
-
224
- Ok ( hasher)
170
+ init ( PyHasher :: new ( "blake2b" , HashWrapper :: blake2b ( ) ) , data, vm)
225
171
}
226
172
227
173
fn blake2s ( data : OptionalArg < PyBytesRef > , vm : & VirtualMachine ) -> PyResult < PyHasher > {
228
174
// TODO: handle parameters
229
- let hasher = PyHasher :: new ( "blake2s" , HashWrapper :: blake2s ( ) ) ;
230
-
231
- if let OptionalArg :: Present ( data) = data {
232
- hasher. update ( data, vm) ?;
233
- }
234
-
235
- Ok ( hasher)
175
+ init ( PyHasher :: new ( "blake2s" , HashWrapper :: blake2s ( ) ) , data, vm)
236
176
}
237
177
238
178
pub fn make_module ( vm : & VirtualMachine ) -> PyObjectRef {
0 commit comments