diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock index ab6fd639f..9e6b66268 100644 --- a/Cargo-minimal.lock +++ b/Cargo-minimal.lock @@ -8,15 +8,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "aead" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922b33332f54fc0ad13fa3e514601e8d30fb54e1f3eadc36643f6526db645621" -dependencies = [ - "generic-array", -] - [[package]] name = "aead" version = "0.5.1" @@ -27,32 +18,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "aes" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99446914425f48a667458b33c7fb920e24cf9e7c149a072a9fc420731b353835" -dependencies = [ - "cfg-if 1.0.0", - "cipher 0.3.0", - "cpufeatures 0.1.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aes-gcm" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d3cc56d7840c3dba6ea1c1754afd3d0aa244c4902776b8d109a7be764f31f" -dependencies = [ - "aead 0.4.1", - "aes", - "cipher 0.3.0", - "ctr", - "ghash", - "subtle", -] - [[package]] name = "ahash" version = "0.7.8" @@ -564,19 +529,16 @@ dependencies = [ [[package]] name = "bitcoin-hpke" -version = "0.13.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37a54c486727c1d1ae9cc28dcf78b6e6ba20dcb88e8c892f1437d9ce215dc8c" +checksum = "b82f6af50f93d6dcda676e622840c128044cd0ba7771aab00aed5fa8208adee3" dependencies = [ - "aead 0.5.1", - "chacha20poly1305 0.10.0", - "digest 0.10.7", + "aead", + "bitcoin_hashes 0.14.101", + "chacha20-poly1305", "generic-array", - "hkdf 0.12.3", - "hmac 0.12.1", "rand_core 0.6.4", "secp256k1", - "sha2 0.10.1", "subtle", "zeroize", ] @@ -607,23 +569,20 @@ dependencies = [ [[package]] name = "bitcoin-ohttp" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a803a4b54e44635206b53329c78c0029d0c70926288ac2f07f4bb1267546cb" +checksum = "ea931154237aee3527fc6bc529cf2c8e3b045f81044ee2215b760df2a722c38b" dependencies = [ - "aead 0.4.1", - "aes-gcm", "bitcoin-hpke", + "bitcoin_hashes 0.14.101", "byteorder", - "chacha20poly1305 0.8.0", + "chacha20-poly1305", "hex", - "hkdf 0.11.0", "lazy_static", "log", "rand 0.8.0", "serde", "serde_derive", - "sha2 0.9.0", "thiserror 1.0.37", "toml 0.5.2", ] @@ -742,18 +701,6 @@ dependencies = [ "webpki-roots", ] -[[package]] -name = "block-buffer" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbcf92448676f82bb7a334c58bbce8b0d43580fb5362a9d608b18879d12a3d31" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.1" @@ -763,24 +710,12 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75bc2cfa52dc218b47ea000b15e6e5d00ca2f831db31e41592383c14d8802907" - [[package]] name = "bumpalo" version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187" -[[package]] -name = "byte-tools" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980479e6fde23246dfb54d47580d66b4e99202e7579c5eaa9fe10ecb5ebd2182" - [[package]] name = "byteorder" version = "1.5.0" @@ -890,53 +825,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] -name = "chacha20" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412" -dependencies = [ - "cfg-if 1.0.0", - "cipher 0.3.0", - "cpufeatures 0.1.0", - "zeroize", -] - -[[package]] -name = "chacha20" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fc89c7c5b9e7a02dfe45cd2367bae382f9ed31c61ca8debe5f827c420a2f08" -dependencies = [ - "cfg-if 1.0.0", - "cipher 0.4.3", - "cpufeatures 0.2.5", -] - -[[package]] -name = "chacha20poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5" -dependencies = [ - "aead 0.4.1", - "chacha20 0.7.1", - "cipher 0.3.0", - "poly1305 0.7.0", - "zeroize", -] - -[[package]] -name = "chacha20poly1305" -version = "0.10.0" +name = "chacha20-poly1305" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d6e4974f4531e7674f7bde1fdda79802e5151e7a87580b7a282403f1648f75" -dependencies = [ - "aead 0.5.1", - "chacha20 0.9.0", - "cipher 0.4.3", - "poly1305 0.8.0", - "zeroize", -] +checksum = "50844998c477072ba2cb2a63fa1dfca81b1368133f38084916bccd5710a374e1" [[package]] name = "chrono" @@ -951,26 +843,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - -[[package]] -name = "cipher" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" -dependencies = [ - "crypto-common", - "inout", - "zeroize", -] - [[package]] name = "clap" version = "3.1.0" @@ -1180,12 +1052,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "cpufeatures" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd5a7748210e7ec1a9696610b1015e6e31fbf58f77a160801f124bd1c36592a" - [[package]] name = "cpufeatures" version = "0.2.5" @@ -1222,34 +1088,15 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0" dependencies = [ "generic-array", "rand_core 0.6.4", "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "ctr" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" -dependencies = [ - "cipher 0.3.0", -] - [[package]] name = "darling" version = "0.20.0" @@ -1315,22 +1162,13 @@ dependencies = [ "serde", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.1", + "block-buffer", "crypto-common", "subtle", ] @@ -1437,12 +1275,6 @@ dependencies = [ "syn 1.0.74", ] -[[package]] -name = "fake-simd" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0ab991abb1eec35079831199b79b4139553d299a9182aa3bfc4019615a0cb1" - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -1665,16 +1497,6 @@ dependencies = [ "windows-targets 0.52.0", ] -[[package]] -name = "ghash" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90df9c2964d71ba6591379cc3bff5127cc19dcbe6a62088a1b3718d6cbfe08cf" -dependencies = [ - "opaque-debug 0.3.0", - "polyval", -] - [[package]] name = "glob" version = "0.3.0" @@ -1811,33 +1633,13 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" -[[package]] -name = "hkdf" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01706d578d5c281058480e673ae4086a9f4710d8df1ad80a5b03e39ece5f886b" -dependencies = [ - "digest 0.9.0", - "hmac 0.11.0", -] - [[package]] name = "hkdf" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac", - "digest 0.9.0", + "hmac", ] [[package]] @@ -1846,7 +1648,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -2027,15 +1829,6 @@ dependencies = [ "serde", ] -[[package]] -name = "inout" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f10620eb04658d2e1078c6f293b8c09e381b4cb35c4ceddc2f4022404e9a8b4" -dependencies = [ - "generic-array", -] - [[package]] name = "ipnet" version = "2.9.0" @@ -2386,18 +2179,6 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -[[package]] -name = "opaque-debug" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ecbcb821e1bd256d456fe858aaa7f380b63863eab2eb86eee1bd9f33dd6682" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - [[package]] name = "openssl-probe" version = "0.1.2" @@ -2545,7 +2326,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "payjoin" -version = "1.0.0" +version = "1.1.0" dependencies = [ "arbitrary", "bhttp", @@ -2554,7 +2335,7 @@ dependencies = [ "bitcoin-ohttp", "bitcoin-units", "bitcoin_uri", - "hkdf 0.12.3", + "hkdf", "http", "http-body", "once_cell", @@ -2771,7 +2552,7 @@ checksum = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0" dependencies = [ "once_cell", "pest", - "sha2 0.10.1", + "sha2", ] [[package]] @@ -2818,39 +2599,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -[[package]] -name = "poly1305" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe800695325da85083cd23b56826fccb2e2dc29b218e7811a6f33bc93f414be" -dependencies = [ - "cpufeatures 0.1.0", - "opaque-debug 0.3.0", - "universal-hash 0.4.0", -] - -[[package]] -name = "poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" -dependencies = [ - "cpufeatures 0.2.5", - "opaque-debug 0.3.0", - "universal-hash 0.5.1", -] - -[[package]] -name = "polyval" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864231b0b86ce05168a8e6da0fea2e67275dacf25f75b00a62cfd341aab904a9" -dependencies = [ - "cpufeatures 0.1.0", - "opaque-debug 0.3.0", - "universal-hash 0.4.0", -] - [[package]] name = "portable-atomic" version = "1.0.0" @@ -3590,20 +3338,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04cc229fb94bcb689ffc39bd4ded842f6ff76885efede7c6d1ffb62582878bea" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.5", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72377440080fd008550fe9b441e854e43318db116f90181eef92e9ae9aedab48" -dependencies = [ - "block-buffer 0.8.0", - "digest 0.9.0", - "fake-simd", - "opaque-debug 0.2.1", + "cpufeatures", + "digest", ] [[package]] @@ -3613,8 +3349,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.5", - "digest 0.10.7", + "cpufeatures", + "digest", ] [[package]] @@ -4555,26 +4291,6 @@ dependencies = [ "weedle2", ] -[[package]] -name = "universal-hash" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - [[package]] name = "untrusted" version = "0.9.0" diff --git a/Cargo-recent.lock b/Cargo-recent.lock index b586ae175..e3d4a9d47 100644 --- a/Cargo-recent.lock +++ b/Cargo-recent.lock @@ -8,16 +8,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "aead" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" -dependencies = [ - "generic-array", - "rand_core 0.6.4", -] - [[package]] name = "aead" version = "0.5.2" @@ -28,32 +18,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures 0.2.17", - "opaque-debug", -] - -[[package]] -name = "aes-gcm" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" -dependencies = [ - "aead 0.4.3", - "aes", - "cipher 0.3.0", - "ctr", - "ghash", - "subtle", -] - [[package]] name = "ahash" version = "0.7.8" @@ -570,19 +534,16 @@ dependencies = [ [[package]] name = "bitcoin-hpke" -version = "0.13.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37a54c486727c1d1ae9cc28dcf78b6e6ba20dcb88e8c892f1437d9ce215dc8c" +checksum = "b82f6af50f93d6dcda676e622840c128044cd0ba7771aab00aed5fa8208adee3" dependencies = [ - "aead 0.5.2", - "chacha20poly1305 0.10.1", - "digest 0.10.7", + "aead", + "bitcoin_hashes", + "chacha20-poly1305", "generic-array", - "hkdf 0.12.4", - "hmac 0.12.1", "rand_core 0.6.4", "secp256k1", - "sha2 0.10.9", "subtle", "zeroize", ] @@ -604,23 +565,20 @@ dependencies = [ [[package]] name = "bitcoin-ohttp" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a803a4b54e44635206b53329c78c0029d0c70926288ac2f07f4bb1267546cb" +checksum = "ea931154237aee3527fc6bc529cf2c8e3b045f81044ee2215b760df2a722c38b" dependencies = [ - "aead 0.4.3", - "aes-gcm", "bitcoin-hpke", + "bitcoin_hashes", "byteorder", - "chacha20poly1305 0.8.0", + "chacha20-poly1305", "hex", - "hkdf 0.11.0", "lazy_static", "log", "rand 0.8.8", "serde", "serde_derive", - "sha2 0.9.9", "thiserror 1.0.69", "toml 0.5.11", ] @@ -714,15 +672,6 @@ dependencies = [ "webpki-roots", ] -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -840,29 +789,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" -[[package]] -name = "chacha20" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures 0.1.5", - "zeroize", -] - -[[package]] -name = "chacha20" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" -dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures 0.2.17", -] - [[package]] name = "chacha20" version = "0.10.2" @@ -875,30 +801,10 @@ dependencies = [ ] [[package]] -name = "chacha20poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5" -dependencies = [ - "aead 0.4.3", - "chacha20 0.7.1", - "cipher 0.3.0", - "poly1305 0.7.2", - "zeroize", -] - -[[package]] -name = "chacha20poly1305" -version = "0.10.1" +name = "chacha20-poly1305" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" -dependencies = [ - "aead 0.5.2", - "chacha20 0.9.1", - "cipher 0.4.4", - "poly1305 0.8.0", - "zeroize", -] +checksum = "50844998c477072ba2cb2a63fa1dfca81b1368133f38084916bccd5710a374e1" [[package]] name = "chrono" @@ -912,26 +818,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", - "zeroize", -] - [[package]] name = "clap" version = "3.2.25" @@ -1156,15 +1042,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "cpufeatures" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" -dependencies = [ - "libc", -] - [[package]] name = "cpufeatures" version = "0.2.17" @@ -1215,25 +1092,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "ctr" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" -dependencies = [ - "cipher 0.3.0", -] - [[package]] name = "darling" version = "0.21.3" @@ -1299,22 +1157,13 @@ dependencies = [ "serde_core", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "crypto-common", "subtle", ] @@ -1672,16 +1521,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ghash" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" -dependencies = [ - "opaque-debug", - "polyval", -] - [[package]] name = "glob" version = "0.3.4" @@ -1825,33 +1664,13 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" -[[package]] -name = "hkdf" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01706d578d5c281058480e673ae4086a9f4710d8df1ad80a5b03e39ece5f886b" -dependencies = [ - "digest 0.9.0", - "hmac 0.11.0", -] - [[package]] name = "hkdf" version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac", - "digest 0.9.0", + "hmac", ] [[package]] @@ -1860,7 +1679,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -2134,15 +1953,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array", -] - [[package]] name = "ipnet" version = "2.12.2" @@ -2551,12 +2361,6 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "openssl-probe" version = "0.2.1" @@ -2695,7 +2499,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "payjoin" -version = "1.0.0" +version = "1.1.0" dependencies = [ "arbitrary", "bhttp", @@ -2704,7 +2508,7 @@ dependencies = [ "bitcoin-ohttp", "bitcoin-units", "bitcoin_uri", - "hkdf 0.12.4", + "hkdf", "http", "http-body", "once_cell", @@ -2966,40 +2770,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -[[package]] -name = "poly1305" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" -dependencies = [ - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash 0.4.0", -] - -[[package]] -name = "poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" -dependencies = [ - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash 0.5.1", -] - -[[package]] -name = "polyval" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash 0.4.0", -] - [[package]] name = "portable-atomic" version = "1.15.0" @@ -3212,7 +2982,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" dependencies = [ - "chacha20 0.10.2", + "chacha20", "getrandom 0.4.3", "rand_core 0.10.1", ] @@ -3875,31 +3645,7 @@ checksum = "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures 0.2.17", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "digest 0.10.7", + "digest", ] [[package]] @@ -4845,26 +4591,6 @@ dependencies = [ "weedle2", ] -[[package]] -name = "universal-hash" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - [[package]] name = "untrusted" version = "0.9.0" diff --git a/flake.nix b/flake.nix index afee40989..b9d639743 100644 --- a/flake.nix +++ b/flake.nix @@ -63,7 +63,16 @@ # From unstable so it keeps pace with the rustdoc JSON format # emitted by rust-overlay's latest stable toolchain; the # release-branch nixpkgs version lags too far behind. - cargo-semver-checks = nixpkgs-unstable.legacyPackages.${system}.cargo-semver-checks; + # Its check phase needs a writable HOME for a cache dir and + # fails in the sandbox without one. Drop the override once + # the lock includes NixOS/nixpkgs#563137. + cargo-semver-checks = + nixpkgs-unstable.legacyPackages.${system}.cargo-semver-checks.overrideAttrs + (old: { + nativeCheckInputs = (old.nativeCheckInputs or [ ]) ++ [ + nixpkgs-unstable.legacyPackages.${system}.writableTmpDirAsHomeHook + ]; + }); rustToolchains = { msrv = prev.rust-bin.stable.${msrv-version}.default; stable = prev.rust-bin.stable.latest.default; diff --git a/payjoin-cli/Cargo.toml b/payjoin-cli/Cargo.toml index 6d1d6c0fa..9547c52cf 100644 --- a/payjoin-cli/Cargo.toml +++ b/payjoin-cli/Cargo.toml @@ -35,7 +35,7 @@ dirs = "6.0.0" http-body-util = { version = "0.1.3", optional = true } hyper = { version = "1.8.0", features = ["http1", "server"], optional = true } hyper-util = { version = "0.1.18", optional = true } -payjoin = { version = "1.0.0", default-features = false } +payjoin = { version = "1.1.0", default-features = false } pest_derive = "2.7.0" r2d2 = "0.8.10" r2d2_sqlite = "0.22.0" diff --git a/payjoin-ffi/Cargo.toml b/payjoin-ffi/Cargo.toml index a7c5ce179..9c6411b3f 100644 --- a/payjoin-ffi/Cargo.toml +++ b/payjoin-ffi/Cargo.toml @@ -25,7 +25,7 @@ path = "uniffi-bindgen.rs" async-trait = "0.1.89" getrandom = "0.2.10" lazy_static = "1.5.0" -payjoin = { version = "1.0.0", features = ["v1", "v2"] } +payjoin = { version = "1.1.0", features = ["v1", "v2"] } payjoin-test-utils = { version = "0.0.1", optional = true } serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" diff --git a/payjoin-mailroom/Cargo.toml b/payjoin-mailroom/Cargo.toml index 40b62f241..8000741fd 100644 --- a/payjoin-mailroom/Cargo.toml +++ b/payjoin-mailroom/Cargo.toml @@ -60,14 +60,14 @@ hyper-util = { version = "0.1.18", features = [ hyperloglogplus = "0.4.1" ipnet = { version = "2.9", optional = true } maxminddb = { version = "0.27", optional = true } -ohttp = { package = "bitcoin-ohttp", version = "0.6.0" } +ohttp = { package = "bitcoin-ohttp", version = "0.7.0" } opentelemetry = "0.32" opentelemetry-http = { version = "0.32", features = ["hyper"], optional = true } opentelemetry-otlp = { version = "0.32", optional = true, default-features = false, features = [ "http-proto", ] } opentelemetry_sdk = "0.32" -payjoin = { version = "1.0.0", features = [ +payjoin = { version = "1.1.0", features = [ "directory", ], default-features = false } rand = "0.8" diff --git a/payjoin-test-utils/Cargo.toml b/payjoin-test-utils/Cargo.toml index 482234518..ec90b40d7 100644 --- a/payjoin-test-utils/Cargo.toml +++ b/payjoin-test-utils/Cargo.toml @@ -30,9 +30,9 @@ bitcoin = { version = "0.32.102", features = ["base64"] } corepc-node = { version = "0.12.0", features = ["download", "29_0"] } futures = { version = "0.3.21", default-features = false, features = ["std"] } http = { version = "1.3.1", optional = true } -ohttp = { package = "bitcoin-ohttp", version = "0.6.0", optional = true } +ohttp = { package = "bitcoin-ohttp", version = "0.7.0", optional = true } once_cell = "1.21.3" -payjoin = { version = "1.0.0", default-features = false } +payjoin = { version = "1.1.0", default-features = false } payjoin-mailroom = { version = "0.1.2", features = ["_manual-tls"] } rcgen = { version = "0.14.7", optional = true } reqwest = { version = "0.12.23", default-features = false, features = [ diff --git a/payjoin/CHANGELOG.md b/payjoin/CHANGELOG.md index 0a8706e5f..5cb50a278 100644 --- a/payjoin/CHANGELOG.md +++ b/payjoin/CHANGELOG.md @@ -1,5 +1,62 @@ # Payjoin Changelog +## 1.1.0 + +This release hardens how both sides of a payjoin validate what the +counterparty sends. Fee rates, fee arithmetic, PSBT amounts, endpoint URLs, +and directory responses are now checked before they can overflow, panic, or +redirect a request. It deprecates the v2 `SenderBuilder::new` constructor, +which panics on a BIP 78 only endpoint, and raises the minimum rust-bitcoin +version. + +Selected Improvements: + +### Deprecations + +- `send::v2::SenderBuilder::new` is deprecated because it panics when the + URI's `pj` endpoint is BIP 78 only. Use `SenderBuilder::from_parts` with + the v2 `PjParam` from the parsed URI, and handle v1 endpoints explicitly + (#1884) + +### Dependencies + +- Raise the minimum `bitcoin` version from 0.32.9 to 0.32.102 and + `bitcoin-units` from 0.1.3 to 0.1.101. Cargo already resolved 1.0.0 to + these versions, so most dependents see no change (#1879) +- Raise `bitcoin-hpke` from 0.13.0 to 0.20.0 and `bitcoin-ohttp` from 0.6.0 to + 0.7.0. Neither crate appears in payjoin's public API, so dependents need no + change (#1817) +- The crate now uses Rust edition 2024. The MSRV stays at 1.85 (#1874) + +### Features + +- Add an optional `arbitrary` feature with an `Arbitrary` implementation for + `Url`, for use in fuzzing (#1662) +- `PersistedError` and the v1 receiver `RequestError` implement `PartialEq` + (#1873) + +### Bug Fixes + +- Reject userinfo in endpoint URLs with the new + `ParseError::UserinfoNotSupported`, and reject malformed ports instead of + storing them in the path. `http://x.onion:1@evil.com/pj` previously passed + the v1 onion check and sent the Original PSBT to `evil.com` in cleartext + (#1896) +- Reject Original PSBT output and input UTXO values above `MAX_MONEY`, and use + checked addition when the receiver contributes inputs, so a crafted PSBT + can no longer panic the receiver. The sender runs the same check on its own + Original PSBT. `substitute_receiver_script` now reads the receiver output + value from the payjoin PSBT (#1897) +- Harden fee handling on both sides. The receiver rejects NaN, negative, and + above-ceiling `minfeerate` values, ignores a sender fee contribution larger + than the output meant to pay it, and returns `FeeTooHigh` instead of + panicking when its fee exceeds its change output. Both sender and receiver + now check fee rate arithmetic for overflow and underflow (#1845, #1889) +- Cap the size of OHTTP key responses from the directory and return the new + `io::Error::OhttpKeysBodyTooLarge` when a response exceeds it (#1846) +- The receiver rejects mailbox responses too short to decrypt instead of + panicking (#1843) + ## 1.0.0 The first stable release of the payjoin library supports both synchronous diff --git a/payjoin/Cargo.toml b/payjoin/Cargo.toml index d96153a2a..8a0f6b88d 100644 --- a/payjoin/Cargo.toml +++ b/payjoin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "payjoin" -version = "1.0.0" +version = "1.1.0" authors = ["Dan Gould "] description = "Payjoin Library implementing BIP 78 and BIP 77 batching protocols." repository = "https://github.com/payjoin/rust-payjoin" @@ -46,9 +46,9 @@ bitcoin = { version = "0.32.102", features = ["base64"] } bitcoin-units = "0.1.101" bitcoin_uri = { version = "0.1.0", optional = true } hkdf = { version = "0.12.3", optional = true } -hpke = { package = "bitcoin-hpke", version = "0.13.0", optional = true } +hpke = { package = "bitcoin-hpke", version = "0.20.0", optional = true } http = { version = "1.3.1", optional = true } -ohttp = { package = "bitcoin-ohttp", version = "0.6.0", optional = true } +ohttp = { package = "bitcoin-ohttp", version = "0.7.0", optional = true } percent-encoding-rfc3986 = { version = "0.1.3", optional = true } reqwest = { version = "0.12.23", default-features = false, optional = true } rustls = { version = "0.23.38", optional = true, default-features = false, features = [ diff --git a/payjoin/src/core/ohttp.rs b/payjoin/src/core/ohttp.rs index af61f8e06..5ae2ed84b 100644 --- a/payjoin/src/core/ohttp.rs +++ b/payjoin/src/core/ohttp.rs @@ -19,9 +19,9 @@ pub(crate) fn ohttp_encapsulate( body: Option<&[u8]>, ) -> Result<([u8; ENCAPSULATED_MESSAGE_BYTES], ohttp::ClientResponse), OhttpEncapsulationError> { use std::fmt::Write; - let mut ohttp_keys = ohttp_keys.0.clone(); + let ohttp_keys = ohttp_keys.0.clone(); - let ctx = ohttp::ClientRequest::from_config(&mut ohttp_keys)?; + let ctx = ohttp::ClientRequest::from_config(&ohttp_keys)?; let url = crate::core::Url::parse(target_resource)?; let authority_bytes = { let mut authority = url.host_str();