From ec59d97e52b8b27f6ad3f9460dbfcd5910f2d7ca Mon Sep 17 00:00:00 2001 From: yen Date: Thu, 7 Mar 2024 19:57:28 +0100 Subject: [PATCH] rustls-tls --- .gitignore | 1 + Cargo.lock | 118 ++++++++++++++++++++++++++++++++++++++--- Cargo.toml | 2 +- Dockerfile-arm64 | 11 ++++ scripts/build-arm64.sh | 13 +++++ 5 files changed, 137 insertions(+), 8 deletions(-) create mode 100644 Dockerfile-arm64 create mode 100755 scripts/build-arm64.sh diff --git a/.gitignore b/.gitignore index 8ea0ee8..b491c51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target result* +/arm64 diff --git a/Cargo.lock b/Cargo.lock index 69f998a..4b2df55 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -96,6 +96,13 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "cph_open" +version = "0.1.0" +dependencies = [ + "reqwest", +] + [[package]] name = "encoding_rs" version = "0.8.33" @@ -205,6 +212,17 @@ dependencies = [ "slab", ] +[[package]] +name = "getrandom" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "gimli" version = "0.28.1" @@ -300,6 +318,20 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "rustls", + "tokio", + "tokio-rustls", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -530,13 +562,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "quick-start" -version = "0.1.0" -dependencies = [ - "reqwest", -] - [[package]] name = "quote" version = "1.0.35" @@ -561,6 +586,7 @@ dependencies = [ "http", "http-body", "hyper", + "hyper-rustls", "hyper-tls", "ipnet", "js-sys", @@ -570,6 +596,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls", "rustls-pemfile", "serde", "serde_json", @@ -578,14 +605,31 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots", "winreg", ] +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -605,6 +649,18 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -614,6 +670,16 @@ dependencies = [ "base64", ] +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "ryu" version = "1.0.17" @@ -629,6 +695,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "security-framework" version = "2.9.2" @@ -714,6 +790,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "syn" version = "2.0.52" @@ -805,6 +887,16 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.10" @@ -871,6 +963,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.0" @@ -979,6 +1077,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 3ffdcb1..ba87e26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,4 +7,4 @@ license = "MIT" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -reqwest = { version = "0.11", features = ["blocking", "json"] } +reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"] } diff --git a/Dockerfile-arm64 b/Dockerfile-arm64 new file mode 100644 index 0000000..abba527 --- /dev/null +++ b/Dockerfile-arm64 @@ -0,0 +1,11 @@ +FROM ubuntu:mantic + +WORKDIR /app + +COPY arm64/cph_open cph_open + +RUN apt-get update -y +RUN apt-get upgrade -y +RUN apt-get install -y libssl-dev + +ENTRYPOINT ["./cph_open"] diff --git a/scripts/build-arm64.sh b/scripts/build-arm64.sh new file mode 100755 index 0000000..965bbc9 --- /dev/null +++ b/scripts/build-arm64.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +# Requires qemu-user-static +# docker run --privileged --rm tonistiigi/binfmt --install arm64 +# docker buildx create --use --name multi-arch-builder +REPO_URL="https://gitea.sesh.jetzt/yen/cph_open" +echo "version: ${HIIVE_API_VERSION}" + +mkdir arm64 +ssh root@yenting.party -t "if [ -d /opt/cph_open ]; then cd /opt/cph_open/; else cd /opt/ && git clone $REPO_URL && cd cph_open; fi; git fetch --all && git reset --hard origin/main && git switch main && cargo build --release --bin cph_open" +scp root@yenting.party:/opt/cph_open/target/release/cph_open arm64/cph_open +docker buildx build --platform linux/arm64 -t yen3k/cph_open --push --file Dockerfile-arm64 . + +rm -r arm64