@@ -216,16 +216,18 @@ impl SigningKey for CngSigningKey {
216216
217217#[ cfg( test) ]
218218mod tests {
219- use der :: { Decode , Reader , asn1 :: Int } ;
219+ use asn1 :: { BigUint , Sequence } ;
220220
221- fn validate_der ( data : & [ u8 ] , r : & Int , s : & Int ) {
222- let ( decoded_r, decoded_s) = der:: SliceReader :: new ( & data)
223- . unwrap ( )
224- . sequence ( |reader| Ok ( ( Int :: decode ( reader) ?, Int :: decode ( reader) ?) ) )
225- . unwrap ( ) ;
221+ fn validate_der ( data : & [ u8 ] , r : & BigUint , s : & BigUint ) {
222+ let ( parsed_r, parsed_s) = asn1:: parse ( data, |parser| {
223+ parser. read_element :: < Sequence > ( ) ?. parse ( |parser| {
224+ Ok :: < _ , asn1:: ParseError > ( ( parser. read_element :: < BigUint > ( ) ?, parser. read_element :: < BigUint > ( ) ?) )
225+ } )
226+ } )
227+ . unwrap ( ) ;
226228
227- assert_eq ! ( decoded_r , * r) ;
228- assert_eq ! ( decoded_s , * s) ;
229+ assert_eq ! ( parsed_r , * r) ;
230+ assert_eq ! ( parsed_s , * s) ;
229231 }
230232
231233 #[ test]
@@ -234,8 +236,8 @@ mod tests {
234236 let der = super :: p1363_to_der ( & p1363) . unwrap ( ) ;
235237 validate_der (
236238 & der,
237- & Int :: new ( & [ 1 , 2 , 3 , 4 ] ) . unwrap ( ) ,
238- & Int :: new ( & [ 5 , 6 , 7 , 8 ] ) . unwrap ( ) ,
239+ & BigUint :: new ( & [ 1 , 2 , 3 , 4 ] ) . unwrap ( ) ,
240+ & BigUint :: new ( & [ 5 , 6 , 7 , 8 ] ) . unwrap ( ) ,
239241 ) ;
240242 }
241243
@@ -245,8 +247,8 @@ mod tests {
245247 let der = super :: p1363_to_der ( & p1363) . unwrap ( ) ;
246248 validate_der (
247249 & der,
248- & Int :: new ( & [ 0 , 0x81 , 2 , 3 , 4 ] ) . unwrap ( ) ,
249- & Int :: new ( & [ 0 , 0x85 , 6 , 7 , 8 ] ) . unwrap ( ) ,
250+ & BigUint :: new ( & [ 0 , 0x81 , 2 , 3 , 4 ] ) . unwrap ( ) ,
251+ & BigUint :: new ( & [ 0 , 0x85 , 6 , 7 , 8 ] ) . unwrap ( ) ,
250252 ) ;
251253 }
252254
@@ -256,8 +258,8 @@ mod tests {
256258 let der = super :: p1363_to_der ( & p1363) . unwrap ( ) ;
257259 validate_der (
258260 & der,
259- & Int :: new ( & [ 1 , 2 , 3 , 4 ] ) . unwrap ( ) ,
260- & Int :: new ( & [ 5 , 6 , 7 , 8 ] ) . unwrap ( ) ,
261+ & BigUint :: new ( & [ 1 , 2 , 3 , 4 ] ) . unwrap ( ) ,
262+ & BigUint :: new ( & [ 5 , 6 , 7 , 8 ] ) . unwrap ( ) ,
261263 ) ;
262264 }
263265
@@ -267,8 +269,8 @@ mod tests {
267269 let der = super :: p1363_to_der ( & p1363) . unwrap ( ) ;
268270 validate_der (
269271 & der,
270- & Int :: new ( & [ 0 , 0x81 , 2 , 3 , 4 ] ) . unwrap ( ) ,
271- & Int :: new ( & [ 0 , 0x85 , 6 , 7 , 8 ] ) . unwrap ( ) ,
272+ & BigUint :: new ( & [ 0 , 0x81 , 2 , 3 , 4 ] ) . unwrap ( ) ,
273+ & BigUint :: new ( & [ 0 , 0x85 , 6 , 7 , 8 ] ) . unwrap ( ) ,
272274 ) ;
273275 }
274276
@@ -279,6 +281,6 @@ mod tests {
279281
280282 let p1363 = r. clone ( ) . into_iter ( ) . chain ( s. clone ( ) ) . collect :: < Vec < u8 > > ( ) ;
281283 let der = super :: p1363_to_der ( & p1363) . unwrap ( ) ;
282- validate_der ( & der, & Int :: new ( & r) . unwrap ( ) , & Int :: new ( & s) . unwrap ( ) ) ;
284+ validate_der ( & der, & BigUint :: new ( & r) . unwrap ( ) , & BigUint :: new ( & s) . unwrap ( ) ) ;
283285 }
284286}
0 commit comments