Przeglądaj źródła

chore: default disable trust_cert

zu1k 3 lat temu
rodzic
commit
532f9977bf

+ 0 - 6
.github/workflows/build-release.yml

@@ -93,12 +93,6 @@ jobs:
           default: true
           override: true
 
-      # https://github.com/actions/virtual-environments/issues/2557#issuecomment-769611326
-      - if: ${{ matrix.target }} == 'aarch64-apple-darwin'
-        run: |
-          sudo xcode-select -s /Applications/Xcode_12.4.app &&
-          sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
-
       - name: Build release
         shell: bash
         run: |

+ 7 - 7
Cargo.lock

@@ -185,9 +185,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
 
 [[package]]
 name = "cached"
-version = "0.39.0"
+version = "0.40.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3e27085975166ffaacbd04527132e1cf5906fa612991f9b4fea08e787da2961"
+checksum = "72b4147cd94d5fbdc2ab71b11d50a2f45493625576b3bb70257f59eedea69f3d"
 dependencies = [
  "async-trait",
  "async_once",
@@ -672,7 +672,7 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
 
 [[package]]
 name = "good-mitm"
-version = "0.3.6"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "clap",
@@ -692,7 +692,7 @@ dependencies = [
 
 [[package]]
 name = "good-mitm-core"
-version = "0.2.0"
+version = "0.3.0"
 dependencies = [
  "async-trait",
  "bytes",
@@ -1937,7 +1937,7 @@ checksum = "f1ee9bd9239c339d714d657fac840c6d2a4f9c45f4f9ec7b0975113458be78db"
 
 [[package]]
 name = "trust_cert"
-version = "0.0.4"
+version = "0.0.5"
 dependencies = [
  "nix",
  "rcgen",
@@ -2204,9 +2204,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.42.0"
+version = "0.43.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0286ba339aa753e70765d521bb0242cc48e1194562bfa2a2ad7ac8a6de28f5d5"
+checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc 0.42.0",

+ 6 - 3
Cargo.toml

@@ -19,7 +19,7 @@ codegen-units = 1
 
 [dependencies]
 mitm-core = { path = "crates/core", package = "good-mitm-core" }
-rule = { path = "crates/rule", package = "good-mitm-rule" }
+rule = { path = "crates/rule", package = "good-mitm-rule", features = ["js"] }
 
 anyhow = "1.0"
 clap = { version = "4", features = ["derive"] }
@@ -30,10 +30,13 @@ serde = { version = "1.0", features = ["derive"] }
 serde_yaml = "0.9"
 hyper-proxy = { version = "0.9", default-features = false }
 rustls-pemfile = "1.0"
-tokio = { version = "1", features = ["rt", "signal"] }
+tokio = { version = "1", features = ["rt-multi-thread", "signal"] }
 rustls = "0.20"
-trust_cert = { path = "crates/trust_cert" }
+trust_cert = { path = "crates/trust_cert", optional = true }
 
+[features]
+default = []
+trust-cert = ["dep:trust_cert"]
 
 [workspace]
 members = [

+ 1 - 1
crates/rule/Cargo.toml

@@ -13,7 +13,7 @@ mitm-core = { path = "../core", package = "good-mitm-core" }
 
 anyhow = "1.0"
 async-trait = "0.1"
-cached = "0.39"
+cached = "0.40"
 cookie = "0.16"
 fancy-regex = "0.10"
 http = "0.2"

+ 2 - 2
crates/trust_cert/Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "trust_cert"
-version = "0.0.4"
+version = "0.0.5"
 edition = "2021"
 description = "Install certificate to your system trust zone."
 homepage = "https://github.com/zu1k/good-mitm"
@@ -14,4 +14,4 @@ rcgen = { version = "0.10", features = ["x509-parser"] }
 nix = { version = "0.25", default-features = false, features = ["user"] }
 
 [target.'cfg(windows)'.dependencies]
-windows = { version = "0.42", features = ["Win32_Security_Cryptography", "Win32_Foundation"] }
+windows = { version = "0.43", features = ["Win32_Security_Cryptography", "Win32_Foundation"] }

+ 15 - 6
src/file/mod.rs

@@ -1,12 +1,12 @@
 use anyhow::Result;
-use std::{fs, io::BufReader, path::Path};
-
+use log::error;
 use single_multi::SingleOrMulti;
+use std::{fs, io::BufReader, path::Path};
 
 pub mod frule;
 mod single_multi;
 
-pub fn load_rules_amd_mitm_filters<P: AsRef<Path>>(
+pub fn load_rules_amd_mitm_filters<P: AsRef<Path> + Clone>(
     path: P,
 ) -> Result<(Vec<rule::Rule>, Vec<String>)> {
     let m = fs::metadata(&path).expect("Not a valid path");
@@ -17,12 +17,21 @@ pub fn load_rules_amd_mitm_filters<P: AsRef<Path>>(
     }
 }
 
-fn load_rules_amd_mitm_filters_from_file<P: AsRef<Path>>(
+fn load_rules_amd_mitm_filters_from_file<P: AsRef<Path> + Clone>(
     path: P,
 ) -> Result<(Vec<rule::Rule>, Vec<String>)> {
-    let file = fs::File::open(path)?;
+    let file = fs::File::open(path.clone())?;
     let reader = BufReader::new(file);
-    let rules: Vec<frule::Rule> = serde_yaml::from_reader(reader)?;
+    let rules: Vec<frule::Rule> = match serde_yaml::from_reader(reader) {
+        Ok(rules) => rules,
+        Err(err) => {
+            error!(
+                "load rule ({}) failed: {err}",
+                path.as_ref().to_str().unwrap()
+            );
+            return Err(err.into());
+        }
+    };
 
     let (rules, filters) = rules
         .into_iter()

+ 1 - 0
src/lib.rs

@@ -4,6 +4,7 @@ pub mod file;
 
 pub use hyper_proxy;
 pub use mitm_core;
+#[cfg(feature = "trust-cert")]
 pub use trust_cert;
 
 pub async fn shutdown_signal() {

+ 2 - 0
src/main.rs

@@ -60,8 +60,10 @@ fn main() {
             run(&opts).unwrap();
         }
         SubCommand::Genca(opts) => {
+            #[allow(unused_variables)]
             let cert = ca::gen_ca();
             if opts.trust {
+                #[cfg(feature = "trust-cert")]
                 trust_cert::trust_cert(cert);
             }
         }