diff --git a/Cargo.lock b/Cargo.lock index 30b9a2c8..87801d98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -288,7 +288,7 @@ checksum = "4113edbc9f68c0a64d5b911f803eb245d04bb812680fd56776411f69c670f3e0" dependencies = [ "hybrid-array", "num-traits", - "rand_core 0.9.3", + "rand_core", "serdect", "subtle", "zeroize", @@ -301,7 +301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8235645834fbc6832939736ce2f2d08192652269e11010a6240f61b908a1c6" dependencies = [ "hybrid-array", - "rand_core 0.9.3", + "rand_core", ] [[package]] @@ -312,7 +312,7 @@ checksum = "25f2523fbb68811c8710829417ad488086720a6349e337c38d12fa81e09e50bf" dependencies = [ "crypto-bigint", "libm", - "rand_core 0.9.3", + "rand_core", ] [[package]] @@ -479,7 +479,7 @@ checksum = "ad207ed88a133091f83224265eac21109930db09bedcad05d5252f2af2de20a1" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core 0.9.3", + "rand_core", "sha2", "subtle", "zeroize", @@ -501,7 +501,7 @@ dependencies = [ "once_cell", "pem-rfc7468", "pkcs8", - "rand_core 0.9.3", + "rand_core", "sec1", "subtle", "zeroize", @@ -559,7 +559,7 @@ version = "0.14.0-pre.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d42dd26f5790eda47c1a2158ea4120e32c35ddc9a7743c98a292accc01b54ef3" dependencies = [ - "rand_core 0.9.3", + "rand_core", "subtle", ] @@ -715,7 +715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ff6a0b2dd4b981b1ae9e3e6830ab146771f3660d31d57bafd9018805a91b0f1" dependencies = [ "ff", - "rand_core 0.9.3", + "rand_core", "subtle", ] @@ -1042,9 +1042,6 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] [[package]] name = "lexical-sort" @@ -1128,49 +1125,12 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "serde", - "smallvec", -] - [[package]] name = "num-conv" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1233,7 +1193,7 @@ dependencies = [ "elliptic-curve", "primefield", "primeorder", - "rand_core 0.9.3", + "rand_core", "sha2", ] @@ -1244,7 +1204,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ee14c44aa1c04c22c4d4532c4fa2cdd5b6d31c2514a5898530d889fc2fc2737" dependencies = [ "base64ct", - "rand_core 0.9.3", + "rand_core", "subtle", ] @@ -1331,9 +1291,9 @@ dependencies = [ "pretty_assertions", "primefield", "primeorder", - "rand 0.9.2", - "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand", + "rand_chacha", + "rand_core", "rc2", "reqwest", "rfc6979", @@ -1374,7 +1334,7 @@ name = "picky-asn1-der" version = "0.5.4" dependencies = [ "base64", - "num-bigint-dig", + "crypto-bigint", "oid", "picky-asn1", "pretty_assertions", @@ -1414,7 +1374,7 @@ dependencies = [ "picky-asn1", "picky-asn1-der", "picky-asn1-x509", - "rand 0.9.2", + "rand", "serde_json", "time", ] @@ -1440,7 +1400,7 @@ dependencies = [ "picky-asn1", "picky-asn1-der", "picky-asn1-x509", - "rand 0.9.2", + "rand", "serde", "sha1", "thiserror", @@ -1536,7 +1496,7 @@ checksum = "d7fcd4a163053332fd93f39b81c133e96a98567660981654579c90a99062fbf5" dependencies = [ "crypto-bigint", "ff", - "rand_core 0.9.3", + "rand_core", "subtle", "zeroize", ] @@ -1583,35 +1543,14 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "rand_chacha", + "rand_core", ] [[package]] @@ -1621,16 +1560,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", + "rand_core", ] [[package]] @@ -1756,7 +1686,7 @@ dependencies = [ "digest", "pkcs1", "pkcs8", - "rand_core 0.9.3", + "rand_core", "signature", "spki", "subtle", @@ -1974,7 +1904,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc280a6ff65c79fbd6622f64d7127f32b85563bca8c53cd2e9141d6744a9056d" dependencies = [ "digest", - "rand_core 0.9.3", + "rand_core", ] [[package]] @@ -2005,12 +1935,6 @@ dependencies = [ "windows-sys 0.60.2", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "spki" version = "0.8.0-rc.4" @@ -2725,7 +2649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a45998121837fd8c92655d2334aa8f3e5ef0645cdfda5b321b13760c548fd55" dependencies = [ "curve25519-dalek", - "rand_core 0.9.3", + "rand_core", "serde", "zeroize", ] diff --git a/picky-asn1-der/Cargo.toml b/picky-asn1-der/Cargo.toml index 47bf6301..121a61ef 100644 --- a/picky-asn1-der/Cargo.toml +++ b/picky-asn1-der/Cargo.toml @@ -25,7 +25,7 @@ serde_bytes = "0.11" base64 = "0.22" pretty_assertions = "1.4" serde_bytes = "0.11" -num-bigint-dig = "0.8"# TODO: use `crypto-bigint` instead +crypto-bigint = { version = "0.7.0-rc.8", default-features = false, features = ["alloc"] } oid = { version = "0.2", default-features = false, features = ["serde_support"] } [features] diff --git a/picky-asn1-der/tests/pki_tests/rsa_public_key.rs b/picky-asn1-der/tests/pki_tests/rsa_public_key.rs index 727ee57b..7f67e3ec 100644 --- a/picky-asn1-der/tests/pki_tests/rsa_public_key.rs +++ b/picky-asn1-der/tests/pki_tests/rsa_public_key.rs @@ -17,7 +17,7 @@ use super::ocsp_request::AlgorithmIdentifier; use base64::Engine as _; use base64::engine::general_purpose; -use num_bigint_dig::BigInt; +use crypto_bigint::BoxedUint; use oid::prelude::*; use picky_asn1::wrapper::*; use serde::{Deserialize, Serialize}; @@ -78,7 +78,10 @@ fn subject_public_key_info() { ]); check!(modulus: IntegerAsn1 in encoded[28..289]); - let public_exponent: IntegerAsn1 = BigInt::from(65537).to_signed_bytes_be().into(); + let public_exponent: IntegerAsn1 = BoxedUint::from(65537u32) + .to_be_bytes_trimmed_vartime() + .into_vec() + .into(); check!(public_exponent: IntegerAsn1 in encoded[289..294]); // RSA public key diff --git a/picky-asn1-der/tests/pki_tests/x509_v3_certificate.rs b/picky-asn1-der/tests/pki_tests/x509_v3_certificate.rs index ed3ebaea..c81728fe 100644 --- a/picky-asn1-der/tests/pki_tests/x509_v3_certificate.rs +++ b/picky-asn1-der/tests/pki_tests/x509_v3_certificate.rs @@ -59,7 +59,7 @@ use crate::pki_tests::rsa_public_key::{RSAPublicKey, SubjectPublicKeyInfoRsa}; use crate::pki_tests::version::{Version, implicit_app0_version_is_default}; use base64::Engine as _; use base64::engine::general_purpose; -use num_bigint_dig::BigInt; +use crypto_bigint::BoxedUint; use oid::prelude::*; use picky_asn1::bit_string::BitString; use picky_asn1::date::Date; @@ -176,7 +176,10 @@ fn x509_v3_certificate() { }, subject_public_key: RSAPublicKey { modulus: IntegerAsn1::from_bytes_be_signed(encoded[165..422].to_vec()), - public_exponent: BigInt::from(65537).to_signed_bytes_be().into(), + public_exponent: BoxedUint::from(65537u32) + .to_be_bytes_trimmed_vartime() + .into_vec() + .into(), } .into(), }; diff --git a/picky-asn1-der/tests/serde_der_advanced_asn1_types.rs b/picky-asn1-der/tests/serde_der_advanced_asn1_types.rs index 59407464..5e85ddf9 100644 --- a/picky-asn1-der/tests/serde_der_advanced_asn1_types.rs +++ b/picky-asn1-der/tests/serde_der_advanced_asn1_types.rs @@ -1,8 +1,6 @@ -extern crate num_bigint_dig as num_bigint; - mod pki_tests; -use num_bigint::ToBigInt; +use crypto_bigint::BoxedUint; use oid::prelude::*; use picky_asn1::bit_string::BitString; use picky_asn1::date::{Date, GeneralizedTime, UTCTime}; @@ -107,7 +105,7 @@ fn big_integer() { #[test] fn small_integer() { let buffer = [0x02, 0x01, 0x03]; - let big_integer = IntegerAsn1::from(3.to_bigint().unwrap().to_signed_bytes_be()); + let big_integer = IntegerAsn1::from(BoxedUint::from(3u32).to_be_bytes_trimmed_vartime().into_vec()); assert!(big_integer.is_positive()); assert!(!big_integer.is_negative()); @@ -116,18 +114,6 @@ fn small_integer() { check(&buffer, big_integer); } -#[test] -fn small_integer_negative() { - let buffer = [0x02, 0x01, 0xF9]; - let big_integer = IntegerAsn1::from((-7).to_bigint().unwrap().to_signed_bytes_be()); - - assert!(!big_integer.is_positive()); - assert!(big_integer.is_negative()); - assert_eq!(big_integer.as_unsigned_bytes_be(), &[0xF9]); - - check(&buffer, big_integer); -} - #[test] fn date() { let buffer = [ @@ -225,13 +211,6 @@ fn sequence_of() { check(&buffer, set_of_elems); } -#[test] -fn application_tag0() { - let buffer = [0xA0, 0x03, 0x02, 0x01, 0xF9]; - let application_tag = ExplicitContextTag0(IntegerAsn1::from((-7).to_bigint().unwrap().to_signed_bytes_be())); - check(&buffer, application_tag); -} - #[test] fn restricted_strings() { let printable_string_buffer = b"\x13\x02\x4E\x4C";