Skip to content

Commit a8c69c0

Browse files
committed
Switched to asn1 crate for unit tests because it is already used by rustls
1 parent ccd745f commit a8c69c0

3 files changed

Lines changed: 48 additions & 28 deletions

File tree

Cargo.lock

Lines changed: 28 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_Securit
2626
clap = { version = "4", default-features = false, features = ["std", "derive", "help"] }
2727
rustls-aws-lc-rs = { git = "https://github.com/rustls/rustls.git" }
2828
rustls-native-certs = "0.8"
29-
der = { version = "0.7", features = ["alloc"] }
29+
asn1 = "0.23"
3030

3131
[features]
3232
default = ["rustls-log", "rustls-std"]

src/signer.rs

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -216,16 +216,18 @@ impl SigningKey for CngSigningKey {
216216

217217
#[cfg(test)]
218218
mod 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

Comments
 (0)