diff --git a/Cargo.lock b/Cargo.lock index affe26d..b00da97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" @@ -129,15 +129,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - [[package]] name = "borrow-or-share" version = "0.2.2" @@ -168,9 +159,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "cc" -version = "1.2.18" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "shlex", ] @@ -262,53 +253,17 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" - [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "displaydoc" @@ -385,16 +340,6 @@ dependencies = [ "num", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -448,21 +393,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "iana-time-zone" version = "0.1.63" @@ -693,9 +623,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "litemap" @@ -719,16 +649,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" version = "2.7.4" @@ -1104,14 +1024,10 @@ dependencies = [ "chrono", "chrono-tz", "clap", - "constant_time_eq", "data-encoding", "globset", - "hex", - "hmac", "jsonschema", "lazy_static", - "md-5", "prettydiff", "rand 0.9.0", "regex", @@ -1120,7 +1036,6 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha2", "test-generator", "url", "uuid", @@ -1225,17 +1140,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "shlex" version = "1.3.0" @@ -1272,12 +1176,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "0.15.44" @@ -1333,12 +1231,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - [[package]] name = "unicode-ident" version = "1.0.18" diff --git a/Cargo.toml b/Cargo.toml index 27d2cb1..661da7d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,8 +26,6 @@ ast = [] base64 = ["dep:data-encoding"] base64url = ["dep:data-encoding"] coverage = [] -crypto = ["dep:constant_time_eq", "dep:hmac", "dep:hex", "dep:md-5", "dep:sha2"] -deprecated = [] hex = ["dep:data-encoding"] http = [] glob = ["dep:globset"] @@ -46,8 +44,6 @@ full-opa = [ "base64", "base64url", "coverage", - "crypto", - "deprecated", "glob", "graph", "hex", @@ -72,8 +68,6 @@ opa-no-std = [ "base64", "base64url", "coverage", - "crypto", - "deprecated", "graph", "hex", "no_std", @@ -97,13 +91,6 @@ serde = {version = "1.0.150", default-features = false, features = ["derive", "r serde_json = { version = "1.0.89", default-features = false, features = ["alloc"] } lazy_static = { version = "1.4.0", default-features = false } -# Crypto -constant_time_eq = {version = "0.4.0", optional = true, default-features = false } -hmac = {version = "0.12.1", optional = true, default-features = false} -sha2 = {version= "0.10.8", optional = true, default-features = false } -hex = {version = "0.4.3", optional = true, default-features = false, features = ["alloc"] } -md-5 = {version = "0.10.6", optional = true, default-features = false } - data-encoding = { version = "2.8.0", optional = true, default-features=false, features = ["alloc"] } scientific = { version = "0.5.3" } diff --git a/README.md b/README.md index 0b7f062..3d8c1f5 100644 --- a/README.md +++ b/README.md @@ -288,12 +288,6 @@ Currently, Regorus passes all the non-builtin specific tests. See [passing tests suites](https://github.com/microsoft/regorus/blob/main/tests/opa.passing). The following test suites don't pass fully due to missing builtins: -- `cryptoparsersaprivatekeys` -- `cryptox509parseandverifycertificates` -- `cryptox509parsecertificaterequest` -- `cryptox509parsecertificates` -- `cryptox509parsekeypair` -- `cryptox509parsersaprivatekey` - `globsmatch` - `graphql` - `invalidkeyerror` @@ -324,7 +318,7 @@ The following test suites don't pass fully due to missing builtins: They are captured in the following [github issues](https://github.com/microsoft/regorus/issues?q=is%3Aopen+is%3Aissue+label%3Alib). -Cryptographically insecure `sha1` related builtins are intentionally not supported to discourage their use. +Cryptographic builtins are not supported by design. Users that need cryptographic builtins are encouraged to use [extensions](https://docs.rs/regorus/latest/regorus/struct.Engine.html#method.add_extension). ### Grammar diff --git a/bindings/ffi/Cargo.lock b/bindings/ffi/Cargo.lock index ba54c66..7419dfc 100644 --- a/bindings/ffi/Cargo.lock +++ b/bindings/ffi/Cargo.lock @@ -92,9 +92,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" @@ -129,15 +129,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - [[package]] name = "borrow-or-share" version = "0.2.2" @@ -187,9 +178,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.18" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "shlex", ] @@ -237,18 +228,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.35" +version = "4.5.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "2df961d8c8a0d08aa9945718ccf584145eee3f3aa06cddbeac12933781102e04" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "132dbda40fb6753878316a489d5a1242a8ef2f0d9e47ba01c951ea8aa7d013a5" dependencies = [ "anstream", "anstyle", @@ -268,37 +259,12 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" - [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "csbindgen" version = "1.9.3" @@ -311,20 +277,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "displaydoc" @@ -409,16 +364,6 @@ dependencies = [ "num", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -466,21 +411,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "iana-time-zone" version = "0.1.63" @@ -708,15 +638,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -740,16 +670,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" version = "2.7.4" @@ -1080,14 +1000,10 @@ dependencies = [ "anyhow", "chrono", "chrono-tz", - "constant_time_eq", "data-encoding", "globset", - "hex", - "hmac", "jsonschema", "lazy_static", - "md-5", "rand 0.9.0", "regex", "scientific", @@ -1095,7 +1011,6 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha2", "url", "uuid", ] @@ -1222,17 +1137,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "shlex" version = "1.3.0" @@ -1263,12 +1167,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "2.0.100" @@ -1348,12 +1246,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - [[package]] name = "unicode-ident" version = "1.0.18" diff --git a/bindings/java/Cargo.lock b/bindings/java/Cargo.lock index ec6e9ea..b0038c3 100644 --- a/bindings/java/Cargo.lock +++ b/bindings/java/Cargo.lock @@ -42,9 +42,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" @@ -79,15 +79,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - [[package]] name = "borrow-or-share" version = "0.2.2" @@ -124,9 +115,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.18" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "shlex", ] @@ -188,53 +179,17 @@ dependencies = [ "memchr", ] -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" - [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "displaydoc" @@ -303,16 +258,6 @@ dependencies = [ "num", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -354,21 +299,6 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "iana-time-zone" version = "0.1.63" @@ -612,9 +542,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "litemap" @@ -638,16 +568,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" version = "2.7.4" @@ -978,14 +898,10 @@ dependencies = [ "anyhow", "chrono", "chrono-tz", - "constant_time_eq", "data-encoding", "globset", - "hex", - "hmac", "jsonschema", "lazy_static", - "md-5", "rand 0.9.0", "regex", "scientific", @@ -993,7 +909,6 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha2", "url", "uuid", ] @@ -1106,17 +1021,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "shlex" version = "1.3.0" @@ -1141,12 +1045,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "2.0.100" @@ -1199,12 +1097,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - [[package]] name = "unicode-ident" version = "1.0.18" diff --git a/bindings/python/Cargo.lock b/bindings/python/Cargo.lock index 8c3e97e..9543827 100644 --- a/bindings/python/Cargo.lock +++ b/bindings/python/Cargo.lock @@ -42,9 +42,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" @@ -79,21 +79,22 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - [[package]] name = "borrow-or-share" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eeab4423108c5d7c744f4d234de88d18d636100093ae04caf4825134b9c3a32" +[[package]] +name = "bstr" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "bumpalo" version = "3.17.0" @@ -108,9 +109,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "cc" -version = "1.2.17" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "shlex", ] @@ -156,73 +157,17 @@ dependencies = [ "phf_codegen", ] -[[package]] -name = "const_format" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" - [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "displaydoc" @@ -235,12 +180,6 @@ dependencies = [ "syn", ] -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - [[package]] name = "email_address" version = "0.2.9" @@ -297,16 +236,6 @@ dependencies = [ "num", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -330,6 +259,18 @@ dependencies = [ "wasi 0.14.2+wasi-0.2.4", ] +[[package]] +name = "globset" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" +dependencies = [ + "aho-corasick", + "bstr", + "regex-automata", + "regex-syntax", +] + [[package]] name = "hashbrown" version = "0.15.2" @@ -342,26 +283,11 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "iana-time-zone" -version = "0.1.62" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2fd658b06e56721792c5df4475705b6cda790e9298d19d2f8af083457bcd127" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -522,9 +448,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown", @@ -536,15 +462,6 @@ version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.15" @@ -593,9 +510,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "litemap" @@ -619,16 +536,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" version = "2.7.4" @@ -644,22 +551,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "num" version = "0.4.3" @@ -836,15 +727,6 @@ dependencies = [ "siphasher", ] -[[package]] -name = "pori" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a63d338dec139f56dacc692ca63ad35a6be6a797442479b55acd611d79e906" -dependencies = [ - "nom", -] - [[package]] name = "portable-atomic" version = "1.11.0" @@ -995,9 +877,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ "bitflags", ] @@ -1072,13 +954,10 @@ dependencies = [ "anyhow", "chrono", "chrono-tz", - "constant_time_eq", "data-encoding", - "hex", - "hmac", + "globset", "jsonschema", "lazy_static", - "md-5", "rand 0.9.0", "regex", "scientific", @@ -1086,15 +965,13 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha2", "url", "uuid", - "wax", ] [[package]] name = "regoruspy" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "ordered-float", @@ -1192,17 +1069,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "shlex" version = "1.3.0" @@ -1217,9 +1083,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" [[package]] name = "stable_deref_trait" @@ -1227,12 +1093,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "2.0.100" @@ -1261,26 +1121,6 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "tinystr" version = "0.7.6" @@ -1291,24 +1131,12 @@ dependencies = [ "zerovec", ] -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - [[package]] name = "unicode-ident" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "unindent" version = "0.2.4" @@ -1451,26 +1279,38 @@ dependencies = [ ] [[package]] -name = "wax" -version = "0.6.0" +name = "windows-core" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d12a78aa0bab22d2f26ed1a96df7ab58e8a93506a3e20adb47c51a93b4e1357" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" dependencies = [ - "const_format", - "itertools", - "nom", - "pori", - "regex", - "thiserror", + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] -name = "windows-core" -version = "0.52.0" +name = "windows-implement" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ - "windows-targets", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1479,6 +1319,24 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-result" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.52.6" diff --git a/bindings/wasm/Cargo.lock b/bindings/wasm/Cargo.lock index 3050414..d85a9a8 100644 --- a/bindings/wasm/Cargo.lock +++ b/bindings/wasm/Cargo.lock @@ -42,9 +42,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" @@ -79,15 +79,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - [[package]] name = "borrow-or-share" version = "0.2.2" @@ -118,9 +109,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "cc" -version = "1.2.18" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "shlex", ] @@ -166,53 +157,17 @@ dependencies = [ "phf_codegen", ] -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" - [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "displaydoc" @@ -281,16 +236,6 @@ dependencies = [ "num", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -336,21 +281,6 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "iana-time-zone" version = "0.1.63" @@ -572,9 +502,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "litemap" @@ -598,16 +528,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" version = "2.7.4" @@ -948,14 +868,10 @@ dependencies = [ "anyhow", "chrono", "chrono-tz", - "constant_time_eq", "data-encoding", "globset", - "hex", - "hmac", "jsonschema", "lazy_static", - "md-5", "rand 0.9.0", "regex", "scientific", @@ -963,7 +879,6 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha2", "url", "uuid", ] @@ -1079,17 +994,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "shlex" version = "1.3.0" @@ -1114,12 +1018,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "2.0.100" @@ -1152,12 +1050,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - [[package]] name = "unicode-ident" version = "1.0.18" diff --git a/src/builtins/crypto.rs b/src/builtins/crypto.rs deleted file mode 100644 index d0abd8e..0000000 --- a/src/builtins/crypto.rs +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -use crate::ast::{Expr, Ref}; -use crate::builtins; -use crate::builtins::utils::{ensure_args_count, ensure_string}; -use crate::lexer::Span; -use crate::value::Value; - -use anyhow::{bail, Result}; -use constant_time_eq::constant_time_eq; -use hmac::{Hmac, Mac}; -use md5::{Digest, Md5}; -use sha2::{Sha256, Sha512}; - -pub fn register(m: &mut builtins::BuiltinsMap<&'static str, builtins::BuiltinFcn>) { - m.insert("crypto.hmac.equal", (hmac_equal_fixed_time, 2)); - m.insert("crypto.hmac.md5", (hmac_md5, 2)); - m.insert("crypto.hmac.sha256", (hmac_sha256, 2)); - m.insert("crypto.hmac.sha512", (hmac_sha512, 2)); - - m.insert("crypto.md5", (crypto_md5, 1)); - m.insert("crypto.sha256", (crypto_sha256, 1)); -} - -fn hmac_equal_fixed_time( - span: &Span, - params: &[Ref], - args: &[Value], - _strict: bool, -) -> Result { - let name = "crypto.hmac.equal"; - ensure_args_count(span, name, params, args, 2)?; - - let hmac1 = ensure_string(name, ¶ms[0], &args[0])?; - let hmac2 = ensure_string(name, ¶ms[1], &args[1])?; - - Ok(Value::Bool(constant_time_eq( - hmac1.as_bytes(), - hmac2.as_bytes(), - ))) -} - -fn hmac_md5(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Result { - let name = "crypto.hmac.md5"; - ensure_args_count(span, name, params, args, 2)?; - - let x = ensure_string(name, ¶ms[0], &args[0])?; - let key = ensure_string(name, ¶ms[1], &args[1])?; - - let mut hmac = Hmac::::new_from_slice(key.as_bytes()) - .or_else(|_| bail!(span.error("failed to create hmac instance")))?; - - hmac.update(x.as_bytes()); - let result = hmac.finalize(); - - Ok(Value::String(hex::encode(result.into_bytes()).into())) -} - -fn hmac_sha256(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Result { - let name = "crypto.hmac.sha256"; - ensure_args_count(span, name, params, args, 2)?; - - let x = ensure_string(name, ¶ms[0], &args[0])?; - let key = ensure_string(name, ¶ms[1], &args[1])?; - - let mut hmac = Hmac::::new_from_slice(key.as_bytes()) - .or_else(|_| bail!(span.error("failed to create hmac instance")))?; - - hmac.update(x.as_bytes()); - let result = hmac.finalize(); - - Ok(Value::String(hex::encode(result.into_bytes()).into())) -} - -fn hmac_sha512(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Result { - let name = "crypto.hmac.sha512"; - ensure_args_count(span, name, params, args, 2)?; - - let x = ensure_string(name, ¶ms[0], &args[0])?; - let key = ensure_string(name, ¶ms[1], &args[1])?; - - let mut hmac = Hmac::::new_from_slice(key.as_bytes()) - .or_else(|_| bail!(span.error("failed to create hmac instance")))?; - - hmac.update(x.as_bytes()); - let result = hmac.finalize(); - - Ok(Value::String(hex::encode(result.into_bytes()).into())) -} - -fn crypto_md5(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Result { - let name = "crypto.md5"; - ensure_args_count(span, name, params, args, 1)?; - - let x = ensure_string(name, ¶ms[0], &args[0])?; - - let mut h = Md5::new(); - - h.update(x.as_bytes()); - let result = h.finalize(); - - Ok(Value::String(hex::encode(result).into())) -} - -fn crypto_sha256( - span: &Span, - params: &[Ref], - args: &[Value], - _strict: bool, -) -> Result { - let name = "crypto.sha256"; - ensure_args_count(span, name, params, args, 1)?; - - let x = ensure_string(name, ¶ms[0], &args[0])?; - - let mut h = Sha256::new(); - - h.update(x.as_bytes()); - let result = h.finalize(); - - Ok(Value::String(hex::encode(result).into())) -} diff --git a/src/builtins/deprecated.rs b/src/builtins/deprecated.rs deleted file mode 100644 index 78a8757..0000000 --- a/src/builtins/deprecated.rs +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -use crate::ast::{Expr, Ref}; -use crate::builtins; -use crate::builtins::utils::{ensure_args_count, ensure_set}; -use crate::builtins::BuiltinFcn; -use crate::lexer::Span; -use crate::value::Value; -use crate::*; - -use anyhow::{bail, Result}; -use lazy_static::lazy_static; - -#[cfg(feature = "regex")] -use crate::builtins::regex::regex_match; - -#[rustfmt::skip] -lazy_static! { - pub static ref DEPRECATED: builtins::BuiltinsMap<&'static str, BuiltinFcn> = { - let mut m : builtins::BuiltinsMap<&'static str, BuiltinFcn> = builtins::BuiltinsMap::new(); - - m.insert("all", (all, 1)); - m.insert("any", (any, 1)); - m.insert("cast_array", (cast_array, 1)); - m.insert("cast_boolean", (cast_boolean, 1)); - m.insert("cast_null", (cast_null, 1)); - m.insert("cast_object", (cast_object, 1)); - m.insert("cast_set", (cast_set, 1)); - m.insert("cast_string", (cast_string, 1)); - m.insert("set_diff", (set_diff, 2)); - - #[cfg(feature = "regex")] - m.insert("re_match", (regex_match, 2)); - m - }; -} - -fn all(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Result { - ensure_args_count(span, "all", params, args, 1)?; - - Ok(Value::Bool(match &args[0] { - Value::Array(a) => a.iter().all(|i| i == &Value::Bool(true)), - Value::Set(a) => a.iter().all(|i| i == &Value::Bool(true)), - a => { - let span = params[0].span(); - bail!(span.error(format!("`all` requires array/set argument. Got `{a}`.").as_str())) - } - })) -} - -fn any(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Result { - ensure_args_count(span, "any", params, args, 1)?; - - Ok(Value::Bool(match &args[0] { - Value::Array(a) => a.iter().any(|i| i == &Value::Bool(true)), - Value::Set(a) => a.iter().any(|i| i == &Value::Bool(true)), - a => { - let span = params[0].span(); - bail!(span.error(format!("`any` requires array/set argument. Got `{a}`.").as_str())) - } - })) -} - -fn set_diff(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Result { - let name = "set_diff"; - ensure_args_count(span, name, params, args, 2)?; - let s1 = ensure_set(name, ¶ms[0], args[0].clone())?; - let s2 = ensure_set(name, ¶ms[1], args[1].clone())?; - Ok(Value::from_set(s1.difference(&s2).cloned().collect())) -} - -fn cast_array(span: &Span, params: &[Ref], args: &[Value], strict: bool) -> Result { - let name = "cast_array"; - ensure_args_count(span, name, params, args, 1)?; - match &args[0] { - Value::Array(_) => Ok(args[0].clone()), - Value::Set(s) => Ok(Value::from_array(s.iter().cloned().collect())), - _ if strict => bail!(params[0].span().error("array required")), - _ => Ok(Value::Undefined), - } -} - -fn cast_boolean(span: &Span, params: &[Ref], args: &[Value], strict: bool) -> Result { - let name = "cast_boolean"; - ensure_args_count(span, name, params, args, 1)?; - match &args[0] { - Value::Bool(_) => Ok(args[0].clone()), - _ if strict => bail!(params[0].span().error("boolean required")), - _ => Ok(Value::Undefined), - } -} - -fn cast_null(span: &Span, params: &[Ref], args: &[Value], strict: bool) -> Result { - let name = "cast_null"; - ensure_args_count(span, name, params, args, 1)?; - match &args[0] { - Value::Null => Ok(Value::Null), - _ if strict => bail!(params[0].span().error("null required")), - _ => Ok(Value::Undefined), - } -} - -fn cast_object(span: &Span, params: &[Ref], args: &[Value], strict: bool) -> Result { - let name = "cast_object"; - ensure_args_count(span, name, params, args, 1)?; - match &args[0] { - Value::Object(_) => Ok(args[0].clone()), - _ if strict => bail!(params[0].span().error("object required")), - _ => Ok(Value::Undefined), - } -} - -fn cast_set(span: &Span, params: &[Ref], args: &[Value], strict: bool) -> Result { - let name = "cast_set"; - ensure_args_count(span, name, params, args, 1)?; - match &args[0] { - Value::Set(_) => Ok(args[0].clone()), - Value::Array(a) => Ok(Value::from_set(a.iter().cloned().collect())), - _ if strict => bail!(params[0].span().error("set required")), - _ => Ok(Value::Undefined), - } -} - -fn cast_string(span: &Span, params: &[Ref], args: &[Value], strict: bool) -> Result { - let name = "cast_string"; - ensure_args_count(span, name, params, args, 1)?; - match &args[0] { - Value::String(_) => Ok(args[0].clone()), - _ if strict => bail!(params[0].span().error("string required")), - _ => Ok(Value::Undefined), - } -} diff --git a/src/builtins/mod.rs b/src/builtins/mod.rs index 5b984f1..73a8c4e 100644 --- a/src/builtins/mod.rs +++ b/src/builtins/mod.rs @@ -7,10 +7,6 @@ mod bitwise; pub mod comparison; mod conversions; -#[cfg(feature = "crypto")] -mod crypto; -#[cfg(feature = "deprecated")] -pub mod deprecated; mod encoding; #[cfg(feature = "glob")] mod glob; @@ -51,14 +47,11 @@ use lazy_static::lazy_static; pub type BuiltinFcn = (fn(&Span, &[Ref], &[Value], bool) -> Result, u8); -#[cfg(feature = "deprecated")] -pub use deprecated::DEPRECATED; - #[rustfmt::skip] lazy_static! { pub static ref BUILTINS: BuiltinsMap<&'static str, BuiltinFcn> = { let mut m : BuiltinsMap<&'static str, BuiltinFcn> = BuiltinsMap::new(); - + // comparison functions are directly called. numbers::register(&mut m); aggregates::register(&mut m); @@ -66,16 +59,16 @@ lazy_static! { sets::register(&mut m); objects::register(&mut m); strings::register(&mut m); - + #[cfg(feature = "regex")] regex::register(&mut m); - + #[cfg(feature = "glob")] glob::register(&mut m); - + #[cfg(feature = "graph")] graph::register(&mut m); - + bitwise::register(&mut m); conversions::register(&mut m); //units::register(&mut m); @@ -84,8 +77,6 @@ lazy_static! { #[cfg(feature = "time")] time::register(&mut m); - #[cfg(feature = "crypto")] - crypto::register(&mut m); //graphql::register(&mut m); #[cfg(feature = "http")] http::register(&mut m); diff --git a/src/builtins/opa.rs b/src/builtins/opa.rs index 56acca5..3f7ed93 100644 --- a/src/builtins/opa.rs +++ b/src/builtins/opa.rs @@ -55,10 +55,6 @@ fn opa_runtime(span: &Span, params: &[Ref], args: &[Value], _strict: bool) "base64", #[cfg(feature = "base64url")] "base64url", - #[cfg(feature = "crypto")] - "crypto", - #[cfg(feature = "deprecated")] - "deprecated", #[cfg(feature = "glob")] "glob", #[cfg(feature = "graph")] @@ -110,21 +106,5 @@ fn opa_runtime(span: &Span, params: &[Ref], args: &[Value], _strict: bool) ), ); - #[cfg(feature = "deprecated")] - { - let mut deprecated: Vec<&&str> = builtins::deprecated::DEPRECATED.keys().collect(); - deprecated.sort(); - - obj.insert( - Value::String("deprecated".into()), - Value::from_array( - deprecated - .iter() - .map(|f| Value::String(f.to_string().into())) - .collect(), - ), - ); - } - Ok(Value::from_map(obj)) } diff --git a/src/interpreter.rs b/src/interpreter.rs index 5367434..9f02ec0 100644 --- a/src/interpreter.rs +++ b/src/interpreter.rs @@ -61,8 +61,6 @@ pub struct Interpreter { builtins_cache: BTreeMap<(&'static str, Vec), Value>, no_rules_lookup: bool, traces: Option>>, - #[cfg(feature = "deprecated")] - allow_deprecated: bool, strict_builtin_errors: bool, imports: BTreeMap>, extensions: Map>)>, @@ -187,8 +185,6 @@ impl Interpreter { builtins_cache: BTreeMap::new(), no_rules_lookup: false, traces: None, - #[cfg(feature = "deprecated")] - allow_deprecated: true, strict_builtin_errors: true, imports: BTreeMap::default(), extensions: Map::new(), @@ -2175,16 +2171,6 @@ impl Interpreter { if let Some(builtin) = builtins::BUILTINS.get(path) { return Ok(Some(builtin)); } - - #[cfg(feature = "deprecated")] - if let Some(builtin) = builtins::DEPRECATED.get(path) { - let allow = self.allow_deprecated && !self.current_module()?.rego_v1; - if !allow { - bail!(span.error(format!("{path} is deprecated").as_str())) - } - return Ok(Some(builtin)); - } - Ok(None) } diff --git a/src/scheduler.rs b/src/scheduler.rs index 2893afe..f80c77d 100644 --- a/src/scheduler.rs +++ b/src/scheduler.rs @@ -646,8 +646,6 @@ impl Analyzer { ) -> Result<(Vec, Vec>)> { let mut used_vars = vec![]; let mut comprs = vec![]; - #[cfg(feature = "deprecated")] - let full_expr = expr; traverse(expr, &mut |e| match e.as_ref() { Var(v) if !matches!(v.0.text(), "_" | "input" | "data") => { let name = v.0.source_str(); @@ -664,17 +662,6 @@ impl Analyzer { first_use.entry(name).or_insert(v.0.clone()); } } else if !scope.inputs.contains(&name) { - #[cfg(feature = "deprecated")] - { - if let Ok(path) = get_path_string(full_expr, None) { - if crate::builtins::BUILTINS.contains_key(path.as_str()) - || crate::builtins::deprecated::DEPRECATED - .contains_key(path.as_str()) - { - return Ok(false); - } - } - } bail!(v .0 .error(format!("use of undefined variable `{name}` is unsafe").as_str())); diff --git a/src/utils.rs b/src/utils.rs index afdf8f0..c60c7fb 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -56,13 +56,6 @@ fn get_extra_arg_impl( } else if let Some((_, n_args)) = BUILTINS.get(path.as_str()) { *n_args } else { - #[cfg(feature = "deprecated")] - if let Some((_, n_args)) = DEPRECATED.get(path.as_str()) { - *n_args - } else { - return Ok(None); - } - #[cfg(not(feature = "deprecated"))] return Ok(None); } }; diff --git a/tests/interpreter/cases/rego.v1/tests.yaml b/tests/interpreter/cases/rego.v1/tests.yaml index cda632d..c4c6950 100644 --- a/tests/interpreter/cases/rego.v1/tests.yaml +++ b/tests/interpreter/cases/rego.v1/tests.yaml @@ -456,18 +456,6 @@ cases: query: data.test error: data cannot be shadowed - - note: deprecated-function - data: {} - modules: - - | - package test - x { - cast_array([1]) - } - query: data.test - want_result: - x: true - - note: invalid-deprecated-function data: {} modules: @@ -478,4 +466,4 @@ cases: cast_array([1]) } query: data.test - error: is deprecated + error: could not find function cast_array diff --git a/tests/opa.passing b/tests/opa.passing index ee212a1..170c0a8 100644 --- a/tests/opa.passing +++ b/tests/opa.passing @@ -1,6 +1,4 @@ v0/aggregates -v0/all -v0/any v0/arithmetic v0/array v0/assignments @@ -13,19 +11,12 @@ v0/bitsor v0/bitsshiftleft v0/bitsshiftright v0/bitsxor -v0/casts v0/comparisonexpr v0/completedoc v0/compositebasedereference v0/compositereferences v0/comprehensions v0/containskeyword -v0/cryptohmacequal -v0/cryptohmacmd5 -v0/cryptohmacsha256 -v0/cryptohmacsha512 -v0/cryptomd5 -v0/cryptosha256 v0/dataderef v0/defaultkeyword v0/disjunction @@ -88,9 +79,7 @@ v0/sets v0/sprintf v0/strings v0/subset -v0/toarray v0/topdowndynamicdispatch -v0/toset v0/time v0/trim v0/trimleft @@ -132,12 +121,6 @@ v1/compositebasedereference v1/compositereferences v1/comprehensions v1/containskeyword -v1/cryptohmacequal -v1/cryptohmacmd5 -v1/cryptohmacsha256 -v1/cryptohmacsha512 -v1/cryptomd5 -v1/cryptosha256 v1/dataderef v1/defaultkeyword v1/disjunction @@ -221,4 +204,4 @@ v1/uuid v1/varreferences v1/virtualdocs v1/walkbuiltin -v1/withkeyword +v1/withkeyword \ No newline at end of file diff --git a/tests/opa.rs b/tests/opa.rs index 7595a7d..8f25f7a 100644 --- a/tests/opa.rs +++ b/tests/opa.rs @@ -214,6 +214,32 @@ fn run_opa_tests(opa_tests_dir: String, folders: &[String]) -> Result<()> { // Mocks non-existent jwt builtin. println!("skipping mock test for io.jwt.decode_verify: {}", case.note); continue; + } else { + let tests_with_unsupported_builtins = ["jsonbuiltins/yaml round-trip"]; + if tests_with_unsupported_builtins.contains(&case.note.as_str()) { + // The test expects unsupported built-in to be called. + println!("skipping test using unsupported builtins: {}", case.note); + continue; + } + + let tests_with_deprecated_builtins = [ + "regexmatch/re_match: ref", + "regexmatch/re_match: raw", + "regexmatch/re_match: raw: undefined", + "regexmatch/re_match", + "regexmatch/re_match: undefined", + "sets/set_diff: refs", + "withkeyword/builtin: http.send example", + "withkeyword/builtin-builtin: arity 1, replacement is simple", + "withkeyword/function: direct call, built-in replacement, arity 1, result captured", + "withkeyword/builtin-builtin: arity 1, replacement is compound", + "withkeyword/function: direct call, built-in replacement, arity 1", + ]; + if tests_with_deprecated_builtins.contains(&case.note.as_str()) { + // The test expects deprecated built-in to be called. + println!("skipping test using deprecated builtins: {}", case.note); + continue; + } } // Normalize for comparison.