From 7db7a487f498858ef330310dfa458b8f0713e4e7 Mon Sep 17 00:00:00 2001 From: Caio Date: Sat, 17 Oct 2020 22:59:31 -0300 Subject: [PATCH] Update dependencies --- Cargo.toml | 10 ++++----- src/lib.rs | 64 +++++++++++++++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1d0db22..63e8ce5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,10 +9,10 @@ license = "ISC" repository = "https://github.com/acw/simple_asn1" [dependencies] -chrono = "^0.4.0" -num-bigint = "^0.2.0" -num-traits = "^0.2.0" +chrono = { default-features = false, features = ["alloc"], version = "0.4" } +num-bigint = { default-features = false, version = "0.3" } +num-traits = { default-features = false, version = "0.2" } [dev-dependencies] -quickcheck = "^0.7.1" -rand = "0.5.5" +quickcheck = "0.9" +rand = "0.7" diff --git a/src/lib.rs b/src/lib.rs index ca5fb9c..cfade32 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -399,13 +399,7 @@ pub enum ASN1EncodeErr { ObjectIdentVal2TooLarge, } -impl fmt::Display for ASN1EncodeErr { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(self.description()) - } -} - -impl Error for ASN1EncodeErr { +impl ASN1EncodeErr { fn description(&self) -> &str { match self { ASN1EncodeErr::ObjectIdentHasTooFewFields => @@ -416,6 +410,18 @@ impl Error for ASN1EncodeErr { "Second value in ASN1 OID is too big." } } +} + +impl fmt::Display for ASN1EncodeErr { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.write_str(self.description()) + } +} + +impl Error for ASN1EncodeErr { + fn description(&self) -> &str { + self.description() + } fn cause(&self) -> Option<&dyn Error> { None @@ -1175,7 +1181,7 @@ mod tests { use super::*; use chrono::offset::LocalResult; use quickcheck::{Arbitrary, Gen}; - use rand::{distributions::Standard, Rng}; + use rand::{distributions::Standard, prelude::SliceRandom, Rng}; use std::fs::File; use std::io::Read; @@ -1281,7 +1287,7 @@ mod tests { impl Arbitrary for OID { fn arbitrary(g: &mut G) -> OID { - let count = g.gen_range::(0, 40); + let count = g.gen_range::(0, 40); let val1 = g.gen::() % 3; let v2mod = if val1 == 2 { 176 } else { 40 }; let val2 = g.gen::() % v2mod; @@ -1304,7 +1310,7 @@ mod tests { } fn arb_seq(g: &mut G, d: usize) -> ASN1Block { - let count = g.gen_range::(1, 64); + let count = g.gen_range::(1, 64); let mut items = Vec::new(); for _ in 0..count { @@ -1315,7 +1321,7 @@ mod tests { } fn arb_set(g: &mut G, d: usize) -> ASN1Block { - let count = g.gen_range::(1, 64); + let count = g.gen_range::(1, 64); let mut items = Vec::new(); for _ in 0..count { @@ -1326,11 +1332,11 @@ mod tests { } fn arb_print(g: &mut G, _d: usize) -> ASN1Block { - let count = g.gen_range::(0, 384); + let count = g.gen_range::(0, 384); let mut items = Vec::new(); for _ in 0..count { - let v = g.choose(PRINTABLE_CHARS.as_bytes()).unwrap(); + let v = PRINTABLE_CHARS.as_bytes().choose(g).unwrap(); items.push(*v as char); } @@ -1338,7 +1344,7 @@ mod tests { } fn arb_ia5(g: &mut G, _d: usize) -> ASN1Block { - let count = g.gen_range::(0, 384); + let count = g.gen_range::(0, 384); let mut items = Vec::new(); for _ in 0..count { @@ -1370,15 +1376,15 @@ mod tests { fn arb_utc(g: &mut G, _d: usize) -> ASN1Block { loop { - let y = g.gen_range::(1970, 2069); - let m = g.gen_range::(1, 13); - let d = g.gen_range::(1, 32); + let y = g.gen_range::(1970, 2069); + let m = g.gen_range::(1, 13); + let d = g.gen_range::(1, 32); match Utc.ymd_opt(y, m, d) { LocalResult::None => {} LocalResult::Single(d) => { - let h = g.gen_range::(0, 24); - let m = g.gen_range::(0, 60); - let s = g.gen_range::(0, 60); + let h = g.gen_range::(0, 24); + let m = g.gen_range::(0, 60); + let s = g.gen_range::(0, 60); let t = d.and_hms(h, m, s); return ASN1Block::UTCTime(0, t); } @@ -1389,16 +1395,16 @@ mod tests { fn arb_time(g: &mut G, _d: usize) -> ASN1Block { loop { - let y = g.gen_range::(0, 10000); - let m = g.gen_range::(1, 13); - let d = g.gen_range::(1, 32); + let y = g.gen_range::(0, 10000); + let m = g.gen_range::(1, 13); + let d = g.gen_range::(1, 32); match Utc.ymd_opt(y, m, d) { LocalResult::None => {} LocalResult::Single(d) => { - let h = g.gen_range::(0, 24); - let m = g.gen_range::(0, 60); - let s = g.gen_range::(0, 60); - let n = g.gen_range::(0, 1000000000); + let h = g.gen_range::(0, 24); + let m = g.gen_range::(0, 60); + let s = g.gen_range::(0, 60); + let n = g.gen_range::(0, 1000000000); let t = d.and_hms_nano(h, m, s, n); return ASN1Block::GeneralizedTime(0, t); } @@ -1422,7 +1428,7 @@ mod tests { fn arb_unknown(g: &mut G, _d: usize) -> ASN1Block { let class = ASN1Class::arbitrary(g); let tag = RandomUint::arbitrary(g); - let size = g.gen_range::(0, 128); + let size = g.gen_range::(0, 128); let items = g.sample_iter::(&Standard).take(size).collect(); ASN1Block::Unknown(class, false, 0, tag.x, items) @@ -1453,7 +1459,7 @@ mod tests { possibles.push(arb_explicit); } - match g.choose(&possibles[..]) { + match possibles[..].choose(g) { Some(f) => f(g, d), None => panic!("Couldn't generate arbitrary value."), } -- 2.53.0