diff --git a/Cargo.lock b/Cargo.lock index c8c79d873..cefc49705 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -81,8 +81,11 @@ dependencies = [ "futures-util", "http", "log", + "rustls", + "tokio-rustls", "trust-dns-proto", "trust-dns-resolver", + "webpki", ] [[package]] @@ -117,6 +120,7 @@ dependencies = [ "actix-rt", "actix-service", "actix-threadpool", + "actix-tls", "actix-utils", "base64 0.12.3", "bitflags 1.2.1", @@ -150,7 +154,7 @@ dependencies = [ "serde_urlencoded", "sha-1 0.9.1", "slab", - "time 0.2.19", + "time 0.2.20", ] [[package]] @@ -260,6 +264,10 @@ dependencies = [ "actix-service", "actix-utils", "futures-util", + "rustls", + "tokio-rustls", + "webpki", + "webpki-roots", ] [[package]] @@ -312,11 +320,12 @@ dependencies = [ "mime", "pin-project", "regex", + "rustls", "serde 1.0.116", "serde_json", "serde_urlencoded", "socket2", - "time 0.2.19", + "time 0.2.20", "tinyvec", "url", ] @@ -483,6 +492,7 @@ dependencies = [ "mime", "percent-encoding", "rand 0.7.3", + "rustls", "serde 1.0.116", "serde_json", "serde_urlencoded", @@ -769,9 +779,9 @@ checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad" [[package]] name = "cc" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" +checksum = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c" [[package]] name = "cfg-if" @@ -874,7 +884,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1373a16a4937bc34efec7b391f9c1500c30b8478a701a4f44c9165cc0475a6e0" dependencies = [ "percent-encoding", - "time 0.2.19", + "time 0.2.20", "version_check 0.9.2", ] @@ -1117,9 +1127,9 @@ checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b" [[package]] name = "either" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "email" @@ -1594,6 +1604,12 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + [[package]] name = "humantime" version = "1.3.0" @@ -1605,9 +1621,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.7" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb" +checksum = "2f3afcfae8af5ad0576a31e768415edb627824129e8e5a29b8bfccb2f234e835" dependencies = [ "bytes", "futures-channel", @@ -1617,10 +1633,10 @@ dependencies = [ "http", "http-body", "httparse", + "httpdate", "itoa", "pin-project", "socket2", - "time 0.1.44", "tokio", "tower-service", "tracing", @@ -2723,9 +2739,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91739a34c4355b5434ce54c9086c5895604a9c278586d1f1aa95e04f66b525a0" +checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -2871,6 +2887,19 @@ dependencies = [ "semver", ] +[[package]] +name = "rustls" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" +dependencies = [ + "base64 0.12.3", + "log", + "ring", + "sct", + "webpki", +] + [[package]] name = "ryu" version = "1.0.5" @@ -2914,6 +2943,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "sct" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "security-framework" version = "0.4.4" @@ -3313,9 +3352,9 @@ dependencies = [ [[package]] name = "time" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c1a1fd93112fc50b11c43a1def21f926be3c18884fad676ea879572da070a1" +checksum = "0d4953c513c9bf1b97e9cdd83f11d60c4b0a83462880a360d80d96953a953fee" dependencies = [ "const_fn", "libc", @@ -3376,6 +3415,18 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "tokio-rustls" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" +dependencies = [ + "futures-core", + "rustls", + "tokio", + "webpki", +] + [[package]] name = "tokio-tls" version = "0.3.1" @@ -3751,6 +3802,25 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" +dependencies = [ + "webpki", +] + [[package]] name = "widestring" version = "0.4.2" diff --git a/Cargo.toml b/Cargo.toml index f04866847..2545e268e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ chrono = { version = "0.4", features = ["serde"] } serde_json = { version = "1.0", features = ["preserve_order"]} serde = { version = "1.0", features = ["derive"] } actix = "0.10" -actix-web = { version = "3.0", default-features = false } +actix-web = { version = "3.0", default-features = false, features = ["rustls"] } actix-files = { version = "0.3", default-features = false } actix-web-actors = { version = "3.0", default-features = false } actix-rt = { version = "1.1", default-features = false } diff --git a/lemmy_rate_limit/Cargo.toml b/lemmy_rate_limit/Cargo.toml index c3b1067a6..a58ffe187 100644 --- a/lemmy_rate_limit/Cargo.toml +++ b/lemmy_rate_limit/Cargo.toml @@ -14,5 +14,5 @@ tokio = "0.2" strum = "0.19" strum_macros = "0.19" futures = "0.3.5" -actix-web = { version = "3.0", default-features = false } +actix-web = { version = "3.0", default-features = false, features = ["rustls"] } log = "0.4" diff --git a/lemmy_utils/Cargo.toml b/lemmy_utils/Cargo.toml index 7cb227dc4..9ff9d7d34 100644 --- a/lemmy_utils/Cargo.toml +++ b/lemmy_utils/Cargo.toml @@ -25,5 +25,5 @@ comrak = "0.8" lazy_static = "1.3" openssl = "0.10" url = { version = "2.1", features = ["serde"] } -actix-web = {version = "3.0", default-features = false } +actix-web = { version = "3.0", default-features = false, features = ["rustls"] } anyhow = "1.0"