diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml index 92251e6d..316890a5 100644 --- a/.github/workflows/github-actions.yml +++ b/.github/workflows/github-actions.yml @@ -26,7 +26,7 @@ jobs: run: 'cargo +nightly fmt --all -- --check' - name: 'Clippy' - run: 'cargo clippy -- -D warnings' + run: 'cargo clippy --all-targets -- -D warnings' - name: 'Tests' run: 'cargo test' diff --git a/Cargo.lock b/Cargo.lock index a204e127..9b8063cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -72,7 +72,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -82,7 +82,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -128,9 +128,9 @@ dependencies = [ [[package]] name = "base16ct" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" @@ -140,9 +140,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" [[package]] name = "base64ct" @@ -152,11 +158,11 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bcrypt" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9df288bec72232f78c1ec5fe4e8f1d108aa0265476e93097593c803c8c02062a" +checksum = "e65938ed058ef47d92cf8b346cc76ef48984572ade631927e9937b5ffc7662c7" dependencies = [ - "base64 0.21.5", + "base64 0.22.0", "blowfish", "getrandom", "subtle", @@ -189,15 +195,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "block-buffer" @@ -208,6 +208,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.11.0-pre.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded684142010808eb980d9974ef794da2bcf97d13396143b1515e9f0fb4a10e" +dependencies = [ + "crypto-common 0.2.0-pre.5", +] + [[package]] name = "block-padding" version = "0.3.3" @@ -235,9 +244,9 @@ checksum = "cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9" [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byteorder" @@ -262,12 +271,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" [[package]] name = "cfg-if" @@ -281,7 +287,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "inout", ] @@ -303,30 +309,30 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.7.1" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-oid" -version = "0.9.6" +version = "0.10.0-pre.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "f7e3352a27098ba6b09546e5f13b15165e6a88b5c2723afecb3ea9576b27e3ea" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] @@ -337,68 +343,86 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17d88231face754cdb045c1b65912a0f4ff78ca24bf371e30a4a8cfa993b3897" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", ] [[package]] name = "crypto-bigint" -version = "0.3.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", + "rand_core 0.6.4", "subtle", + "zeroize", ] [[package]] -name = "crypto-bigint" -version = "0.4.9" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core", - "subtle", - "zeroize", + "typenum", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.2.0-pre.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "b7aa2ec04f5120b830272a481e8d9d8ba4dda140d2cda59b0f1110d5eb93c38e" dependencies = [ - "generic-array", - "typenum", + "getrandom", + "hybrid-array", + "rand_core 0.6.4", ] [[package]] -name = "der" -version = "0.5.1" +name = "curve25519-dalek" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ - "const-oid 0.7.1", - "crypto-bigint 0.3.2", - "pem-rfc7468 0.3.1", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", ] [[package]] name = "der" -version = "0.6.1" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid 0.9.6", - "pem-rfc7468 0.6.0", + "pem-rfc7468", "zeroize", ] [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] @@ -418,41 +442,78 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", "const-oid 0.9.6", - "crypto-common", + "crypto-common 0.1.6", "subtle", ] +[[package]] +name = "digest" +version = "0.11.0-pre.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065d93ead7c220b85d5b4be4795d8398eac4ff68b5ee63895de0a3c1fb6edf25" +dependencies = [ + "block-buffer 0.11.0-pre.5", + "const-oid 0.10.0-pre.2", + "crypto-common 0.2.0-pre.5", +] + [[package]] name = "ecdsa" -version = "0.15.1" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12844141594ad74185a926d030f3b605f6a903b4e3fec351f3ea338ac5b7637e" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "der 0.6.1", + "der", + "digest 0.10.7", "elliptic-curve", "rfc6979", - "signature 2.0.0", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2", + "subtle", + "zeroize", ] [[package]] name = "elliptic-curve" -version = "0.12.3" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct", - "crypto-bigint 0.4.9", - "der 0.6.1", - "digest", + "crypto-bigint", + "digest 0.10.7", "ff", "generic-array", "group", "hkdf", - "pem-rfc7468 0.6.0", - "pkcs8 0.9.0", - "rand_core", + "pem-rfc7468", + "pkcs8", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -481,6 +542,12 @@ dependencies = [ "log", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.8" @@ -488,7 +555,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -499,14 +566,20 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core", + "rand_core 0.6.4", "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" + [[package]] name = "flate2" version = "1.0.28" @@ -535,9 +608,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -549,9 +622,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -559,44 +632,44 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.53", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -618,13 +691,14 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "js-sys", @@ -645,17 +719,55 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28999cda5ef6916ffd33fb4a7b87e1de633c47c0dc6d97905fee1cdaa142b94d" dependencies = [ - "gloo-console", - "gloo-dialogs", - "gloo-events", - "gloo-file", - "gloo-history", - "gloo-net", - "gloo-render", - "gloo-storage", - "gloo-timers", - "gloo-utils", - "gloo-worker", + "gloo-console 0.2.3", + "gloo-dialogs 0.1.1", + "gloo-events 0.1.2", + "gloo-file 0.2.3", + "gloo-history 0.1.5", + "gloo-net 0.3.1", + "gloo-render 0.1.1", + "gloo-storage 0.2.2", + "gloo-timers 0.2.6", + "gloo-utils 0.1.7", + "gloo-worker 0.2.1", +] + +[[package]] +name = "gloo" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd35526c28cc55c1db77aed6296de58677dbab863b118483a27845631d870249" +dependencies = [ + "gloo-console 0.3.0", + "gloo-dialogs 0.2.0", + "gloo-events 0.2.0", + "gloo-file 0.3.0", + "gloo-history 0.2.2", + "gloo-net 0.4.0", + "gloo-render 0.2.0", + "gloo-storage 0.3.0", + "gloo-timers 0.3.0", + "gloo-utils 0.2.0", + "gloo-worker 0.4.0", +] + +[[package]] +name = "gloo" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d15282ece24eaf4bd338d73ef580c6714c8615155c4190c781290ee3fa0fd372" +dependencies = [ + "gloo-console 0.3.0", + "gloo-dialogs 0.2.0", + "gloo-events 0.2.0", + "gloo-file 0.3.0", + "gloo-history 0.2.2", + "gloo-net 0.5.0", + "gloo-render 0.2.0", + "gloo-storage 0.3.0", + "gloo-timers 0.3.0", + "gloo-utils 0.2.0", + "gloo-worker 0.5.0", ] [[package]] @@ -664,7 +776,20 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82b7ce3c05debe147233596904981848862b068862e9ec3e34be446077190d3f" dependencies = [ - "gloo-utils", + "gloo-utils 0.1.7", + "js-sys", + "serde", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-console" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a17868f56b4a24f677b17c8cb69958385102fa879418052d60b50bc1727e261" +dependencies = [ + "gloo-utils 0.2.0", "js-sys", "serde", "wasm-bindgen", @@ -681,6 +806,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "gloo-dialogs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4748e10122b01435750ff530095b1217cf6546173459448b83913ebe7815df" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + [[package]] name = "gloo-events" version = "0.1.2" @@ -691,14 +826,36 @@ dependencies = [ "web-sys", ] +[[package]] +name = "gloo-events" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27c26fb45f7c385ba980f5fa87ac677e363949e065a083722697ef1b2cc91e41" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + [[package]] name = "gloo-file" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d5564e570a38b43d78bdc063374a0c3098c4f0d64005b12f9bbe87e869b6d7" +dependencies = [ + "gloo-events 0.1.2", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-file" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97563d71863fb2824b2e974e754a81d19c4a7ec47b09ced8a0e6656b6d54bd1f" dependencies = [ "futures-channel", - "gloo-events", + "gloo-events 0.2.0", "js-sys", "wasm-bindgen", "web-sys", @@ -710,10 +867,27 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85725d90bf0ed47063b3930ef28e863658a7905989e9929a8708aab74a1d5e7f" dependencies = [ - "gloo-events", - "gloo-utils", + "gloo-events 0.1.2", + "gloo-utils 0.1.7", "serde", - "serde-wasm-bindgen", + "serde-wasm-bindgen 0.5.0", + "serde_urlencoded", + "thiserror", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-history" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "903f432be5ba34427eac5e16048ef65604a82061fe93789f2212afc73d8617d6" +dependencies = [ + "getrandom", + "gloo-events 0.2.0", + "gloo-utils 0.2.0", + "serde", + "serde-wasm-bindgen 0.6.5", "serde_urlencoded", "thiserror", "wasm-bindgen", @@ -729,7 +903,49 @@ dependencies = [ "futures-channel", "futures-core", "futures-sink", - "gloo-utils", + "gloo-utils 0.1.7", + "http", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-net" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ac9e8288ae2c632fa9f8657ac70bfe38a1530f345282d7ba66a1f70b72b7dc4" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils 0.2.0", + "http", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-net" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils 0.2.0", "http", "js-sys", "pin-project", @@ -751,13 +967,38 @@ dependencies = [ "web-sys", ] +[[package]] +name = "gloo-render" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56008b6744713a8e8d98ac3dcb7d06543d5662358c9c805b4ce2167ad4649833" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + [[package]] name = "gloo-storage" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d6ab60bf5dbfd6f0ed1f7843da31b41010515c745735c970e821945ca91e480" dependencies = [ - "gloo-utils", + "gloo-utils 0.1.7", + "js-sys", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-storage" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc8031e8c92758af912f9bc08fbbadd3c6f3cfcbf6b64cdf3d6a81f0139277a" +dependencies = [ + "gloo-utils 0.2.0", "js-sys", "serde", "serde_json", @@ -771,6 +1012,16 @@ name = "gloo-timers" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" dependencies = [ "futures-channel", "futures-core", @@ -791,6 +1042,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "gloo-worker" version = "0.2.1" @@ -799,37 +1063,87 @@ checksum = "13471584da78061a28306d1359dd0178d8d6fc1c7c80e5e35d27260346e0516a" dependencies = [ "anymap2", "bincode", - "gloo-console", - "gloo-utils", + "gloo-console 0.2.3", + "gloo-utils 0.1.7", + "js-sys", + "serde", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-worker" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76495d3dd87de51da268fa3a593da118ab43eb7f8809e17eb38d3319b424e400" +dependencies = [ + "bincode", + "futures", + "gloo-utils 0.2.0", + "gloo-worker-macros", + "js-sys", + "pinned", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-worker" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085f262d7604911c8150162529cefab3782e91adb20202e8658f7275d2aefe5d" +dependencies = [ + "bincode", + "futures", + "gloo-utils 0.2.0", + "gloo-worker-macros", "js-sys", + "pinned", "serde", + "thiserror", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", ] +[[package]] +name = "gloo-worker-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956caa58d4857bc9941749d55e4bd3000032d8212762586fa5705632967140e7" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.53", +] + [[package]] name = "group" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -852,7 +1166,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] @@ -869,9 +1183,9 @@ checksum = "e4ce1f4656bae589a3fab938f9f09bf58645b7ed01a2c5f8a3c238e01a4ef78a" [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -884,22 +1198,42 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +[[package]] +name = "hybrid-array" +version = "0.2.0-rc.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53668f5da5a41d9eaf4bf7064be46d1ebe6a4e1ceed817f387587b18f2b51047" +dependencies = [ + "typenum", +] + [[package]] name = "implicit-clone" -version = "0.3.9" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd6201e7c30ccb24773cac7efa6fec1e06189d414b7439ce756a481c8bfbf53" +checksum = "f8a9aa791c7b5a71b636b7a68207fdebf171ddfc593d9c8506ec4cbc527b6a84" dependencies = [ + "implicit-clone-derive", "indexmap", ] +[[package]] +name = "implicit-clone-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9311685eb9a34808bbb0608ad2fcab9ae216266beca5848613e95553ac914e3b" +dependencies = [ + "quote", + "syn 2.0.53", +] + [[package]] name = "indexmap" -version = "1.9.3" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ - "autocfg", + "equivalent", "hashbrown", ] @@ -921,18 +1255,18 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] @@ -948,9 +1282,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.151" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libm" @@ -960,9 +1294,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" dependencies = [ "cc", "pkg-config", @@ -971,9 +1305,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "log" @@ -988,7 +1322,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ "cfg-if", - "digest", + "digest 0.10.7", ] [[package]] @@ -999,15 +1333,15 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -1024,27 +1358,32 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "serde", "smallvec", "zeroize", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -1053,9 +1392,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", "libm", @@ -1073,18 +1412,18 @@ dependencies = [ [[package]] name = "num_threads" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ "libc", ] [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -1106,9 +1445,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "p256" -version = "0.12.0" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49c124b3cbce43bcbac68c58ec181d98ed6cc7e6d0aa7c3ba97b2563410b0e55" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ "ecdsa", "elliptic-curve", @@ -1118,9 +1457,9 @@ dependencies = [ [[package]] name = "p384" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630a4a9b2618348ececfae61a4905f564b817063bf2d66cdfc2ced523fe1d2d4" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" dependencies = [ "ecdsa", "elliptic-curve", @@ -1135,7 +1474,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1151,7 +1490,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest", + "digest 0.10.7", "hmac", "password-hash", "sha-1", @@ -1160,18 +1499,9 @@ dependencies = [ [[package]] name = "pem-rfc7468" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30" -dependencies = [ - "base64ct", -] - -[[package]] -name = "pem-rfc7468" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" dependencies = [ "base64ct", ] @@ -1184,27 +1514,30 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "picky" -version = "7.0.0-rc.5" +version = "7.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ac7d98dfb5e53cdea76b70df8d5e8dd7717a2d685a12f54c547e03b5afd76a" +checksum = "52cccdaffd2f361b4b4eb70b4249bd71d89bb66cb84b7f76483ecd1640c543ce" dependencies = [ - "base64 0.13.1", - "digest", + "base64 0.21.7", + "digest 0.10.7", + "ed25519-dalek", "md-5", "num-bigint-dig", - "oid", "p256", "p384", - "picky-asn1 0.7.2", + "picky-asn1 0.8.0", "picky-asn1-der 0.4.1", - "picky-asn1-x509 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand", - "rsa 0.6.1", + "picky-asn1-x509 0.12.0", + "rand 0.8.5", + "rand_core 0.6.4", + "rsa", "serde", - "sha-1", + "sha1 0.10.6", "sha2", "sha3", "thiserror", + "x25519-dalek", + "zeroize", ] [[package]] @@ -1217,18 +1550,6 @@ dependencies = [ "serde_bytes", ] -[[package]] -name = "picky-asn1" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f338f1fd4f3e13e75e986ca29f2a3c62528d88d3cbadf4afdcefb6b087f2d32" -dependencies = [ - "oid", - "serde", - "serde_bytes", - "zeroize", -] - [[package]] name = "picky-asn1" version = "0.8.0" @@ -1238,6 +1559,7 @@ dependencies = [ "oid", "serde", "serde_bytes", + "zeroize", ] [[package]] @@ -1264,28 +1586,28 @@ dependencies = [ [[package]] name = "picky-asn1-x509" version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb51541f90aa99f2fa7191c8daebc224d500cd5963c6ca3e6cede9645a1b2e1" +source = "git+https://github.com/TheBestTravynka/picky-rs.git?rev=604a246#604a2461571ae5c3371a4b34691fa0c4fea091b4" dependencies = [ "base64 0.13.1", - "num-bigint-dig", "oid", - "picky-asn1 0.7.2", - "picky-asn1-der 0.4.1", + "picky-asn1 0.7.0", + "picky-asn1-der 0.4.0", "serde", - "zeroize", ] [[package]] name = "picky-asn1-x509" -version = "0.9.0" -source = "git+https://github.com/TheBestTravynka/picky-rs.git?rev=604a246#604a2461571ae5c3371a4b34691fa0c4fea091b4" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c5f20f71a68499ff32310f418a6fad8816eac1a2859ed3f0c5c741389dd6208" dependencies = [ - "base64 0.13.1", + "base64 0.21.7", + "num-bigint-dig", "oid", - "picky-asn1 0.7.0", - "picky-asn1-der 0.4.0", + "picky-asn1 0.8.0", + "picky-asn1-der 0.4.1", "serde", + "zeroize", ] [[package]] @@ -1304,32 +1626,32 @@ dependencies = [ "pbkdf2", "picky-asn1 0.7.0", "picky-asn1-der 0.4.0", - "picky-asn1-x509 0.9.0 (git+https://github.com/TheBestTravynka/picky-rs.git?rev=604a246)", - "rand", + "picky-asn1-x509 0.9.0", + "rand 0.8.5", "serde", - "sha1", + "sha1 0.10.6", "thiserror", "uuid", ] [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.53", ] [[package]] @@ -1357,53 +1679,36 @@ dependencies = [ [[package]] name = "pkcs1" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320" -dependencies = [ - "der 0.5.1", - "pkcs8 0.8.0", - "zeroize", -] - -[[package]] -name = "pkcs1" -version = "0.4.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "der 0.6.1", - "pkcs8 0.9.0", - "spki 0.6.0", - "zeroize", + "der", + "pkcs8", + "spki", ] [[package]] name = "pkcs8" -version = "0.8.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.5.1", - "spki 0.5.4", - "zeroize", + "der", + "spki", ] [[package]] -name = "pkcs8" -version = "0.9.0" +name = "pkg-config" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" -dependencies = [ - "der 0.6.1", - "spki 0.6.0", -] +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] -name = "pkg-config" -version = "0.3.27" +name = "platforms" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" [[package]] name = "powerfmt" @@ -1419,23 +1724,33 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 1.0.109", + "syn 2.0.53", ] [[package]] name = "primeorder" -version = "0.12.1" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b54f7131b3dba65a2f414cf5bd25b66d4682e4608610668eae785750ba4c5b2" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ "elliptic-curve", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1462,9 +1777,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -1476,7 +1791,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03b55e106e5791fa5a13abd13c85d6127312e8e09098059ca2bc9b03ca4cf488" dependencies = [ "futures", - "gloo", + "gloo 0.8.1", "num_cpus", "once_cell", "pin-project", @@ -1503,11 +1818,11 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.4.1", + "bitflags", "lazy_static", "num-traits", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax", "rusty-fork", @@ -1523,9 +1838,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -1537,8 +1852,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0-alpha.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "807b7862b9cbece02dbbb9465356885df299fcc8b19d27a4570903eaf6a4062e" +dependencies = [ + "rand_core 0.9.0-alpha.0", + "zerocopy", ] [[package]] @@ -1548,7 +1873,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0-alpha.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5c41723acb3ac225e48e77a0921e0c69b36b670d857e0914fc8d574efa7df8" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.0-alpha.0", ] [[package]] @@ -1561,21 +1896,22 @@ dependencies = [ ] [[package]] -name = "rand_xorshift" -version = "0.3.0" +name = "rand_core" +version = "0.9.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +checksum = "2b962254c1392bbfc8571c17acb5d0e52116bbefd704e965e92e6c60fadc096e" dependencies = [ - "rand_core", + "getrandom", + "zerocopy", ] [[package]] -name = "redox_syscall" -version = "0.4.1" +name = "rand_xorshift" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "bitflags 1.3.2", + "rand_core 0.6.4", ] [[package]] @@ -1609,13 +1945,12 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rfc6979" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "crypto-bigint 0.4.9", "hmac", - "zeroize", + "subtle", ] [[package]] @@ -1626,41 +1961,20 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rsa" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b" -dependencies = [ - "byteorder", - "digest", - "num-bigint-dig", - "num-integer", - "num-iter", - "num-traits", - "pkcs1 0.3.3", - "pkcs8 0.8.0", - "rand_core", - "smallvec", - "subtle", - "zeroize", -] - -[[package]] -name = "rsa" -version = "0.7.2" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099c" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" dependencies = [ - "byteorder", - "digest", + "const-oid 0.9.6", + "digest 0.10.7", "num-bigint-dig", "num-integer", - "num-iter", "num-traits", - "pkcs1 0.4.1", - "pkcs8 0.9.0", - "rand_core", - "signature 1.6.4", - "smallvec", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", "subtle", "zeroize", ] @@ -1671,17 +1985,26 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + [[package]] name = "rustix" -version = "0.38.28" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.1", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -1704,29 +2027,35 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "sec1" -version = "0.3.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", - "der 0.6.1", + "der", "generic-array", - "pkcs8 0.9.0", + "pkcs8", "subtle", "zeroize", ] +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" + [[package]] name = "serde" -version = "1.0.193" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] @@ -1742,31 +2071,42 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + [[package]] name = "serde_bytes" -version = "0.11.12" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.53", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1804,7 +2144,7 @@ checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", ] [[package]] @@ -1815,7 +2155,18 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha1" +version = "0.11.0-pre.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3885de8cb916f223718c1ccd47a840b91f806333e76002dc5cb3862154b4fed3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.11.0-pre.8", ] [[package]] @@ -1826,7 +2177,7 @@ checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", ] [[package]] @@ -1835,28 +2186,18 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest", + "digest 0.10.7", "keccak", ] [[package]] name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" -dependencies = [ - "digest", - "rand_core", -] - -[[package]] -name = "signature" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "digest", - "rand_core", + "digest 0.10.7", + "rand_core 0.6.4", ] [[package]] @@ -1876,9 +2217,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "spin" @@ -1888,22 +2229,12 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spki" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" -dependencies = [ - "base64ct", - "der 0.5.1", -] - -[[package]] -name = "spki" -version = "0.6.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der 0.6.1", + "der", ] [[package]] @@ -1919,15 +2250,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", - "quote", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.41" +version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -1936,46 +2266,46 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", "rustix", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.53", ] [[package]] name = "time" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "js-sys", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -1990,9 +2320,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "pin-project-lite", @@ -2000,15 +2330,32 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", "tokio", ] +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + [[package]] name = "tracing" version = "0.1.40" @@ -2028,7 +2375,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.53", ] [[package]] @@ -2058,6 +2405,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf8parse" version = "0.2.1" @@ -2066,9 +2419,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" dependencies = [ "getrandom", "serde", @@ -2104,9 +2457,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2114,24 +2467,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.53", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -2141,9 +2494,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2151,22 +2504,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-logger" @@ -2184,10 +2537,10 @@ name = "web-app" version = "0.10.0" dependencies = [ "asn1-parser", - "base64 0.13.1", + "base64 0.22.0", "bcrypt", "flate2", - "gloo-timers", + "gloo-timers 0.3.0", "hex", "hmac-sha256", "hmac-sha512", @@ -2198,13 +2551,13 @@ dependencies = [ "paste", "picky", "picky-krb", - "rand", - "rand_chacha", - "rsa 0.7.2", + "rand 0.9.0-alpha.0", + "rand_chacha 0.9.0-alpha.0", + "rsa", "serde", "serde_json", "serde_qs", - "sha1", + "sha1 0.11.0-pre.3", "similar", "time", "wasm-bindgen", @@ -2218,155 +2571,110 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-targets", ] [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" +name = "windows_x86_64_msvc" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" +name = "winnow" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] [[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" +name = "x25519-dalek" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek", + "rand_core 0.6.4", + "serde", + "zeroize", +] [[package]] name = "yew" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dbecfe44343b70cc2932c3eb445425969ae21754a8ab3a0966981c1cf7af1cc" +checksum = "5f1a03f255c70c7aa3e9c62e15292f142ede0564123543c1cc0c7a4f31660cac" dependencies = [ "console_error_panic_hook", "futures", - "gloo", + "gloo 0.10.0", "implicit-clone", "indexmap", "js-sys", @@ -2385,11 +2693,11 @@ dependencies = [ [[package]] name = "yew-hooks" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "268e2367720311f19582235f5c021702d6be8ded13b7ee8dcacc71019d055d15" +checksum = "1b6f2fe60864adbcc36f1d51f748a186f56f99857c55521d4c9ec1c6e4a0d0a9" dependencies = [ - "gloo", + "gloo 0.10.0", "js-sys", "log", "serde", @@ -2401,9 +2709,9 @@ dependencies = [ [[package]] name = "yew-macro" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64c253c1d401f1ea868ca9988db63958cfa15a69f739101f338d6f05eea8301" +checksum = "02fd8ca5166d69e59f796500a2ce432ff751edecbbb308ca59fd3fe4d0343de2" dependencies = [ "boolinator", "once_cell", @@ -2411,15 +2719,15 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.53", ] [[package]] name = "yew-notifications" version = "0.1.0" -source = "git+https://github.com/TheBestTvarynka/yew-notifications.git#50d0055dd37c031abd3825237b1a567896526748" +source = "git+https://github.com/TheBestTvarynka/yew-notifications.git#6f3882c4b2e4852bfa01866601fc9360c5401daa" dependencies = [ - "gloo", + "gloo 0.11.0", "log", "time", "uuid", @@ -2428,16 +2736,17 @@ dependencies = [ [[package]] name = "yew-router" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426ee0486d2572a6c5e39fbdbc48b58d59bb555f3326f54631025266cf04146e" +checksum = "4ca1d5052c96e6762b4d6209a8aded597758d442e6c479995faf0c7b5538e0c6" dependencies = [ - "gloo", + "gloo 0.10.0", "js-sys", "route-recognizer", "serde", "serde_urlencoded", "tracing", + "urlencoding", "wasm-bindgen", "web-sys", "yew", @@ -2446,13 +2755,33 @@ dependencies = [ [[package]] name = "yew-router-macro" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b249cdb39e0cddaf0644dedc781854524374664793479fdc01e6a65d6e6ae3" +checksum = "42bfd190a07ca8cfde7cd4c52b3ac463803dc07323db8c34daa697e86365978c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.53", +] + +[[package]] +name = "zerocopy" +version = "0.8.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd4a4b5a6b38e736bca19abe211abf0ba2552462555fc960d763fbbaff2b191" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157bd6b2f5a6f8e2b1b1e5b427aec8d2c085f9ab99c92eaa0ca79b9b84c11254" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", ] [[package]] @@ -2460,3 +2789,17 @@ name = "zeroize" version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] diff --git a/Cargo.toml b/Cargo.toml index 069c8313..44f7e56e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,46 +15,46 @@ members = [ ] [dependencies] -yew = { version = "0.20", features = ["csr"] } -yew-router = "0.17.0" +yew = { version = "0.21", features = ["csr"] } +yew-router = "0.18" yew-notifications = { git = "https://github.com/TheBestTvarynka/yew-notifications.git", features = ["standard-notification"] } -yew-hooks = "0.2.0" +yew-hooks = "0.3" # wasm -js-sys = "0.3.60" -wasm-bindgen = "0.2.83" -web-sys = { version = "0.3.60", features = ["Window"] } +js-sys = "0.3" +wasm-bindgen = "0.2" +web-sys = { version = "0.3", features = ["Window"] } # logging -wasm-logger = "0.2.0" -log = "0.4.17" +wasm-logger = "0.2" +log = "0.4" # utils -hex = "0.4.3" -gloo-timers = "0.2.4" -serde = { version = "1.0.162", features = ["derive"] } -serde_qs = "0.12.0" -serde_json = "1.0.89" -base64 = "0.13.1" -time = { version = "0.3.20", features = ["local-offset", "wasm-bindgen"] } +hex = "0.4" +gloo-timers = "0.3" +serde = { version = "1.0", features = ["derive"] } +serde_qs = "0.12" +serde_json = "1.0" +base64 = "0.22" +time = { version = "0.3", features = ["local-offset", "wasm-bindgen"] } # crypto picky-krb = { git = "https://github.com/TheBestTravynka/picky-rs.git", rev = "604a246" } -picky = { version = "7.0.0-rc.3", default-features = false, features = ["ec"] } -md5 = "0.7.0" -sha1 = "0.10.5" -hmac-sha256 = "1.1.5" -hmac-sha512 = { version = "1.1.2", features = ["sha384"] } -rsa = "0.7.2" -bcrypt = "0.14.0" -flate2 = { version = "1.0.26", features = ["zlib"] } -rand = { version = "0.8.5", default-features = false, features = ["small_rng"] } -rand_chacha = "0.3.1" +picky = { version = "7.0.0-rc.8", default-features = false } +md5 = "0.7" +sha1 = "0.11.0-pre.3" +hmac-sha256 = "1.1" +hmac-sha512 = { version = "1.1", features = ["sha384"] } +rsa = "0.9" +bcrypt = "0.15" +flate2 = { version = "1.0", features = ["zlib"] } +rand = { version = "0.9.0-alpha.0", default-features = false, features = ["small_rng"] } +rand_chacha = "0.9.0-alpha.0" # asn1 asn1-parser = { path = "./crates/asn1-parser", features = ["std"] } -oid = { version = "0.2.1", default-features = false } -paste = "1.0.14" +oid = { version = "0.2", default-features = false } +paste = "1.0" # diff -similar = "2.4.0" \ No newline at end of file +similar = "2.4" \ No newline at end of file diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 7cbc6acc..8336e05b 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.75.0" +channel = "1.76.0" components = [ "rustfmt", "clippy" ] diff --git a/src/asn1.rs b/src/asn1.rs index dcaee5c3..b8e85a34 100644 --- a/src/asn1.rs +++ b/src/asn1.rs @@ -10,7 +10,7 @@ use std::rc::Rc; use asn1_parser::{Asn1, Asn1Decoder, Asn1Encoder}; use web_sys::KeyboardEvent; -use yew::{classes, function_component, html, use_effect_with_deps, use_reducer, use_state, Callback, Html, Reducible}; +use yew::{classes, function_component, html, use_effect_with, use_reducer, use_state, Callback, Html, Reducible}; use yew_hooks::{use_clipboard, use_local_storage, use_location}; use yew_notifications::{use_notification, Notification, NotificationType}; @@ -108,64 +108,58 @@ pub fn asn1_parser_page() -> Html { let raw_asn1_setter = raw_asn1.setter(); let asn1_setter = parsed_asn1.setter(); let local_storage = use_local_storage::(ASN1_LOCAL_STORAGE_KEY.to_owned()); - use_effect_with_deps( - move |_: &[(); 0]| { - let query = &location.search; - - if query.len() < 2 { - // URL query params is empty. We try to load ASN1 from local storage. - if let Some(raw_asn1) = (*local_storage).as_ref() { - if let Ok(bytes) = hex::decode(raw_asn1) { - match Asn1::decode_buff(&bytes) { - Ok(asn1) => { - asn1_setter.set(asn1.to_owned_with_asn1(asn1.inner_asn1().to_owned())); - } - Err(err) => { - error!("Can not decode asn1: {:?}", err); - } + use_effect_with([], move |_: &[(); 0]| { + let query = &location.search; + + if query.len() < 2 { + // URL query params is empty. We try to load ASN1 from local storage. + if let Some(raw_asn1) = (*local_storage).as_ref() { + if let Ok(bytes) = hex::decode(raw_asn1) { + match Asn1::decode_buff(&bytes) { + Ok(asn1) => { + asn1_setter.set(asn1.to_owned_with_asn1(asn1.inner_asn1().to_owned())); + } + Err(err) => { + error!("Can not decode asn1: {:?}", err); } - raw_asn1_setter.set(bytes); } + raw_asn1_setter.set(bytes); } - return; } + return; + } - match serde_qs::from_str(&query[1..]) { - Ok(asn1) => { - let url_query_params::Asn1 { asn1: asn1_data } = asn1; - match Asn1::decode_buff(&asn1_data) { - Ok(asn1) => { - asn1_setter.set(asn1.to_owned_with_asn1(asn1.inner_asn1().to_owned())); - } - Err(error) => notifications.spawn(Notification::new( - NotificationType::Error, - "Invalid asn1 data", - error.message(), - Notification::NOTIFICATION_LIFETIME, - )), - }; - raw_asn1_setter.set(asn1_data); - } - Err(err) => notifications.spawn(Notification::new( - NotificationType::Error, - "Can not load data from url", - err.to_string(), - Notification::NOTIFICATION_LIFETIME, - )), + match serde_qs::from_str(&query[1..]) { + Ok(asn1) => { + let url_query_params::Asn1 { asn1: asn1_data } = asn1; + match Asn1::decode_buff(&asn1_data) { + Ok(asn1) => { + asn1_setter.set(asn1.to_owned_with_asn1(asn1.inner_asn1().to_owned())); + } + Err(error) => notifications.spawn(Notification::new( + NotificationType::Error, + "Invalid asn1 data", + error.message(), + Notification::NOTIFICATION_LIFETIME, + )), + }; + raw_asn1_setter.set(asn1_data); } - }, - [], - ); + Err(err) => notifications.spawn(Notification::new( + NotificationType::Error, + "Can not load data from url", + err.to_string(), + Notification::NOTIFICATION_LIFETIME, + )), + } + }); let local_storage = use_local_storage::(ASN1_LOCAL_STORAGE_KEY.to_owned()); - use_effect_with_deps( - move |asn1| { - let mut encoded = vec![0; asn1.needed_buf_size()]; - asn1.encode_buff(&mut encoded).expect("ASN1 encoding should not fail"); - local_storage.set(encode_bytes(encoded, BytesFormat::Hex)); - }, - parsed_asn1.clone(), - ); + use_effect_with(parsed_asn1.clone(), move |asn1| { + let mut encoded = vec![0; asn1.needed_buf_size()]; + asn1.encode_buff(&mut encoded).expect("ASN1 encoding should not fail"); + local_storage.set(encode_bytes(encoded, BytesFormat::Hex)); + }); let clipboard = use_clipboard(); let raw_asn1_data = (*raw_asn1).clone(); diff --git a/src/common/byte_input.rs b/src/common/byte_input.rs index 8595ed3e..014dd5b3 100644 --- a/src/common/byte_input.rs +++ b/src/common/byte_input.rs @@ -1,5 +1,5 @@ use web_sys::HtmlInputElement; -use yew::{classes, function_component, html, use_effect_with_deps, use_state, Callback, Html, Properties, TargetCast}; +use yew::{classes, function_component, html, use_effect_with, use_state, Callback, Html, Properties, TargetCast}; use super::BytesFormat; use crate::common::{encode_bytes, get_format_button_class, get_set_format_callback, parse_bytes, BYTES_FORMATS}; @@ -34,27 +34,21 @@ pub fn byte_input(props: &ByteInputProps) -> Html { let format_setter = bytes_format.setter(); let raw_value_setter = raw_value.setter(); let parsed_bytes = (*bytes).clone(); - use_effect_with_deps( - move |format| { - format_setter.set(**format); - raw_value_setter.set(encode_bytes(parsed_bytes, **format)); - }, - bytes_format.clone(), - ); + use_effect_with(bytes_format.clone(), move |format| { + format_setter.set(**format); + raw_value_setter.set(encode_bytes(parsed_bytes, **format)); + }); let bytes_setter = bytes.setter(); let raw_value_setter = raw_value.setter(); let format_value = *bytes_format; - use_effect_with_deps( - move |props| { - let bytes = props.bytes.clone(); - let raw = encode_bytes(&bytes, format_value); + use_effect_with(props.clone(), move |props| { + let bytes = props.bytes.clone(); + let raw = encode_bytes(&bytes, format_value); - bytes_setter.set(bytes); - raw_value_setter.set(raw); - }, - props.clone(), - ); + bytes_setter.set(bytes); + raw_value_setter.set(raw); + }); let setter = setter.clone(); let raw_value_setter = raw_value.setter(); diff --git a/src/common/mod.rs b/src/common/mod.rs index ebf2f6b3..efbff582 100644 --- a/src/common/mod.rs +++ b/src/common/mod.rs @@ -6,6 +6,7 @@ mod simple_output; mod switch; mod table; +use base64::Engine; pub use byte_input::{build_byte_input, ByteInput}; pub use checkbox::Checkbox; pub use rc_slice::RcSlice; @@ -68,7 +69,7 @@ pub const BYTES_FORMATS: [BytesFormat; 5] = [ pub fn encode_bytes(bytes: impl AsRef<[u8]>, format: BytesFormat) -> String { match format { BytesFormat::Hex => hex::encode(bytes), - BytesFormat::Base64 => base64::encode(bytes), + BytesFormat::Base64 => base64::engine::general_purpose::STANDARD.encode(bytes), BytesFormat::Ascii => bytes.as_ref().iter().map(|c| *c as char).collect(), BytesFormat::Decimal => bytes .as_ref() diff --git a/src/common/simple_output.rs b/src/common/simple_output.rs index 8fd2a6a9..6076e71d 100644 --- a/src/common/simple_output.rs +++ b/src/common/simple_output.rs @@ -1,4 +1,4 @@ -use yew::{function_component, html, use_effect_with_deps, use_state, Callback, Html, Properties}; +use yew::{function_component, html, use_effect_with, use_state, Callback, Html, Properties}; use yew_hooks::use_clipboard; use yew_notifications::{Notification, NotificationType}; @@ -23,12 +23,9 @@ pub fn simple_output(props: &SimpleOutputProps) -> Html { let bytes_format = use_state(|| format); let format_setter = bytes_format.setter(); - use_effect_with_deps( - move |format| { - format_setter.set(**format); - }, - bytes_format.clone(), - ); + use_effect_with(bytes_format.clone(), move |format| { + format_setter.set(**format); + }); let encoded_bytes = encode_bytes(&output, *bytes_format); diff --git a/src/crypto_helper.rs b/src/crypto_helper.rs index b3b2832f..a2690399 100644 --- a/src/crypto_helper.rs +++ b/src/crypto_helper.rs @@ -12,7 +12,7 @@ use output::Output; use picky_krb::crypto::{ChecksumSuite, CipherSuite}; use sha1::{Digest, Sha1}; use web_sys::KeyboardEvent; -use yew::{function_component, html, use_effect_with_deps, use_state, Callback, Html}; +use yew::{function_component, html, use_effect_with, use_state, Callback, Html}; use yew_hooks::{use_clipboard, use_local_storage, use_location}; use yew_notifications::{use_notification, Notification, NotificationType}; @@ -73,57 +73,50 @@ pub fn crypto_helper() -> Html { let location = use_location(); let notifications = notification_manager.clone(); let local_storage = use_local_storage::(CRYPTO_HELPER_LOCAL_STORAGE_KEY.to_owned()); - use_effect_with_deps( - move |_: &[(); 0]| { - let query = &location.search; + use_effect_with([], move |_: &[(); 0]| { + let query = &location.search; - // First, we try to load data from the url. - // question mark + one any other char - if query.len() >= 2 { - match serde_qs::from_str(&query[1..]) { - Ok(algorithm) => { - algorithm_setter.set(algorithm); - } - Err(err) => notifications.spawn(Notification::new( - NotificationType::Error, - "Can not load data from url", - err.to_string(), - Notification::NOTIFICATION_LIFETIME, - )), + // First, we try to load data from the url. + // question mark + one any other char + if query.len() >= 2 { + match serde_qs::from_str(&query[1..]) { + Ok(algorithm) => { + algorithm_setter.set(algorithm); } + Err(err) => notifications.spawn(Notification::new( + NotificationType::Error, + "Can not load data from url", + err.to_string(), + Notification::NOTIFICATION_LIFETIME, + )), + } + } else { + // Otherwise, we try to find a data in the local storage. + let raw_data = if let Some(raw_data) = (*local_storage).as_ref() { + raw_data.as_str() } else { - // Otherwise, we try to find a data in the local storage. - let raw_data = if let Some(raw_data) = (*local_storage).as_ref() { - raw_data.as_str() - } else { - return; - }; - match serde_json::from_str(raw_data) { - Ok(algorithm) => { - algorithm_setter.set(algorithm); - } - Err(err) => notifications.spawn(Notification::new( - NotificationType::Error, - "Can not load data from the local storage", - err.to_string(), - Notification::NOTIFICATION_LIFETIME, - )), + return; + }; + match serde_json::from_str(raw_data) { + Ok(algorithm) => { + algorithm_setter.set(algorithm); } + Err(err) => notifications.spawn(Notification::new( + NotificationType::Error, + "Can not load data from the local storage", + err.to_string(), + Notification::NOTIFICATION_LIFETIME, + )), } - }, - [], - ); + } + }); let local_storage = use_local_storage::(CRYPTO_HELPER_LOCAL_STORAGE_KEY.to_owned()); - use_effect_with_deps( - move |algorithm| { - let algorithm: &Algorithm = algorithm; - local_storage.set( - serde_json::to_string(algorithm).expect("algorithm serialization into json string should never fail"), - ); - }, - algorithm.clone(), - ); + use_effect_with(algorithm.clone(), move |algorithm| { + let algorithm: &Algorithm = algorithm; + local_storage + .set(serde_json::to_string(algorithm).expect("algorithm serialization into json string should never fail")); + }); let algorithm_data = (*algorithm).clone(); let clipboard = use_clipboard(); diff --git a/src/crypto_helper/computations.rs b/src/crypto_helper/computations.rs index d5b3b2d7..d591e445 100644 --- a/src/crypto_helper/computations.rs +++ b/src/crypto_helper/computations.rs @@ -6,9 +6,8 @@ use flate2::write::{ZlibDecoder, ZlibEncoder}; use flate2::Compression; use picky::signature::SignatureAlgorithm; use picky_krb::crypto::{Checksum, Cipher}; -use rand::SeedableRng; -use rand_chacha::ChaCha8Rng; -use rsa::{PaddingScheme, PublicKey as PublicKeyTrait}; +use rsa::rand_core::OsRng; +use rsa::Pkcs1v15Encrypt; use super::algorithm::{ BcryptAction, BcryptInput, KrbInput, KrbInputData, KrbMode, RsaAction, RsaInput, ZlibInput, ZlibMode, @@ -18,13 +17,13 @@ pub fn process_rsa(input: &RsaInput) -> Result, String> { let payload = &input.payload; match &input.action { RsaAction::Encrypt(public_key) => { - let mut rng = ChaCha8Rng::from_entropy(); + let mut rng = OsRng; public_key - .encrypt(&mut rng, PaddingScheme::PKCS1v15Encrypt, payload) + .encrypt(&mut rng, Pkcs1v15Encrypt, payload) .map_err(|err| err.to_string()) } RsaAction::Decrypt(private_key) => private_key - .decrypt(PaddingScheme::PKCS1v15Encrypt, payload) + .decrypt(Pkcs1v15Encrypt, payload) .map_err(|err| err.to_string()), RsaAction::Sign(input) => Ok(SignatureAlgorithm::RsaPkcs1v15(input.hash_algorithm.0) .sign(payload, &input.rsa_private_key) diff --git a/src/crypto_helper/info/algo_search.rs b/src/crypto_helper/info/algo_search.rs index 4a41cc21..6238945a 100644 --- a/src/crypto_helper/info/algo_search.rs +++ b/src/crypto_helper/info/algo_search.rs @@ -1,6 +1,6 @@ use web_sys::{Event, FocusEvent, HtmlInputElement, InputEvent, KeyboardEvent, MouseEvent}; use yew::{ - classes, function_component, html, use_effect_with_deps, use_state, Callback, Html, Properties, TargetCast, + classes, function_component, html, use_effect_with, use_state, Callback, Html, Properties, TargetCast, UseStateSetter, }; @@ -46,13 +46,10 @@ pub fn algo_search(props: &AlgoSearchProps) -> Html { let algos = use_state(Vec::new); let algos_setter = algos.setter(); - use_effect_with_deps( - move |pattern| { - let pattern = (**pattern).clone(); - algos_setter.set(search_algorithms(pattern)); - }, - pattern.clone(), - ); + use_effect_with(pattern.clone(), move |pattern| { + let pattern = (**pattern).clone(); + algos_setter.set(search_algorithms(pattern)); + }); let pattern_setter = pattern.setter(); let oninput = Callback::from(move |event: InputEvent| { diff --git a/src/crypto_helper/input/krb.rs b/src/crypto_helper/input/krb.rs index a08eee53..681841fa 100644 --- a/src/crypto_helper/input/krb.rs +++ b/src/crypto_helper/input/krb.rs @@ -1,7 +1,7 @@ use picky_krb::crypto::CipherSuite; use web_sys::{HtmlInputElement, InputEvent, MouseEvent}; use yew::{ - classes, function_component, html, use_effect_with_deps, use_state, Callback, Html, Properties, TargetCast, + classes, function_component, html, use_effect_with, use_state, Callback, Html, Properties, TargetCast, UseStateSetter, }; use yew_notifications::{use_notification, Notification, NotificationType}; @@ -68,12 +68,9 @@ pub fn krb_input(props: &KrbInputProps) -> Html { let krb_input = use_state(|| krb_input); let krb_input_setter = krb_input.setter(); - use_effect_with_deps( - move |props| { - krb_input_setter.set(props.krb_input.clone()); - }, - props.clone(), - ); + use_effect_with(props.clone(), move |props| { + krb_input_setter.set(props.krb_input.clone()); + }); // false - user provides the key by yourself // true - generate key from the password diff --git a/src/crypto_helper/input/rsa.rs b/src/crypto_helper/input/rsa.rs index 1aee6dde..7fb30c4c 100644 --- a/src/crypto_helper/input/rsa.rs +++ b/src/crypto_helper/input/rsa.rs @@ -1,5 +1,5 @@ use picky::key::{PrivateKey, PublicKey}; -use rsa::pkcs1::{DecodeRsaPrivateKey, DecodeRsaPublicKey, EncodeRsaPublicKey}; +use rsa::pkcs1::{DecodeRsaPrivateKey, DecodeRsaPublicKey, EncodeRsaPrivateKey, EncodeRsaPublicKey}; use rsa::{RsaPrivateKey, RsaPublicKey}; use web_sys::{Event, HtmlInputElement}; use yew::{classes, function_component, html, Callback, Classes, Html, Properties, TargetCast}; @@ -130,7 +130,7 @@ fn generate_rsa_input( rows="4" placeholder={"RSA private key in PEM (-----BEGIN RSA PRIVATE KEY-----)"} class="base-input" - value={input.to_pkcs1_pem(Default::default()).unwrap()} + value={input.to_pkcs1_pem(Default::default()).unwrap().to_string()} {oninput} /> diff --git a/src/diff.rs b/src/diff.rs index 5cc69ca5..2eeda9e0 100644 --- a/src/diff.rs +++ b/src/diff.rs @@ -5,7 +5,7 @@ use similar::{capture_diff_slices, Algorithm, DiffOp, TextDiff}; use web_sys::{HtmlInputElement, KeyboardEvent}; use yew::html::onchange::Event; use yew::virtual_dom::VNode; -use yew::{classes, function_component, html, use_effect_with_deps, use_state, Callback, Html, TargetCast}; +use yew::{classes, function_component, html, use_effect_with, use_state, Callback, Html, TargetCast}; use yew_hooks::use_local_storage; use self::diff_algo::DiffAlgo; @@ -52,7 +52,7 @@ fn render_algorithm_options(current_algorithm: DiffAlgo) -> Vec { .iter() .map(|algo| { html! { - + } }) .collect() @@ -99,55 +99,43 @@ pub fn diff_page() -> Html { let algorithm_local_storage = use_local_storage::(LOCAL_STORAGE_ALGORITHM.to_owned()); let algorithm_setter = algorithm.setter(); let diffs_setter = diffs.setter(); - use_effect_with_deps( - move |_: &[(); 0]| { - let mut flag = false; + use_effect_with([], move |_: &[(); 0]| { + let mut flag = false; - if let Some(original) = (*original_local_storage).as_ref() { - original_setter.set(original.to_string()); - flag = true; - } - if let Some(changed) = (*changed_local_storage).as_ref() { - changed_setter.set(changed.to_string()); + if let Some(original) = (*original_local_storage).as_ref() { + original_setter.set(original.to_string()); + flag = true; + } + if let Some(changed) = (*changed_local_storage).as_ref() { + changed_setter.set(changed.to_string()); + flag = true; + } + if let Some(raw_algorithm) = (*algorithm_local_storage).as_ref() { + if let Ok(algorithm) = raw_algorithm.as_str().try_into() { + algorithm_setter.set(algorithm); flag = true; } - if let Some(raw_algorithm) = (*algorithm_local_storage).as_ref() { - if let Ok(algorithm) = raw_algorithm.as_str().try_into() { - algorithm_setter.set(algorithm); - flag = true; - } - } + } - if flag { - diffs_setter.set(DiffData::empty()); - } - }, - [], - ); + if flag { + diffs_setter.set(DiffData::empty()); + } + }); let local_storage = use_local_storage::(LOCAL_STORAGE_ORIGINAL.to_owned()); - use_effect_with_deps( - move |[original]| { - local_storage.set((*original).to_string()); - }, - [original.clone()], - ); + use_effect_with(original.clone(), move |original| { + local_storage.set((*original).to_string()); + }); let local_storage = use_local_storage::(LOCAL_STORAGE_CHANGED.to_owned()); - use_effect_with_deps( - move |[changed]| { - local_storage.set((*changed).to_string()); - }, - [changed.clone()], - ); + use_effect_with(changed.clone(), move |changed| { + local_storage.set((*changed).to_string()); + }); let local_storage = use_local_storage::(LOCAL_STORAGE_ALGORITHM.to_owned()); - use_effect_with_deps( - move |[algorithm]| { - local_storage.set((*algorithm).to_string()); - }, - [algorithm.clone()], - ); + use_effect_with(algorithm.clone(), move |algorithm| { + local_storage.set((*algorithm).to_string()); + }); let original_setter = original.setter(); let on_original_input = Callback::from(move |event: html::oninput::Event| { diff --git a/src/diff/diff_algo.rs b/src/diff/diff_algo.rs index cad92419..e888f94f 100644 --- a/src/diff/diff_algo.rs +++ b/src/diff/diff_algo.rs @@ -22,13 +22,19 @@ impl From for DiffAlgo { } } -impl Display for DiffAlgo { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - f.write_str(match self.0 { +impl AsRef for DiffAlgo { + fn as_ref(&self) -> &str { + match self.0 { Algorithm::Myers => MYERS, Algorithm::Patience => PATIENCE, Algorithm::Lcs => LCS, - }) + } + } +} + +impl Display for DiffAlgo { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.write_str(self.as_ref()) } } diff --git a/src/diff/diff_viewer.rs b/src/diff/diff_viewer.rs index 597807ff..0a830843 100644 --- a/src/diff/diff_viewer.rs +++ b/src/diff/diff_viewer.rs @@ -81,7 +81,7 @@ fn render_changes(diff: &DiffData) -> Vec { {"1"} }, ); - changes.remove(changes.len() - 1); + let _ = changes.remove(changes.len() - 1); changes } diff --git a/src/jwt.rs b/src/jwt.rs index 7ba0bece..c123f360 100644 --- a/src/jwt.rs +++ b/src/jwt.rs @@ -9,7 +9,7 @@ mod macros; use std::str::FromStr; use web_sys::{HtmlInputElement, KeyboardEvent}; -use yew::{function_component, html, use_effect_with_deps, use_state, Callback, Html, TargetCast}; +use yew::{function_component, html, use_effect_with, use_state, Callback, Html, TargetCast}; use yew_hooks::{use_local_storage, use_location}; use yew_notifications::{use_notification, Notification, NotificationType}; @@ -88,66 +88,60 @@ pub fn jwt() -> Html { let jwte_setter = jwte.setter(); let notifications = use_notification::(); let local_storage = use_local_storage::(JWT_LOCAL_STORAGE_KEY.to_owned()); - use_effect_with_deps( - move |_: &[(); 0]| { - let query = &location.search; - - if query.len() < 2 { - // URL query params is empty. We try to load JWT from local storage. - if let Some(raw_jwt) = (*local_storage).as_ref() { - match serde_json::from_str(raw_jwt.as_str()) { - Ok(jwt) => { - jwte_setter.set(Some(Jwte::Jwt(jwt))); - } - Err(err) => { - error!("Can not load JWT from local storage: {:?}", err); - } + use_effect_with([], move |_: &[(); 0]| { + let query = &location.search; + + if query.len() < 2 { + // URL query params is empty. We try to load JWT from local storage. + if let Some(raw_jwt) = (*local_storage).as_ref() { + match serde_json::from_str(raw_jwt.as_str()) { + Ok(jwt) => { + jwte_setter.set(Some(Jwte::Jwt(jwt))); + } + Err(err) => { + error!("Can not load JWT from local storage: {:?}", err); } } + } + return; + } + + let jwt: url_query_params::Jwt = match serde_qs::from_str(&query[1..]) { + Ok(jwt) => jwt, + Err(err) => { + notifications.spawn(Notification::new( + NotificationType::Error, + "Can not load data from url", + err.to_string(), + Notification::NOTIFICATION_LIFETIME, + )); return; } + }; - let jwt: url_query_params::Jwt = match serde_qs::from_str(&query[1..]) { - Ok(jwt) => jwt, - Err(err) => { - notifications.spawn(Notification::new( - NotificationType::Error, - "Can not load data from url", - err.to_string(), - Notification::NOTIFICATION_LIFETIME, - )); - return; - } - }; - - jwt_setter.set(jwt.jwt.clone()); - match Jwte::from_str(&jwt.jwt) { - Ok(jwte) => jwte_setter.set(Some(jwte)), - Err(error) => { - jwte_setter.set(None); - - notifications.spawn(Notification::new( - NotificationType::Error, - "Invalid token", - error, - Notification::NOTIFICATION_LIFETIME, - )); - } - }; - }, - [], - ); + jwt_setter.set(jwt.jwt.clone()); + match Jwte::from_str(&jwt.jwt) { + Ok(jwte) => jwte_setter.set(Some(jwte)), + Err(error) => { + jwte_setter.set(None); - let local_storage = use_local_storage::(JWT_LOCAL_STORAGE_KEY.to_owned()); - use_effect_with_deps( - move |jwte| { - let jwte: &Option = jwte; - if let Some(Jwte::Jwt(jwt)) = jwte { - local_storage.set(serde_json::to_string(jwt).expect("JWT serialization should not fail")); + notifications.spawn(Notification::new( + NotificationType::Error, + "Invalid token", + error, + Notification::NOTIFICATION_LIFETIME, + )); } - }, - jwte.clone(), - ); + }; + }); + + let local_storage = use_local_storage::(JWT_LOCAL_STORAGE_KEY.to_owned()); + use_effect_with(jwte.clone(), move |jwte| { + let jwte: &Option = jwte; + if let Some(Jwte::Jwt(jwt)) = jwte { + local_storage.set(serde_json::to_string(jwt).expect("JWT serialization should not fail")); + } + }); let jwte_setter = jwte.setter(); let set_jwt = Callback::from(move |jwt| { diff --git a/src/jwt/jwt_utils.rs b/src/jwt/jwt_utils.rs index 94429a73..247dc02c 100644 --- a/src/jwt/jwt_utils.rs +++ b/src/jwt/jwt_utils.rs @@ -1,3 +1,6 @@ +use base64::engine::general_purpose::STANDARD; +use base64::engine::GeneralPurpose; +use base64::Engine; use picky::hash::HashAlgorithm; use picky::key::{PrivateKey, PublicKey}; use picky::signature::SignatureAlgorithm; @@ -112,8 +115,8 @@ fn get_input_component( fn calculate_signature(jwt: &Jwt, spawn_notification: Callback) -> Option> { let data_to_sign = format!( "{}.{}", - base64::encode(jwt.parsed_header.as_bytes()), - base64::encode(jwt.parsed_payload.as_bytes()) + STANDARD.encode(jwt.parsed_header.as_bytes()), + STANDARD.encode(jwt.parsed_payload.as_bytes()) ); match &jwt.signature_algorithm { @@ -264,8 +267,8 @@ fn calculate_signature(jwt: &Jwt, spawn_notification: Callback) -> fn validate_signature(jwt: &Jwt, spawn_notification: Callback) -> Option { let data_to_sign = format!( "{}.{}", - base64::encode(jwt.parsed_header.as_bytes()), - base64::encode(jwt.parsed_payload.as_bytes()) + STANDARD.encode(jwt.parsed_header.as_bytes()), + STANDARD.encode(jwt.parsed_payload.as_bytes()) ); let calculated_signature = match &jwt.signature_algorithm { @@ -430,9 +433,11 @@ fn validate_signature(jwt: &Jwt, spawn_notification: Callback) -> pub fn generate_jwt(jwt: &Jwt, spawn_notification: Callback) -> Option> { let signature = calculate_signature(jwt, spawn_notification)?; - let header = base64::encode_config(jwt.parsed_header.as_bytes(), base64::URL_SAFE_NO_PAD); - let payload = base64::encode_config(jwt.parsed_payload.as_bytes(), base64::URL_SAFE_NO_PAD); - let signature = base64::encode_config(signature, base64::URL_SAFE_NO_PAD); + let engine = GeneralPurpose::new(&base64::alphabet::STANDARD, base64::engine::general_purpose::NO_PAD); + + let header = engine.encode(jwt.parsed_header.as_bytes()); + let payload = engine.encode(jwt.parsed_payload.as_bytes()); + let signature = engine.encode(signature); let jwt = format!("{}.{}.{}", header, payload, signature); diff --git a/src/utils.rs b/src/utils.rs index 1781b680..9dea9078 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,3 +1,5 @@ +use base64::engine::GeneralPurpose; +use base64::Engine; use yew::Callback; use yew_hooks::UseClipboardHandle; use yew_notifications::{Notification, NotificationType, NotificationsManager}; @@ -21,6 +23,8 @@ pub fn copy_to_clipboard_with_notification( } pub fn decode_base64(input: &str) -> Result, String> { + let engine = GeneralPurpose::new(&base64::alphabet::STANDARD, base64::engine::general_purpose::NO_PAD); + if input.contains('_') || input.contains('-') { let input = input .chars() @@ -30,9 +34,9 @@ pub fn decode_base64(input: &str) -> Result, String> { c => c, }) .collect::(); - base64::decode(input).map_err(|err| format!("invalid base64: {:?}", err)) + engine.decode(input).map_err(|err| format!("invalid base64: {:?}", err)) } else { - base64::decode(input).map_err(|err| format!("invalid base64: {:?}", err)) + engine.decode(input).map_err(|err| format!("invalid base64: {:?}", err)) } }