diff --git a/Cargo.lock b/Cargo.lock index cb8e11bd..718dba47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1333,12 +1333,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "convert_case" version = "0.4.0" @@ -1616,17 +1610,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.3.11" @@ -1724,7 +1707,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", - "const-oid", "crypto-common", "subtle", ] @@ -3023,7 +3005,7 @@ checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" dependencies = [ "base64 0.21.7", "js-sys", - "pem 3.0.3", + "pem", "ring 0.17.8", "serde", "serde_json", @@ -3072,9 +3054,6 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin 0.5.2", -] [[package]] name = "lazycell" @@ -3565,23 +3544,6 @@ dependencies = [ "num-traits", ] -[[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", - "smallvec", - "zeroize", -] - [[package]] name = "num-complex" version = "0.4.5" @@ -3616,17 +3578,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-iter" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.18" @@ -3920,16 +3871,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" -[[package]] -name = "pem" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a" -dependencies = [ - "base64 0.21.7", - "serde", -] - [[package]] name = "pem" version = "3.0.3" @@ -3940,15 +3881,6 @@ dependencies = [ "serde", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -4086,27 +4018,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" version = "0.3.30" @@ -4619,7 +4530,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ - "pem 3.0.3", + "pem", "ring 0.16.20", "time", "yasna", @@ -5123,26 +5034,6 @@ dependencies = [ "cc", ] -[[package]] -name = "rsa" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - [[package]] name = "rstar" version = "0.11.0" @@ -5663,16 +5554,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - [[package]] name = "simdutf8" version = "0.1.4" @@ -5786,16 +5667,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "stable-pattern" version = "0.1.0" @@ -6066,6 +5937,7 @@ dependencies = [ "hex", "indxdb", "ipnet", + "jsonwebtoken", "lexicmp", "linfa-linalg", "md-5", @@ -6107,7 +5979,6 @@ dependencies = [ "snap", "storekey", "surrealdb-derive", - "surrealdb-jsonwebtoken", "surrealdb-tikv-client", "surrealkv", "surrealml-core", @@ -6141,25 +6012,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "surrealdb-jsonwebtoken" -version = "8.3.0-surreal.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d4f759c65df8a8cf2d83c99db7fdd3ae5b8fff05fa7fe69a8612f29dd5f99b" -dependencies = [ - "base64 0.21.7", - "getrandom 0.2.12", - "hmac", - "pem 2.0.1", - "rand 0.8.5", - "ring 0.16.20", - "rsa", - "serde", - "serde_json", - "sha2", - "simple_asn1", -] - [[package]] name = "surrealdb-tikv-client" version = "0.3.0-surreal.1" diff --git a/core/Cargo.toml b/core/Cargo.toml index effc6ff0..2ce55a9b 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -95,7 +95,7 @@ js = { version = "0.6.2", package = "rquickjs", features = [ "properties", "rust-alloc", ], optional = true } -jsonwebtoken = { version = "8.3.0-surreal.1", package = "surrealdb-jsonwebtoken" } +jsonwebtoken = "9.3.0" lexicmp = "0.1.0" linfa-linalg = "=0.1.0" md-5 = "0.10.6" diff --git a/core/src/iam/jwks.rs b/core/src/iam/jwks.rs index fc1db62f..c7e8b7dc 100644 --- a/core/src/iam/jwks.rs +++ b/core/src/iam/jwks.rs @@ -2,7 +2,9 @@ use crate::dbs::capabilities::NetTarget; use crate::err::Error; use crate::kvs::Datastore; use chrono::{DateTime, Duration, Utc}; -use jsonwebtoken::jwk::{AlgorithmParameters::*, Jwk, JwkSet, KeyOperations, PublicKeyUse}; +use jsonwebtoken::jwk::{ + AlgorithmParameters::*, Jwk, JwkSet, KeyAlgorithm, KeyOperations, PublicKeyUse, +}; use jsonwebtoken::{Algorithm::*, DecodingKey, Validation}; use once_cell::sync::Lazy; use reqwest::{Client, Url}; @@ -114,8 +116,25 @@ pub(super) async fn config( // When missing, tokens must be validated using only the required key type parameter // This is discouraged, as it requires relying on the algorithm specified in the token // Source: https://datatracker.ietf.org/doc/html/rfc7517#section-4.4 - let alg = match jwk.common.algorithm { - Some(alg) => alg, + let alg = match jwk.common.key_algorithm { + Some(alg) => match alg { + KeyAlgorithm::HS256 => HS256, + KeyAlgorithm::HS384 => HS384, + KeyAlgorithm::HS512 => HS512, + KeyAlgorithm::EdDSA => EdDSA, + KeyAlgorithm::ES256 => ES256, + KeyAlgorithm::ES384 => ES384, + KeyAlgorithm::PS256 => PS256, + KeyAlgorithm::PS384 => PS384, + KeyAlgorithm::PS512 => PS512, + KeyAlgorithm::RS256 => RS256, + KeyAlgorithm::RS384 => RS384, + KeyAlgorithm::RS512 => RS512, + _ => { + warn!("Unspported value for parameter 'alg' in JWK object: '{:?}'", alg); + return Err(Error::InvalidAuth); // Return opaque error + } + }, // If not specified, use the algorithm provided in the token header // It is critical that the JWT library prevents the "none" algorithm from being used // Reference: https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/#Meet-the--None--Algorithm @@ -342,7 +361,7 @@ mod tests { common: jsonwebtoken::jwk::CommonParameters { public_key_use: Some(jsonwebtoken::jwk::PublicKeyUse::Signature), key_operations: None, - algorithm: Some(jsonwebtoken::Algorithm::RS256), + key_algorithm: Some(KeyAlgorithm::RS256), key_id: Some("test_1".to_string()), x509_url: None, x509_chain: Some(vec![ @@ -363,7 +382,7 @@ mod tests { common: jsonwebtoken::jwk::CommonParameters { public_key_use: Some(jsonwebtoken::jwk::PublicKeyUse::Signature), key_operations: None, - algorithm: Some(jsonwebtoken::Algorithm::RS256), + key_algorithm: Some(KeyAlgorithm::RS256), key_id: Some("test_2".to_string()), x509_url: None, x509_chain: Some(vec![ @@ -629,7 +648,7 @@ mod tests { )), ); let mut jwks = DEFAULT_JWKS.clone(); - jwks.keys[0].common.algorithm = None; + jwks.keys[0].common.key_algorithm = None; let jwks_path = format!("{}/jwks.json", random_path()); let mock_server = MockServer::start().await; @@ -667,7 +686,7 @@ mod tests { )), ); let mut jwks = DEFAULT_JWKS.clone(); - jwks.keys[0].common.algorithm = None; + jwks.keys[0].common.key_algorithm = None; let jwks_path = format!("{}/jwks.json", random_path()); let mock_server = MockServer::start().await; @@ -693,6 +712,39 @@ mod tests { ); } + #[tokio::test] + async fn test_unsupported_algorithm() { + let ds = Datastore::new("memory").await.unwrap().with_capabilities( + Capabilities::default().with_network_targets(Targets::::Some( + [NetTarget::from_str("127.0.0.1").unwrap()].into(), + )), + ); + let mut jwks = DEFAULT_JWKS.clone(); + jwks.keys[0].common.key_algorithm = Some(KeyAlgorithm::RSA_OAEP_256); + + let jwks_path = format!("{}/jwks.json", random_path()); + let mock_server = MockServer::start().await; + let response = ResponseTemplate::new(200).set_body_json(jwks); + Mock::given(method("GET")) + .and(path(&jwks_path)) + .respond_with(response) + .mount(&mock_server) + .await; + let url = mock_server.uri(); + + let res = config( + &ds, + "test_1", + &format!("{}/{}", &url, &jwks_path), + jsonwebtoken::Algorithm::RS256, + ) + .await; + assert!( + res.is_err(), + "Unexpected success validating token with key specifies an unsupported algorithm" + ); + } + #[tokio::test] async fn test_no_key_use() { let ds = Datastore::new("memory").await.unwrap().with_capabilities( diff --git a/core/src/iam/verify.rs b/core/src/iam/verify.rs index 231bee6c..840c536e 100644 --- a/core/src/iam/verify.rs +++ b/core/src/iam/verify.rs @@ -16,47 +16,55 @@ use std::str::{self, FromStr}; use std::sync::Arc; fn config(alg: Algorithm, key: &[u8]) -> Result<(DecodingKey, Validation), Error> { - match alg { + let (dec, mut val) = match alg { Algorithm::Hs256 => { - Ok((DecodingKey::from_secret(key), Validation::new(jsonwebtoken::Algorithm::HS256))) + (DecodingKey::from_secret(key), Validation::new(jsonwebtoken::Algorithm::HS256)) } Algorithm::Hs384 => { - Ok((DecodingKey::from_secret(key), Validation::new(jsonwebtoken::Algorithm::HS384))) + (DecodingKey::from_secret(key), Validation::new(jsonwebtoken::Algorithm::HS384)) } Algorithm::Hs512 => { - Ok((DecodingKey::from_secret(key), Validation::new(jsonwebtoken::Algorithm::HS512))) + (DecodingKey::from_secret(key), Validation::new(jsonwebtoken::Algorithm::HS512)) } Algorithm::EdDSA => { - Ok((DecodingKey::from_ed_pem(key)?, Validation::new(jsonwebtoken::Algorithm::EdDSA))) + (DecodingKey::from_ed_pem(key)?, Validation::new(jsonwebtoken::Algorithm::EdDSA)) } Algorithm::Es256 => { - Ok((DecodingKey::from_ec_pem(key)?, Validation::new(jsonwebtoken::Algorithm::ES256))) + (DecodingKey::from_ec_pem(key)?, Validation::new(jsonwebtoken::Algorithm::ES256)) } Algorithm::Es384 => { - Ok((DecodingKey::from_ec_pem(key)?, Validation::new(jsonwebtoken::Algorithm::ES384))) + (DecodingKey::from_ec_pem(key)?, Validation::new(jsonwebtoken::Algorithm::ES384)) } Algorithm::Es512 => { - Ok((DecodingKey::from_ec_pem(key)?, Validation::new(jsonwebtoken::Algorithm::ES384))) + (DecodingKey::from_ec_pem(key)?, Validation::new(jsonwebtoken::Algorithm::ES384)) } Algorithm::Ps256 => { - Ok((DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::PS256))) + (DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::PS256)) } Algorithm::Ps384 => { - Ok((DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::PS384))) + (DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::PS384)) } Algorithm::Ps512 => { - Ok((DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::PS512))) + (DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::PS512)) } Algorithm::Rs256 => { - Ok((DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::RS256))) + (DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::RS256)) } Algorithm::Rs384 => { - Ok((DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::RS384))) + (DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::RS384)) } Algorithm::Rs512 => { - Ok((DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::RS512))) + (DecodingKey::from_rsa_pem(key)?, Validation::new(jsonwebtoken::Algorithm::RS512)) } - } + }; + + // TODO(gguillemas): This keeps the existing behavior as of SurrealDB 2.0.0-alpha.9. + // Up to that point, a fork of the "jsonwebtoken" crate in version 8.3.0 was being used. + // Now that the audience claim is validated by default, we should allow users to leverage this. + // This will most likely involve defining an audience string via "DEFINE ACCESS ... TYPE JWT". + val.validate_aud = false; + + Ok((dec, val)) } static KEY: Lazy = Lazy::new(|| DecodingKey::from_secret(&[])); @@ -66,6 +74,7 @@ static DUD: Lazy = Lazy::new(|| { validation.insecure_disable_signature_validation(); validation.validate_nbf = false; validation.validate_exp = false; + validation.validate_aud = false; validation }); @@ -1728,7 +1737,7 @@ mod tests { common: jsonwebtoken::jwk::CommonParameters { public_key_use: None, key_operations: None, - algorithm: Some(jsonwebtoken::Algorithm::HS512), + key_algorithm: Some(jsonwebtoken::jwk::KeyAlgorithm::HS512), key_id: Some(kid.to_string()), x509_url: None, x509_chain: None, diff --git a/deny.toml b/deny.toml index fd3b727d..5b7fa52d 100644 --- a/deny.toml +++ b/deny.toml @@ -61,12 +61,7 @@ notice = "warn" # Threshold for security vulnerabilities: None, Low, Medium, High, Critical. severity-threshold = "None" # A list of security advisory identifiers to ignore. -ignore = [ - # Will be resolved once "surrealdb-jsonwebtoken", a temporary fork - # of "jsonwebtoken", is replaced by the upstream version which no - # longer uses the affected "rsa" crate. - "RUSTSEC-2023-0071", -] +ignore = [] # -------------------------------------------------- # LICENSES diff --git a/lib/fuzz/Cargo.lock b/lib/fuzz/Cargo.lock index e75dd337..46b342d9 100644 --- a/lib/fuzz/Cargo.lock +++ b/lib/fuzz/Cargo.lock @@ -65,6 +65,19 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +[[package]] +name = "ammonia" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab99eae5ee58501ab236beb6f20f6ca39be615267b014899c89b2f0bc18a459" +dependencies = [ + "html5ever", + "maplit", + "once_cell", + "tendril", + "url", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -86,6 +99,15 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea50b14b7a4b9343f8c627a7a53c52076482bd4bdad0a24fd3ec533ed616cc2c" +[[package]] +name = "approx" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" +dependencies = [ + "num-traits", +] + [[package]] name = "approx" version = "0.5.1" @@ -522,7 +544,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.4", + "windows-targets 0.52.6", ] [[package]] @@ -571,12 +593,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "core-foundation-sys" version = "0.8.6" @@ -598,6 +614,25 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.19" @@ -656,14 +691,16 @@ dependencies = [ ] [[package]] -name = "der" -version = "0.7.9" +name = "dashmap" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", + "cfg-if", + "hashbrown 0.14.3", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] @@ -700,7 +737,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", - "const-oid", "crypto-common", "subtle", ] @@ -753,9 +789,9 @@ dependencies = [ [[package]] name = "echodb" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac31e38aeac770dd01b9d6c9ab2a6d7f025815f71105911cf6de073a5db8ee1" +checksum = "1d1eccc44ff21b80ca7e883ff57423a12610965a33637d5d0bef4adebcd81749" dependencies = [ "arc-swap", "imbl", @@ -790,6 +826,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -817,6 +863,19 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "ext-sort" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcf73e44617eab501beba39234441a194cf138629d3b6447f81f573e1c3d0a13" +dependencies = [ + "log", + "rayon", + "rmp-serde", + "serde", + "tempfile", +] + [[package]] name = "fastrand" version = "2.0.2" @@ -835,18 +894,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" -[[package]] -name = "flume" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" -dependencies = [ - "futures-core", - "futures-sink", - "nanorand", - "spin 0.9.8", -] - [[package]] name = "fnv" version = "1.0.7" @@ -874,6 +921,16 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + [[package]] name = "futures" version = "0.3.30" @@ -899,19 +956,6 @@ dependencies = [ "futures-sink", ] -[[package]] -name = "futures-concurrency" -version = "7.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b590a729e1cbaf9ae3ec294143ea034d93cbb1de01c884d04bcd0af8b613d02" -dependencies = [ - "bitvec", - "futures-core", - "pin-project", - "slab", - "smallvec", -] - [[package]] name = "futures-core" version = "0.3.30" @@ -1049,7 +1093,7 @@ version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ff16065e5720f376fbced200a5ae0f47ace85fd70b7e54269790281353b6d61" dependencies = [ - "approx", + "approx 0.5.1", "arbitrary", "num-traits", "rstar", @@ -1131,7 +1175,7 @@ dependencies = [ "atomic-polyfill", "hash32", "rustc_version", - "spin 0.9.8", + "spin", "stable_deref_trait", ] @@ -1162,6 +1206,20 @@ dependencies = [ "digest", ] +[[package]] +name = "html5ever" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 2.0.58", +] + [[package]] name = "humantime" version = "2.1.0" @@ -1284,6 +1342,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -1308,6 +1375,21 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonwebtoken" +version = "9.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +dependencies = [ + "base64 0.21.7", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "lalrpop" version = "0.20.2" @@ -1344,9 +1426,6 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin 0.5.2", -] [[package]] name = "lexicmp" @@ -1390,6 +1469,24 @@ dependencies = [ "libc", ] +[[package]] +name = "linfa-linalg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e7562b41c8876d3367897067013bb2884cc78e6893f092ecd26b305176ac82" +dependencies = [ + "ndarray", + "num-traits", + "rand", + "thiserror", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + [[package]] name = "lock_api" version = "0.4.11" @@ -1406,6 +1503,42 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "markup5ever" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" +dependencies = [ + "log", + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matrixmultiply" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "md-5" version = "0.10.6" @@ -1470,12 +1603,32 @@ dependencies = [ ] [[package]] -name = "nanorand" -version = "0.7.0" +name = "ndarray" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" dependencies = [ - "getrandom", + "approx 0.4.0", + "matrixmultiply", + "num-complex", + "num-integer", + "num-traits", + "rawpointer", +] + +[[package]] +name = "ndarray-stats" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af5a8477ac96877b5bd1fd67e0c28736c12943aba24eda92b127e036b0c8f400" +dependencies = [ + "indexmap 1.9.3", + "itertools 0.10.5", + "ndarray", + "noisy_float", + "num-integer", + "num-traits", + "rand", ] [[package]] @@ -1493,6 +1646,15 @@ dependencies = [ "smallvec", ] +[[package]] +name = "noisy_float" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978fe6e6ebc0bf53de533cd456ca2d9de13de13856eda1518a285d7705a213af" +dependencies = [ + "num-traits", +] + [[package]] name = "nom" version = "7.1.3" @@ -1515,20 +1677,12 @@ dependencies = [ ] [[package]] -name = "num-bigint-dig" -version = "0.8.4" +name = "num-complex" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", "num-traits", - "rand", - "smallvec", - "zeroize", ] [[package]] @@ -1546,17 +1700,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-iter" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.18" @@ -1588,16 +1731,16 @@ dependencies = [ [[package]] name = "object_store" -version = "0.8.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2524735495ea1268be33d200e1ee97455096a0846295a21548cd2f3541de7050" +checksum = "e6da452820c715ce78221e8202ccc599b4a52f3e1eb3eedb487b680c81a8e3f3" dependencies = [ "async-trait", "bytes", "chrono", "futures", "humantime", - "itertools 0.11.0", + "itertools 0.13.0", "parking_lot", "percent-encoding", "snafu", @@ -1679,23 +1822,14 @@ dependencies = [ [[package]] name = "pem" -version = "2.0.1" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.21.7", + "base64 0.22.0", "serde", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -1732,6 +1866,26 @@ dependencies = [ "phf_shared 0.11.2", ] +[[package]] +name = "phf_codegen" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand", +] + [[package]] name = "phf_generator" version = "0.11.2" @@ -1748,7 +1902,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator", + "phf_generator 0.11.2", "phf_shared 0.11.2", "proc-macro2", "quote", @@ -1781,26 +1935,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.58", -] - [[package]] name = "pin-project-lite" version = "0.2.14" @@ -1813,27 +1947,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "powerfmt" version = "0.2.0" @@ -1931,9 +2044,9 @@ dependencies = [ [[package]] name = "quick_cache" -version = "0.4.2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1380629287ed1247c1e0fcc6d43efdcec508b65382c9ab775cc8f3df7ca07b0" +checksum = "eb55a1aa7668676bb93926cd4e9cdfe60f03bb866553bcca9112554911b6d3dc" dependencies = [ "ahash 0.8.11", "equivalent", @@ -2007,10 +2120,36 @@ dependencies = [ ] [[package]] -name = "reblessive" -version = "0.3.5" +name = "rawpointer" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4149deda5bd21e0f6ccaa2f907cd542541521dead5861bc51bebdf2af4acaf2a" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "reblessive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "568fde39e6aec674be99c9dd38b4c79040faf31038bd5a41ab1908db00c2319b" [[package]] name = "redox_syscall" @@ -2095,9 +2234,9 @@ dependencies = [ [[package]] name = "revision" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588784c1d9453cfd2ce1b7aff06c903513677cf0e63779a0a3085ee8a44f5b17" +checksum = "b98b99dba8f2787c9af2e46b17ff38437d213d46c8970b550e6b79b862bf7629" dependencies = [ "bincode", "chrono", @@ -2113,9 +2252,9 @@ dependencies = [ [[package]] name = "revision-derive" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854ff0b6794d4e0aab5e4486870941caefe9f258e63cad2f21b49a6302377c85" +checksum = "3721b4a8e52f9e52c54f74f482a4f550601f5c44cb7876606a2ab79cb09469c1" dependencies = [ "darling", "proc-macro-error", @@ -2124,21 +2263,6 @@ dependencies = [ "syn 2.0.58", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -2149,9 +2273,9 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys", + "spin", + "untrusted", + "windows-sys 0.52.0", ] [[package]] @@ -2194,6 +2318,17 @@ dependencies = [ "paste", ] +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + [[package]] name = "rmpv" version = "1.3.0" @@ -2221,26 +2356,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30" -[[package]] -name = "rsa" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core", - "signature", - "spki", - "subtle", - "zeroize", -] - [[package]] name = "rstar" version = "0.11.0" @@ -2303,6 +2418,19 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -2456,16 +2584,6 @@ dependencies = [ "digest", ] -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core", -] - [[package]] name = "simdutf8" version = "0.1.4" @@ -2554,12 +2672,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -2569,16 +2681,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -2621,6 +2723,19 @@ dependencies = [ "parking_lot", "phf_shared 0.10.0", "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", ] [[package]] @@ -2637,15 +2752,13 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "surrealdb" -version = "1.5.0" +version = "2.0.0" dependencies = [ "async-channel", "bincode", "chrono", "dmp", - "flume", "futures", - "futures-concurrency", "geo 0.27.0", "indexmap 2.2.6", "once_cell", @@ -2653,7 +2766,7 @@ dependencies = [ "pharos", "reblessive", "revision", - "ring 0.17.8", + "ring", "rust_decimal", "semver", "serde", @@ -2671,9 +2784,11 @@ dependencies = [ [[package]] name = "surrealdb-core" -version = "2.0.0-1.5.0" +version = "2.0.0" dependencies = [ "addr", + "ahash 0.8.11", + "ammonia", "any_ascii", "arbitrary", "argon2", @@ -2687,9 +2802,11 @@ dependencies = [ "cedar-policy", "chrono", "ciborium", + "dashmap", "deunicode", "dmp", "echodb", + "ext-sort", "fst", "futures", "fuzzy-matcher", @@ -2697,10 +2814,15 @@ dependencies = [ "geo-types", "hex", "ipnet", + "jsonwebtoken", "lexicmp", + "linfa-linalg", "md-5", "nanoid", + "ndarray", + "ndarray-stats", "nom", + "num-traits", "num_cpus", "object_store", "once_cell", @@ -2715,7 +2837,7 @@ dependencies = [ "regex", "regex-syntax", "revision", - "ring 0.17.8", + "ring", "rmpv", "roaring", "rust-stemmers", @@ -2729,7 +2851,7 @@ dependencies = [ "snap", "storekey", "surrealdb-derive", - "surrealdb-jsonwebtoken", + "tempfile", "thiserror", "tokio", "tracing", @@ -2764,25 +2886,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "surrealdb-jsonwebtoken" -version = "8.3.0-surreal.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d4f759c65df8a8cf2d83c99db7fdd3ae5b8fff05fa7fe69a8612f29dd5f99b" -dependencies = [ - "base64 0.21.7", - "getrandom", - "hmac", - "pem", - "rand", - "ring 0.16.20", - "rsa", - "serde", - "serde_json", - "sha2", - "simple_asn1", -] - [[package]] name = "syn" version = "1.0.109" @@ -2823,6 +2926,30 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + [[package]] name = "term" version = "0.7.0" @@ -2836,18 +2963,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.58" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", @@ -2921,22 +3048,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", - "num_cpus", "pin-project-lite", "tokio-macros", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", @@ -3078,12 +3204,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -3107,6 +3227,12 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "uuid" version = "1.8.0" @@ -3278,7 +3404,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.6", ] [[package]] @@ -3287,7 +3413,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -3307,17 +3442,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -3328,9 +3464,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -3340,9 +3476,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -3352,9 +3488,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -3364,9 +3506,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -3376,9 +3518,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -3388,9 +3530,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -3400,9 +3542,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml index d833cce9..9132f2c0 100644 --- a/supply-chain/audits.toml +++ b/supply-chain/audits.toml @@ -166,12 +166,6 @@ user-id = 145457 # Tobie Morgan Hitchcock (tobiemh) start = "2022-02-26" end = "2025-01-24" -[[trusted.surrealdb-jsonwebtoken]] -criteria = "safe-to-deploy" -user-id = 3987 # Rushmore Mushambi (rushmorem) -start = "2023-08-29" -end = "2025-01-24" - [[trusted.surrealdb-tikv-client]] criteria = "safe-to-deploy" user-id = 217605 # Yusuke Kuoka (mumoshu) diff --git a/supply-chain/config.toml b/supply-chain/config.toml index a52a2973..e50bd87b 100644 --- a/supply-chain/config.toml +++ b/supply-chain/config.toml @@ -411,10 +411,6 @@ criteria = "safe-to-deploy" version = "0.1.7" criteria = "safe-to-deploy" -[[exemptions.const-oid]] -version = "0.9.6" -criteria = "safe-to-deploy" - [[exemptions.convert_case]] version = "0.6.0" criteria = "safe-to-deploy" @@ -503,10 +499,6 @@ criteria = "safe-to-run" version = "0.1.3" criteria = "safe-to-run" -[[exemptions.der]] -version = "0.7.9" -criteria = "safe-to-deploy" - [[exemptions.deunicode]] version = "1.4.3" criteria = "safe-to-deploy" @@ -833,7 +825,7 @@ criteria = "safe-to-deploy" [[exemptions.jsonwebtoken]] version = "9.3.0" -criteria = "safe-to-run" +criteria = "safe-to-deploy" [[exemptions.lalrpop]] version = "0.20.2" @@ -1007,10 +999,6 @@ criteria = "safe-to-deploy" version = "0.2.0" criteria = "safe-to-deploy" -[[exemptions.num-bigint-dig]] -version = "0.8.4" -criteria = "safe-to-deploy" - [[exemptions.num-complex]] version = "0.4.5" criteria = "safe-to-deploy" @@ -1099,16 +1087,8 @@ criteria = "safe-to-deploy" version = "0.2.9" criteria = "safe-to-deploy" -[[exemptions.pem]] -version = "2.0.1" -criteria = "safe-to-deploy" - [[exemptions.pem]] version = "3.0.3" -criteria = "safe-to-run" - -[[exemptions.pem-rfc7468]] -version = "0.7.0" criteria = "safe-to-deploy" [[exemptions.petgraph]] @@ -1151,14 +1131,6 @@ criteria = "safe-to-deploy" version = "1.1.5" criteria = "safe-to-deploy" -[[exemptions.pkcs1]] -version = "0.7.5" -criteria = "safe-to-deploy" - -[[exemptions.pkcs8]] -version = "0.10.2" -criteria = "safe-to-deploy" - [[exemptions.plotters]] version = "0.3.5" criteria = "safe-to-deploy" @@ -1357,7 +1329,7 @@ criteria = "safe-to-deploy" [[exemptions.ring]] version = "0.16.20" -criteria = "safe-to-deploy" +criteria = "safe-to-run" [[exemptions.ring]] version = "0.17.8" @@ -1423,10 +1395,6 @@ criteria = "safe-to-deploy" version = "0.6.2" criteria = "safe-to-deploy" -[[exemptions.rsa]] -version = "0.9.6" -criteria = "safe-to-deploy" - [[exemptions.rstar]] version = "0.11.0" criteria = "safe-to-deploy" @@ -1629,16 +1597,12 @@ criteria = "safe-to-deploy" [[exemptions.spin]] version = "0.5.2" -criteria = "safe-to-deploy" +criteria = "safe-to-run" [[exemptions.spin]] version = "0.9.8" criteria = "safe-to-deploy" -[[exemptions.spki]] -version = "0.7.3" -criteria = "safe-to-deploy" - [[exemptions.stable-pattern]] version = "0.1.0" criteria = "safe-to-deploy" diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock index d2474016..36075e99 100644 --- a/supply-chain/imports.lock +++ b/supply-chain/imports.lock @@ -268,13 +268,6 @@ user-id = 145457 user-login = "tobiemh" user-name = "Tobie Morgan Hitchcock" -[[publisher.surrealdb-jsonwebtoken]] -version = "8.3.0-surreal.1" -when = "2023-08-29" -user-id = 3987 -user-login = "rushmorem" -user-name = "Rushmore Mushambi" - [[publisher.surrealdb-tikv-client]] version = "0.3.0-surreal.1" when = "2024-06-24" @@ -1183,11 +1176,6 @@ who = "David Cook " criteria = "safe-to-deploy" delta = "0.1.45 -> 0.1.46" -[[audits.isrg.audits.num-iter]] -who = "David Cook " -criteria = "safe-to-deploy" -delta = "0.1.43 -> 0.1.44" - [[audits.isrg.audits.num-traits]] who = "David Cook " criteria = "safe-to-deploy" @@ -1598,13 +1586,6 @@ version = "0.1.45" notes = "All code written or reviewed by Josh Stone." aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" -[[audits.mozilla.audits.num-iter]] -who = "Josh Stone " -criteria = "safe-to-deploy" -version = "0.1.43" -notes = "All code written or reviewed by Josh Stone." -aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" - [[audits.mozilla.audits.num-traits]] who = "Josh Stone " criteria = "safe-to-deploy" @@ -2116,22 +2097,6 @@ delta = "0.1.4 -> 0.1.7" notes = "Only change to an `unsafe` block is to fix a clippy lint." aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" -[[audits.zcash.audits.signature]] -who = "Daira Emma Hopwood " -criteria = "safe-to-deploy" -version = "2.1.0" -notes = """ -This crate uses `#![forbid(unsafe_code)]`, has no build script, and only provides traits with some trivial default implementations. -I did not review whether implementing these APIs would present any undocumented cryptographic hazards. -""" -aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" - -[[audits.zcash.audits.signature]] -who = "Jack Grigg " -criteria = "safe-to-deploy" -delta = "2.1.0 -> 2.2.0" -aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" - [[audits.zcash.audits.thiserror]] who = "Jack Grigg " criteria = "safe-to-deploy"