[INFO] fetching crate bell_system 0.0.1... [INFO] checking bell_system-0.0.1 against master#4847d6a9d07d4be9ba3196f6ad444af2d7bdde72 for pr-134276 [INFO] extracting crate bell_system 0.0.1 into /workspace/builds/worker-4-tc1/source [INFO] validating manifest of crates.io crate bell_system 0.0.1 on toolchain 4847d6a9d07d4be9ba3196f6ad444af2d7bdde72 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4847d6a9d07d4be9ba3196f6ad444af2d7bdde72" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate bell_system 0.0.1 [INFO] finished tweaking crates.io crate bell_system 0.0.1 [INFO] tweaked toml for crates.io crate bell_system 0.0.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4847d6a9d07d4be9ba3196f6ad444af2d7bdde72" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 307 packages to latest compatible versions [INFO] [stderr] Adding base64 v0.21.7 (available: v0.22.1) [INFO] [stderr] Adding lettre v0.10.4 (available: v0.11.11) [INFO] [stderr] Adding local-ip-address v0.5.7 (available: v0.6.3) [INFO] [stderr] Adding nix v0.26.4 (available: v0.29.0) [INFO] [stderr] Adding reqwest v0.11.27 (available: v0.12.9) [INFO] [stderr] Adding rusqlite v0.29.0 (available: v0.32.1) [INFO] [stderr] Adding sysinfo v0.29.11 (available: v0.33.0) [INFO] [stderr] Adding thiserror v1.0.69 (available: v2.0.7) [INFO] [stderr] Adding toml v0.7.8 (available: v0.8.19) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4847d6a9d07d4be9ba3196f6ad444af2d7bdde72" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded totp-rs v5.6.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+4847d6a9d07d4be9ba3196f6ad444af2d7bdde72" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fbd2100f100cc200bdf78d987e232244b7d54cb9482c21acb509e1ac0ce35e0d [INFO] running `Command { std: "docker" "start" "-a" "fbd2100f100cc200bdf78d987e232244b7d54cb9482c21acb509e1ac0ce35e0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fbd2100f100cc200bdf78d987e232244b7d54cb9482c21acb509e1ac0ce35e0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fbd2100f100cc200bdf78d987e232244b7d54cb9482c21acb509e1ac0ce35e0d", kill_on_drop: false }` [INFO] [stdout] fbd2100f100cc200bdf78d987e232244b7d54cb9482c21acb509e1ac0ce35e0d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+4847d6a9d07d4be9ba3196f6ad444af2d7bdde72" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b7b06bebdc249b83f42d5807b4fbee304c24326197679debe728c2b65526230d [INFO] running `Command { std: "docker" "start" "-a" "b7b06bebdc249b83f42d5807b4fbee304c24326197679debe728c2b65526230d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.168 [INFO] [stderr] Compiling serde v1.0.216 [INFO] [stderr] Compiling pkg-config v0.3.31 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling openssl v0.10.68 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking inout v0.1.3 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Compiling rustversion v1.0.18 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling serde_json v1.0.133 [INFO] [stderr] Checking untrusted v0.7.1 [INFO] [stderr] Checking tinyvec v1.8.0 [INFO] [stderr] Compiling memoffset v0.7.1 [INFO] [stderr] Compiling libseccomp-sys v0.2.1 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Compiling anyhow v1.0.94 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking opaque-debug v0.3.1 [INFO] [stderr] Compiling seccomp-sys v0.1.3 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Checking destructure_traitobject v0.2.0 [INFO] [stderr] Checking unsafe-any-ors v1.0.0 [INFO] [stderr] Compiling libseccomp v0.3.0 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Compiling syscallz v0.17.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling openssl-sys v0.9.104 [INFO] [stderr] Compiling libsqlite3-sys v0.26.0 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Checking winnow v0.5.40 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking base64ct v1.6.0 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Checking match_cfg v0.1.0 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking email-encoding v0.2.1 [INFO] [stderr] Checking typemap-ors v1.0.0 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking base32 v0.4.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking sync_wrapper v0.1.2 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking log-mdc v0.1.0 [INFO] [stderr] Checking constant_time_eq v0.2.6 [INFO] [stderr] Checking idna v0.3.0 [INFO] [stderr] Checking strum v0.25.0 [INFO] [stderr] Checking webpki-roots v0.25.4 [INFO] [stderr] Checking fastrand v1.9.0 [INFO] [stderr] Checking ipnet v2.10.1 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking quoted_printable v0.4.8 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking email_address v0.2.9 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking ring v0.17.8 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking thread-id v4.2.2 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Checking polyval v0.6.2 [INFO] [stderr] Checking sysinfo v0.29.11 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking ghash v0.5.1 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking ctr v0.9.2 [INFO] [stderr] Checking argon2 v0.5.3 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Checking aes-gcm v0.10.3 [INFO] [stderr] Checking rustls-webpki v0.100.3 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling structopt-derive v0.4.18 [INFO] [stderr] Checking webpki-roots v0.23.1 [INFO] [stderr] Compiling serde_derive v1.0.216 [INFO] [stderr] Compiling zerofrom-derive v0.1.5 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling strum_macros v0.25.3 [INFO] [stderr] Checking tokio v1.42.0 [INFO] [stderr] Checking structopt v0.3.26 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking zerofrom v0.1.5 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Checking hashlink v0.8.4 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking totp-rs v5.6.0 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking tokio-util v0.7.13 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking chrono v0.4.39 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking ipnetwork v0.20.0 [INFO] [stderr] Checking toml_edit v0.19.15 [INFO] [stderr] Checking users v0.11.0 [INFO] [stderr] Checking rusqlite v0.29.0 [INFO] [stderr] Compiling neli-proc-macros v0.1.3 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking log4rs v1.3.0 [INFO] [stderr] Checking neli v0.6.4 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking toml v0.7.8 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking lettre v0.10.4 [INFO] [stderr] Checking local-ip-address v0.5.7 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking bell_system v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/authentication_compliance/complication.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/authentication_compliance/complication.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `compliance_config` [INFO] [stdout] --> src/authentication_compliance/complication.rs:1028:37 [INFO] [stdout] | [INFO] [stdout] 1028 | async fn check_linux_configurations(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compliance_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `compliance_config` [INFO] [stdout] --> src/authentication_compliance/complication.rs:1028:37 [INFO] [stdout] | [INFO] [stdout] 1028 | async fn check_linux_configurations(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compliance_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `compliance_config` [INFO] [stdout] --> src/authentication_compliance/complication.rs:865:37 [INFO] [stdout] | [INFO] [stdout] 865 | async fn perform_os_specific_checks(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compliance_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `compliance_config` [INFO] [stdout] --> src/authentication_compliance/complication.rs:865:37 [INFO] [stdout] | [INFO] [stdout] 865 | async fn perform_os_specific_checks(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compliance_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network/network.rs:445:9 [INFO] [stdout] | [INFO] [stdout] 445 | let mut file = OpenOptions::new() [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network/network.rs:445:9 [INFO] [stdout] | [INFO] [stdout] 445 | let mut file = OpenOptions::new() [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `KeyType` is more private than the item `SecureStorage::generate_key` [INFO] [stdout] --> src/hsm/hsm.rs:290:5 [INFO] [stdout] | [INFO] [stdout] 290 | / pub async fn generate_key( [INFO] [stdout] 291 | | &self, [INFO] [stdout] 292 | | label: &str, [INFO] [stdout] 293 | | key_type: KeyType, [INFO] [stdout] 294 | | usage: KeyUsage, [INFO] [stdout] 295 | | ) -> Result> { [INFO] [stdout] | |________________________^ method `SecureStorage::generate_key` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `KeyType` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/hsm/hsm.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | enum KeyType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `KeyUsage` is more private than the item `SecureStorage::generate_key` [INFO] [stdout] --> src/hsm/hsm.rs:290:5 [INFO] [stdout] | [INFO] [stdout] 290 | / pub async fn generate_key( [INFO] [stdout] 291 | | &self, [INFO] [stdout] 292 | | label: &str, [INFO] [stdout] 293 | | key_type: KeyType, [INFO] [stdout] 294 | | usage: KeyUsage, [INFO] [stdout] 295 | | ) -> Result> { [INFO] [stdout] | |________________________^ method `SecureStorage::generate_key` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `KeyUsage` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/hsm/hsm.rs:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | enum KeyUsage { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `privilege_level`, `command`, and `args` are never read [INFO] [stdout] --> src/bell.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 42 | Run { [INFO] [stdout] | --- fields in this variant [INFO] [stdout] 43 | #[structopt(short, long)] [INFO] [stdout] 44 | privilege_level: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 45 | #[structopt(short, long)] [INFO] [stdout] 46 | command: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | #[structopt(short, long)] [INFO] [stdout] 48 | args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Opt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cmd` is never read [INFO] [stdout] --> src/bell.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 51 | User { [INFO] [stdout] | ---- field in this variant [INFO] [stdout] 52 | #[structopt(subcommand)] [INFO] [stdout] 53 | cmd: UserCommand, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Opt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username` and `privilege` are never read [INFO] [stdout] --> src/bell.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 59 | Add { [INFO] [stdout] | --- fields in this variant [INFO] [stdout] 60 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | #[structopt(short, long)] [INFO] [stdout] 62 | privilege: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `username` is never read [INFO] [stdout] --> src/bell.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 64 | Remove { [INFO] [stdout] | ------ field in this variant [INFO] [stdout] 65 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `username` is never read [INFO] [stdout] --> src/bell.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 67 | ChangePassword { [INFO] [stdout] | -------------- field in this variant [INFO] [stdout] 68 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username` and `privilege` are never read [INFO] [stdout] --> src/bell.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 70 | ChangePrivilege { [INFO] [stdout] | --------------- fields in this variant [INFO] [stdout] 71 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 72 | privilege: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username` and `group` are never read [INFO] [stdout] --> src/bell.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 74 | AddToGroup { [INFO] [stdout] | ---------- fields in this variant [INFO] [stdout] 75 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 76 | group: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username` and `group` are never read [INFO] [stdout] --> src/bell.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 78 | RemoveFromGroup { [INFO] [stdout] | --------------- fields in this variant [INFO] [stdout] 79 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 80 | group: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/bell.rs:85:10 [INFO] [stdout] | [INFO] [stdout] 85 | async fn main() -> Result<(), Box> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_audit_event` is never used [INFO] [stdout] --> src/audit/audit.rs:93:14 [INFO] [stdout] | [INFO] [stdout] 93 | pub async fn log_audit_event(event: &str, user: &str, details: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_audit_event` is never used [INFO] [stdout] --> src/audit/audit.rs:119:4 [INFO] [stdout] | [INFO] [stdout] 119 | fn create_audit_event(event: &str, user: &str, details: &str) -> AuditEvent { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_to_log_file` is never used [INFO] [stdout] --> src/audit/audit.rs:131:10 [INFO] [stdout] | [INFO] [stdout] 131 | async fn write_to_log_file(config: &AuditConfig, event: &AuditEvent) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_to_database` is never used [INFO] [stdout] --> src/audit/audit.rs:155:10 [INFO] [stdout] | [INFO] [stdout] 155 | async fn log_to_database(config: &AuditConfig, event: &AuditEvent) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_critical_event` is never used [INFO] [stdout] --> src/audit/audit.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn is_critical_event(config: &AuditConfig, event: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `determine_severity` is never used [INFO] [stdout] --> src/audit/audit.rs:195:4 [INFO] [stdout] | [INFO] [stdout] 195 | fn determine_severity(event: &str) -> EventSeverity { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_alert` is never used [INFO] [stdout] --> src/audit/audit.rs:204:10 [INFO] [stdout] | [INFO] [stdout] 204 | async fn send_alert(config: &AuditConfig, event: &AuditEvent) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_and_rotate_logs` is never used [INFO] [stdout] --> src/audit/audit.rs:235:10 [INFO] [stdout] | [INFO] [stdout] 235 | async fn check_and_rotate_logs(config: &AuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_security_audit` is never used [INFO] [stdout] --> src/audit/security_audit.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | pub async fn perform_security_audit(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_system_updates` is never used [INFO] [stdout] --> src/audit/security_audit.rs:116:10 [INFO] [stdout] | [INFO] [stdout] 116 | async fn check_system_updates() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scan_for_vulnerabilities` is never used [INFO] [stdout] --> src/audit/security_audit.rs:154:10 [INFO] [stdout] | [INFO] [stdout] 154 | async fn scan_for_vulnerabilities(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_software_versions` is never used [INFO] [stdout] --> src/audit/security_audit.rs:170:10 [INFO] [stdout] | [INFO] [stdout] 170 | async fn check_software_versions() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_common_misconfigurations` is never used [INFO] [stdout] --> src/audit/security_audit.rs:189:10 [INFO] [stdout] | [INFO] [stdout] 189 | async fn check_common_misconfigurations(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_permissions` is never used [INFO] [stdout] --> src/audit/security_audit.rs:203:10 [INFO] [stdout] | [INFO] [stdout] 203 | async fn check_permissions(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_path_permissions` is never used [INFO] [stdout] --> src/audit/security_audit.rs:220:10 [INFO] [stdout] | [INFO] [stdout] 220 | async fn check_path_permissions(path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_world_writable_files` is never used [INFO] [stdout] --> src/audit/security_audit.rs:255:10 [INFO] [stdout] | [INFO] [stdout] 255 | async fn check_world_writable_files() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_suid_binaries` is never used [INFO] [stdout] --> src/audit/security_audit.rs:289:10 [INFO] [stdout] | [INFO] [stdout] 289 | async fn check_suid_binaries() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_suspicious_processes` is never used [INFO] [stdout] --> src/audit/security_audit.rs:350:10 [INFO] [stdout] | [INFO] [stdout] 350 | async fn check_suspicious_processes(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_unauthorized_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:381:10 [INFO] [stdout] | [INFO] [stdout] 381 | async fn check_unauthorized_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:392:10 [INFO] [stdout] | [INFO] [stdout] 392 | async fn check_macos_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:413:10 [INFO] [stdout] | [INFO] [stdout] 413 | async fn check_linux_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:431:10 [INFO] [stdout] | [INFO] [stdout] 431 | async fn check_bellande_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_macos_system_user` is never used [INFO] [stdout] --> src/audit/security_audit.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | fn is_macos_system_user(username: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_linux_system_user` is never used [INFO] [stdout] --> src/audit/security_audit.rs:459:4 [INFO] [stdout] | [INFO] [stdout] 459 | fn is_linux_system_user(username: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_bellande_system_user` is never used [INFO] [stdout] --> src/audit/security_audit.rs:491:4 [INFO] [stdout] | [INFO] [stdout] 491 | fn is_bellande_system_user(username: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_open_ports` is never used [INFO] [stdout] --> src/audit/security_audit.rs:498:10 [INFO] [stdout] | [INFO] [stdout] 498 | async fn check_open_ports(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_port_output` is never used [INFO] [stdout] --> src/audit/security_audit.rs:542:10 [INFO] [stdout] | [INFO] [stdout] 542 | async fn check_port_output(output: &str, allowed_ports: &HashSet) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_port_from_line` is never used [INFO] [stdout] --> src/audit/security_audit.rs:561:4 [INFO] [stdout] | [INFO] [stdout] 561 | fn extract_port_from_line(line: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_integrity` is never used [INFO] [stdout] --> src/audit/security_audit.rs:570:10 [INFO] [stdout] | [INFO] [stdout] 570 | async fn check_file_integrity(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_directory_integrity` is never used [INFO] [stdout] --> src/audit/security_audit.rs:584:10 [INFO] [stdout] | [INFO] [stdout] 584 | async fn check_directory_integrity( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_os_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:616:10 [INFO] [stdout] | [INFO] [stdout] 616 | async fn perform_os_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_macos_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:626:10 [INFO] [stdout] | [INFO] [stdout] 626 | async fn perform_macos_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_linux_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:675:10 [INFO] [stdout] | [INFO] [stdout] 675 | async fn perform_linux_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_bellande_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:714:10 [INFO] [stdout] | [INFO] [stdout] 714 | async fn perform_bellande_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_kernel_parameters` is never used [INFO] [stdout] --> src/audit/security_audit.rs:763:10 [INFO] [stdout] | [INFO] [stdout] 763 | async fn check_kernel_parameters() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_file_hash` is never used [INFO] [stdout] --> src/audit/security_audit.rs:791:4 [INFO] [stdout] | [INFO] [stdout] 791 | fn calculate_file_hash(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_hash_database` is never used [INFO] [stdout] --> src/audit/security_audit.rs:798:4 [INFO] [stdout] | [INFO] [stdout] 798 | fn load_hash_database(path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_hash_database` is never used [INFO] [stdout] --> src/audit/security_audit.rs:808:4 [INFO] [stdout] | [INFO] [stdout] 808 | fn save_hash_database(path: &Path, database: &HashMap) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Session` is never constructed [INFO] [stdout] --> src/authentication_compliance/authentication.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Session { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RateLimiter` is never constructed [INFO] [stdout] --> src/authentication_compliance/authentication.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct RateLimiter { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `check` are never used [INFO] [stdout] --> src/authentication_compliance/authentication.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl RateLimiter { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 40 | pub fn new(max_attempts: usize, window: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn check(&mut self, key: &str) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `authenticate_user` is never used [INFO] [stdout] --> src/authentication_compliance/authentication.rs:66:14 [INFO] [stdout] | [INFO] [stdout] 66 | pub async fn authenticate_user( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password` is never used [INFO] [stdout] --> src/authentication_compliance/authentication.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn verify_password(hash: &str, password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password` is never used [INFO] [stdout] --> src/authentication_compliance/authentication.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn hash_password(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `required_protocols`, `minimum_networks`, `required_firewall`, and `required_encryption` are never read [INFO] [stdout] --> src/authentication_compliance/complication.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct NetworkRequirements { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 36 | pub required_protocols: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | pub minimum_networks: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 38 | pub required_firewall: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 39 | pub required_encryption: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkRequirements` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/authentication_compliance/complication.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct ComplianceConfig { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 44 | // Original fields [INFO] [stdout] 45 | pub min_password_length: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 46 | pub min_password_entropy: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | pub password_complexity_regex: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | pub critical_files: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 49 | pub required_services: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 50 | pub required_kernel_params: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 51 | pub audit_file_hashes: PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 52 | pub network_requirements: NetworkRequirements, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub password_max_days: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 56 | pub password_min_days: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 57 | pub password_warn_days: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 58 | pub max_repeated_chars: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ComplianceConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PasswordViolation` is never constructed [INFO] [stdout] --> src/authentication_compliance/complication.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | struct PasswordViolation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ViolationSeverity` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:68:6 [INFO] [stdout] | [INFO] [stdout] 68 | enum ViolationSeverity { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_required_services` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:162:4 [INFO] [stdout] | [INFO] [stdout] 162 | fn get_required_services() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_compliance` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn check_compliance(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_password_complexity` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:398:10 [INFO] [stdout] | [INFO] [stdout] 398 | async fn check_password_complexity( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_common_password` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:500:10 [INFO] [stdout] | [INFO] [stdout] 500 | async fn is_common_password(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_password_strength` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:512:4 [INFO] [stdout] | [INFO] [stdout] 512 | fn validate_password_strength(password: &str, config: &ComplianceConfig) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_repeating_chars` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:571:4 [INFO] [stdout] | [INFO] [stdout] 571 | fn has_repeating_chars(password: &str, max_repeats: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_password_entropy` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn calculate_password_entropy(password: &str) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_permissions` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:618:10 [INFO] [stdout] | [INFO] [stdout] 618 | async fn check_file_permissions(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_single_file_permissions` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:662:10 [INFO] [stdout] | [INFO] [stdout] 662 | async fn check_single_file_permissions(file_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_system_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:709:10 [INFO] [stdout] | [INFO] [stdout] 709 | async fn check_system_configurations(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_kernel_parameter` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:738:10 [INFO] [stdout] | [INFO] [stdout] 738 | async fn check_kernel_parameter(param: &str, expected_value: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_expected_value` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:775:4 [INFO] [stdout] | [INFO] [stdout] 775 | fn get_expected_value(param: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_kernel_parameter` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:787:10 [INFO] [stdout] | [INFO] [stdout] 787 | async fn get_kernel_parameter(param: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_audit_log_integrity` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:797:10 [INFO] [stdout] | [INFO] [stdout] 797 | async fn check_audit_log_integrity(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_network_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:838:10 [INFO] [stdout] | [INFO] [stdout] 838 | async fn check_network_configurations( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_os_specific_checks` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:865:10 [INFO] [stdout] | [INFO] [stdout] 865 | async fn perform_os_specific_checks(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:951:10 [INFO] [stdout] | [INFO] [stdout] 951 | async fn check_macos_configurations() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1028:10 [INFO] [stdout] | [INFO] [stdout] 1028 | async fn check_linux_configurations(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1090:10 [INFO] [stdout] | [INFO] [stdout] 1090 | async fn check_bellande_configurations() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_sysctl_settings` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1159:10 [INFO] [stdout] | [INFO] [stdout] 1159 | async fn check_sysctl_settings() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_password_policies` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1193:10 [INFO] [stdout] | [INFO] [stdout] 1193 | async fn check_password_policies() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_core_dumps` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1222:10 [INFO] [stdout] | [INFO] [stdout] 1222 | async fn check_core_dumps() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_security_policies` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1240:10 [INFO] [stdout] | [INFO] [stdout] 1240 | async fn check_bellande_security_policies() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_service_running` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1270:10 [INFO] [stdout] | [INFO] [stdout] 1270 | async fn is_service_running(service: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_firewall_status` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1294:10 [INFO] [stdout] | [INFO] [stdout] 1294 | async fn check_firewall_status() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_network_encryption` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1346:10 [INFO] [stdout] | [INFO] [stdout] 1346 | async fn check_network_encryption(network_requirements: &NetworkRequirements) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_ssl_versions` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1359:10 [INFO] [stdout] | [INFO] [stdout] 1359 | async fn check_ssl_versions(required_protocols: &[String]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_ssh_configuration` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1385:10 [INFO] [stdout] | [INFO] [stdout] 1385 | async fn check_ssh_configuration() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_encrypted_protocols` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1429:10 [INFO] [stdout] | [INFO] [stdout] 1429 | async fn check_encrypted_protocols() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_last_password_change` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1454:10 [INFO] [stdout] | [INFO] [stdout] 1454 | async fn get_last_password_change(username: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_file_hash` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1481:4 [INFO] [stdout] | [INFO] [stdout] 1481 | fn calculate_file_hash(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_file_hashes` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1488:4 [INFO] [stdout] | [INFO] [stdout] 1488 | fn load_file_hashes(path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_file_hash` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1497:4 [INFO] [stdout] | [INFO] [stdout] 1497 | fn save_file_hash(path: &Path, file_path: &Path, hash: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SandboxContext` is never constructed [INFO] [stdout] --> src/command/command.rs:88:8 [INFO] [stdout] | [INFO] [stdout] 88 | struct SandboxContext { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `load`, and `allow_syscall` are never used [INFO] [stdout] --> src/command/command.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 100 | impl SandboxContext { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 101 | fn new(context: SyscallContext) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | fn load(&self) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn allow_syscall(&mut self, syscall: Syscall) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandContext` is never constructed [INFO] [stdout] --> src/command/command.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | struct CommandContext { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `pattern` and `description` are never read [INFO] [stdout] --> src/command/command.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 130 | struct DangerousPattern { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 131 | pattern: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 132 | description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DangerousPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command_with_privilege` is never used [INFO] [stdout] --> src/command/command.rs:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | pub async fn run_command_with_privilege( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_command_input` is never used [INFO] [stdout] --> src/command/command.rs:176:4 [INFO] [stdout] | [INFO] [stdout] 176 | fn validate_command_input(command: &str, args: &[String]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_session_and_permissions` is never used [INFO] [stdout] --> src/command/command.rs:195:10 [INFO] [stdout] | [INFO] [stdout] 195 | async fn check_session_and_permissions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_session_state` is never used [INFO] [stdout] --> src/command/command.rs:226:10 [INFO] [stdout] | [INFO] [stdout] 226 | async fn check_session_state(session: &Session, command: &str, args: &[String]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_command_permissions` is never used [INFO] [stdout] --> src/command/command.rs:260:10 [INFO] [stdout] | [INFO] [stdout] 260 | async fn check_command_permissions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_network_access` is never used [INFO] [stdout] --> src/command/command.rs:309:10 [INFO] [stdout] | [INFO] [stdout] 309 | async fn check_network_access( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `execute_command_safely` is never used [INFO] [stdout] --> src/command/command.rs:329:10 [INFO] [stdout] | [INFO] [stdout] 329 | async fn execute_command_safely(ctx: CommandContext) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_command_context` is never used [INFO] [stdout] --> src/command/command.rs:384:4 [INFO] [stdout] | [INFO] [stdout] 384 | fn create_command_context( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `execute_command_with_timeout` is never used [INFO] [stdout] --> src/command/command.rs:406:10 [INFO] [stdout] | [INFO] [stdout] 406 | async fn execute_command_with_timeout(ctx: &CommandContext) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_command_output` is never used [INFO] [stdout] --> src/command/command.rs:420:10 [INFO] [stdout] | [INFO] [stdout] 420 | async fn process_command_output(ctx: &CommandContext, output: &std::process::Output) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_sandbox` is never used [INFO] [stdout] --> src/command/command.rs:470:4 [INFO] [stdout] | [INFO] [stdout] 470 | fn create_sandbox() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `drop_privileges` is never used [INFO] [stdout] --> src/command/command.rs:533:4 [INFO] [stdout] | [INFO] [stdout] 533 | fn drop_privileges() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_dangerous_patterns` is never used [INFO] [stdout] --> src/command/command.rs:551:10 [INFO] [stdout] | [INFO] [stdout] 551 | async fn check_dangerous_patterns(ctx: &CommandContext) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert_patterns` is never used [INFO] [stdout] --> src/command/command.rs:578:4 [INFO] [stdout] | [INFO] [stdout] 578 | fn convert_patterns(patterns: [(&str, &str); N]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_specific_patterns` is never used [INFO] [stdout] --> src/command/command.rs:582:10 [INFO] [stdout] | [INFO] [stdout] 582 | async fn check_macos_specific_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_specific_patterns` is never used [INFO] [stdout] --> src/command/command.rs:593:10 [INFO] [stdout] | [INFO] [stdout] 593 | async fn check_linux_specific_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_specific_patterns` is never used [INFO] [stdout] --> src/command/command.rs:605:10 [INFO] [stdout] | [INFO] [stdout] 605 | async fn check_bellande_specific_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_patterns` is never used [INFO] [stdout] --> src/command/command.rs:616:10 [INFO] [stdout] | [INFO] [stdout] 616 | async fn check_patterns( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_patterns` is never used [INFO] [stdout] --> src/command/command.rs:630:10 [INFO] [stdout] | [INFO] [stdout] 630 | async fn check_macos_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_patterns` is never used [INFO] [stdout] --> src/command/command.rs:653:10 [INFO] [stdout] | [INFO] [stdout] 653 | async fn check_linux_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_patterns` is never used [INFO] [stdout] --> src/command/command.rs:676:10 [INFO] [stdout] | [INFO] [stdout] 676 | async fn check_bellande_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/config/config.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 171 | impl Config { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 172 | pub fn load() -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn save(&self) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | fn get_config_path() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | fn ensure_directories_exist() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | fn verify_integrity(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | async fn create_backup(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 272 | fn update_os_settings(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_default_macos_applications` is never used [INFO] [stdout] --> src/config/config.rs:322:4 [INFO] [stdout] | [INFO] [stdout] 322 | fn get_default_macos_applications() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_permission` is never used [INFO] [stdout] --> src/config/config.rs:329:4 [INFO] [stdout] | [INFO] [stdout] 329 | fn is_valid_permission(permission: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SIZE` is never used [INFO] [stdout] --> src/hsm/hsm.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const KEY_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NONCE_SIZE` is never used [INFO] [stdout] --> src/hsm/hsm.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const NONCE_SIZE: usize = 12; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_ROTATION_DAYS` is never used [INFO] [stdout] --> src/hsm/hsm.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | const KEY_ROTATION_DAYS: u64 = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SecureStorage` is never constructed [INFO] [stdout] --> src/hsm/hsm.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct SecureStorage { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_secure_permissions` is never used [INFO] [stdout] --> src/hsm/hsm.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn set_secure_permissions(options: &mut OpenOptions) -> &mut OpenOptions { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_sensitive_data` is never used [INFO] [stdout] --> src/hsm/hsm.rs:85:4 [INFO] [stdout] | [INFO] [stdout] 85 | fn encode_sensitive_data(data: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_sensitive_data` is never used [INFO] [stdout] --> src/hsm/hsm.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn decode_sensitive_data(data: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hsm/hsm.rs:96:18 [INFO] [stdout] | [INFO] [stdout] 95 | impl SecureStorage { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 96 | pub async fn new() -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | async fn initialize(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | async fn load_key_from_keyring(&self, line: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | async fn load_key_from_keychain(&self, line: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | async fn load_key_from_bellande(&self, line: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | async fn load_master_key_from_keychain(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | async fn load_master_key_from_bellande(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | async fn save_keys(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub async fn generate_key( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | pub async fn encrypt_data(&self, data: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub async fn decrypt_data(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | async fn load_master_key_from_keyring(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | async fn load_master_key(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | async fn load_master_key_from_file(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 419 | async fn encrypt_with_master_key( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | async fn check_key_rotation(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 455 | async fn initialize_keychain(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 468 | async fn initialize_keyring(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 481 | async fn initialize_bellande_secure_store(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 494 | async fn generate_and_store_master_key(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 533 | async fn store_master_key_to_file(&self, key: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 548 | async fn store_key_in_platform_storage(&self, key_store: &KeyStore) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 562 | async fn store_key_in_keychain(&self, key_store: &KeyStore, encoded_data: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 599 | async fn store_key_in_keyring(&self, key_store: &KeyStore, encoded_data: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 623 | async fn store_key_in_bellande(&self, key_store: &KeyStore, encoded_data: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 658 | async fn store_key_in_file(&self, key_store: &KeyStore, encoded_data: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 682 | async fn load_keys(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_platform_storage_path` is never used [INFO] [stdout] --> src/hsm/hsm.rs:764:4 [INFO] [stdout] | [INFO] [stdout] 764 | fn get_platform_storage_path() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ensure_secure_directory` is never used [INFO] [stdout] --> src/hsm/hsm.rs:779:4 [INFO] [stdout] | [INFO] [stdout] 779 | fn ensure_secure_directory(path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_key_fingerprint` is never used [INFO] [stdout] --> src/hsm/hsm.rs:793:4 [INFO] [stdout] | [INFO] [stdout] 793 | fn calculate_key_fingerprint(key: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_crypto_operation` is never used [INFO] [stdout] --> src/hsm/hsm.rs:799:10 [INFO] [stdout] | [INFO] [stdout] 799 | async fn log_crypto_operation(operation: &str, data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_data` is never used [INFO] [stdout] --> src/hsm/hsm.rs:810:14 [INFO] [stdout] | [INFO] [stdout] 810 | pub async fn encrypt_data(data: &str) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_data` is never used [INFO] [stdout] --> src/hsm/hsm.rs:816:14 [INFO] [stdout] | [INFO] [stdout] 816 | pub async fn decrypt_data(encrypted_data: &str) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkCommands` is never constructed [INFO] [stdout] --> src/network/network.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | struct NetworkCommands { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/network/network.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 63 | impl NetworkCommands { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 64 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `isolate_network` is never used [INFO] [stdout] --> src/network/network.rs:156:14 [INFO] [stdout] | [INFO] [stdout] 156 | pub async fn isolate_network() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_network` is never used [INFO] [stdout] --> src/network/network.rs:191:14 [INFO] [stdout] | [INFO] [stdout] 191 | pub async fn restore_network() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command` is never used [INFO] [stdout] --> src/network/network.rs:234:10 [INFO] [stdout] | [INFO] [stdout] 234 | async fn run_command(cmd: &str, args: &[String]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replace_interface_placeholder` is never used [INFO] [stdout] --> src/network/network.rs:248:4 [INFO] [stdout] | [INFO] [stdout] 248 | fn replace_interface_placeholder(cmd: &[String], interface: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_firewall_rules` is never used [INFO] [stdout] --> src/network/network.rs:254:10 [INFO] [stdout] | [INFO] [stdout] 254 | async fn setup_firewall_rules(config: &NetworkConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_pf_firewall` is never used [INFO] [stdout] --> src/network/network.rs:264:10 [INFO] [stdout] | [INFO] [stdout] 264 | async fn setup_pf_firewall(config: &NetworkConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_iptables_firewall` is never used [INFO] [stdout] --> src/network/network.rs:278:10 [INFO] [stdout] | [INFO] [stdout] 278 | async fn setup_iptables_firewall(config: &NetworkConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_bell_firewall` is never used [INFO] [stdout] --> src/network/network.rs:303:10 [INFO] [stdout] | [INFO] [stdout] 303 | async fn setup_bell_firewall(config: &NetworkConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_pf_rules` is never used [INFO] [stdout] --> src/network/network.rs:324:4 [INFO] [stdout] | [INFO] [stdout] 324 | fn generate_pf_rules(config: &NetworkConfig) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `request_dhcp_lease` is never used [INFO] [stdout] --> src/network/network.rs:363:10 [INFO] [stdout] | [INFO] [stdout] 363 | async fn request_dhcp_lease(interface: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_audit_event` is never used [INFO] [stdout] --> src/network/network.rs:387:10 [INFO] [stdout] | [INFO] [stdout] 387 | async fn log_audit_event(event_type: &str, user: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_source_ip` is never used [INFO] [stdout] --> src/network/network.rs:410:10 [INFO] [stdout] | [INFO] [stdout] 410 | async fn get_source_ip() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_event_severity` is never used [INFO] [stdout] --> src/network/network.rs:417:4 [INFO] [stdout] | [INFO] [stdout] 417 | fn get_event_severity(event_type: &str) -> AuditSeverity { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_audit_log` is never used [INFO] [stdout] --> src/network/network.rs:426:10 [INFO] [stdout] | [INFO] [stdout] 426 | async fn write_audit_log(event: &AuditEvent) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `flush_audit_log` is never used [INFO] [stdout] --> src/network/network.rs:442:10 [INFO] [stdout] | [INFO] [stdout] 442 | async fn flush_audit_log() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_audit_log_path` is never used [INFO] [stdout] --> src/network/network.rs:456:4 [INFO] [stdout] | [INFO] [stdout] 456 | fn get_audit_log_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_audit_logs` is never used [INFO] [stdout] --> src/network/network.rs:465:14 [INFO] [stdout] | [INFO] [stdout] 465 | pub async fn rotate_audit_logs() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_network_allowed` is never used [INFO] [stdout] --> src/network/network.rs:494:14 [INFO] [stdout] | [INFO] [stdout] 494 | pub async fn is_network_allowed(config: &Config) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InsufficientPrivileges`, `ExpiredPrivileges`, `GroupNotFound`, and `PermissionNotFound` are never constructed [INFO] [stdout] --> src/user_privilege/privilege.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum PrivilegeLevelError { [INFO] [stdout] | ------------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 46 | InsufficientPrivileges, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | #[error("Expired privileges")] [INFO] [stdout] 48 | ExpiredPrivileges, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | #[error("Group not found: {0}")] [INFO] [stdout] 50 | GroupNotFound(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 51 | #[error("Permission not found: {0}")] [INFO] [stdout] 52 | PermissionNotFound(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrivilegeLevelError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PrivilegeManager` is never constructed [INFO] [stdout] --> src/user_privilege/privilege.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct PrivilegeManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrivilegeManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PrivilegeElevation` is never constructed [INFO] [stdout] --> src/user_privilege/privilege.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | struct PrivilegeElevation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `check_permission`, `elevate_privilege`, `revoke_elevation`, and `cleanup_expired_elevations` are never used [INFO] [stdout] --> src/user_privilege/privilege.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl PrivilegeManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 118 | pub fn new(config: PrivilegeConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub async fn check_permission( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub async fn elevate_privilege( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub async fn revoke_elevation(&mut self, user: &str, level: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn cleanup_expired_elevations(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_os_specific_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:256:14 [INFO] [stdout] | [INFO] [stdout] 256 | pub async fn check_os_specific_privileges( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:268:10 [INFO] [stdout] | [INFO] [stdout] 268 | async fn check_macos_privileges(user: &User, required_privilege: PrivilegeLevel) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:283:10 [INFO] [stdout] | [INFO] [stdout] 283 | async fn check_linux_privileges(user: &User, required_privilege: PrivilegeLevel) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:299:10 [INFO] [stdout] | [INFO] [stdout] 299 | async fn check_bellande_privileges( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `UserNotFound`, `UserExists`, `InvalidPassword`, `AccountLocked`, `PasswordExpired`, and `InvalidGroup` are never constructed [INFO] [stdout] --> src/user_privilege/user.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub enum UserError { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 60 | #[error("User not found: {0}")] [INFO] [stdout] 61 | UserNotFound(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 62 | #[error("User already exists: {0}")] [INFO] [stdout] 63 | UserExists(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 64 | #[error("Invalid password: {0}")] [INFO] [stdout] 65 | InvalidPassword(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 66 | #[error("Account locked: {0}")] [INFO] [stdout] 67 | AccountLocked(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 68 | #[error("Password expired")] [INFO] [stdout] 69 | PasswordExpired, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 70 | #[error("Invalid group: {0}")] [INFO] [stdout] 71 | InvalidGroup(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_locked`, `password_expired`, and `record_login_attempt` are never used [INFO] [stdout] --> src/user_privilege/user.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 86 | impl User { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 87 | pub fn new(username: &str, password: &str, privilege: PrivilegeLevel) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn is_locked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn password_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn record_login_attempt(&mut self, success: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:137:14 [INFO] [stdout] | [INFO] [stdout] 137 | pub async fn add_user( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:171:14 [INFO] [stdout] | [INFO] [stdout] 171 | pub async fn remove_user(config: &mut Config, username: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:194:14 [INFO] [stdout] | [INFO] [stdout] 194 | pub async fn change_password( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_privilege` is never used [INFO] [stdout] --> src/user_privilege/user.rs:235:14 [INFO] [stdout] | [INFO] [stdout] 235 | pub async fn change_privilege( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_user_to_group` is never used [INFO] [stdout] --> src/user_privilege/user.rs:275:14 [INFO] [stdout] | [INFO] [stdout] 275 | pub async fn add_user_to_group( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_user_from_group` is never used [INFO] [stdout] --> src/user_privilege/user.rs:326:14 [INFO] [stdout] | [INFO] [stdout] 326 | pub async fn remove_user_from_group( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:363:4 [INFO] [stdout] | [INFO] [stdout] 363 | fn hash_password(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:377:4 [INFO] [stdout] | [INFO] [stdout] 377 | fn verify_password(hash: &str, password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_totp_secret` is never used [INFO] [stdout] --> src/user_privilege/user.rs:390:4 [INFO] [stdout] | [INFO] [stdout] 390 | fn generate_totp_secret() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_password_complexity` is never used [INFO] [stdout] --> src/user_privilege/user.rs:394:4 [INFO] [stdout] | [INFO] [stdout] 394 | fn validate_password_complexity(password: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_os_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:415:10 [INFO] [stdout] | [INFO] [stdout] 415 | async fn create_os_user(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_os_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:424:10 [INFO] [stdout] | [INFO] [stdout] 424 | async fn remove_os_user(username: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_os_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:433:10 [INFO] [stdout] | [INFO] [stdout] 433 | async fn update_os_password(username: &str, password: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_os_privileges` is never used [INFO] [stdout] --> src/user_privilege/user.rs:442:10 [INFO] [stdout] | [INFO] [stdout] 442 | async fn update_os_privileges(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_macos_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:452:10 [INFO] [stdout] | [INFO] [stdout] 452 | async fn create_macos_user(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_linux_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:467:10 [INFO] [stdout] | [INFO] [stdout] 467 | async fn create_linux_user(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_bellande_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:482:10 [INFO] [stdout] | [INFO] [stdout] 482 | async fn create_bellande_user(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_macos_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:503:10 [INFO] [stdout] | [INFO] [stdout] 503 | async fn remove_macos_user(username: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_linux_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:511:10 [INFO] [stdout] | [INFO] [stdout] 511 | async fn remove_linux_user(username: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_bellande_user` is never used [INFO] [stdout] --> src/user_privilege/user.rs:519:10 [INFO] [stdout] | [INFO] [stdout] 519 | async fn remove_bellande_user(username: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_macos_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:527:10 [INFO] [stdout] | [INFO] [stdout] 527 | async fn update_macos_password(username: &str, password: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_linux_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:535:10 [INFO] [stdout] | [INFO] [stdout] 535 | async fn update_linux_password(username: &str, password: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_bellande_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:552:10 [INFO] [stdout] | [INFO] [stdout] 552 | async fn update_bellande_password(username: &str, password: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_macos_privileges` is never used [INFO] [stdout] --> src/user_privilege/user.rs:569:10 [INFO] [stdout] | [INFO] [stdout] 569 | async fn update_macos_privileges(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_linux_privileges` is never used [INFO] [stdout] --> src/user_privilege/user.rs:587:10 [INFO] [stdout] | [INFO] [stdout] 587 | async fn update_linux_privileges(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_bellande_privileges` is never used [INFO] [stdout] --> src/user_privilege/user.rs:611:10 [INFO] [stdout] | [INFO] [stdout] 611 | async fn update_bellande_privileges(username: &str, privilege: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_os_user_to_group` is never used [INFO] [stdout] --> src/user_privilege/user.rs:627:10 [INFO] [stdout] | [INFO] [stdout] 627 | async fn add_os_user_to_group(username: &str, group: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_os_user_from_group` is never used [INFO] [stdout] --> src/user_privilege/user.rs:652:10 [INFO] [stdout] | [INFO] [stdout] 652 | async fn remove_os_user_from_group(username: &str, group: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `KeyType` is more private than the item `SecureStorage::generate_key` [INFO] [stdout] --> src/hsm/hsm.rs:290:5 [INFO] [stdout] | [INFO] [stdout] 290 | / pub async fn generate_key( [INFO] [stdout] 291 | | &self, [INFO] [stdout] 292 | | label: &str, [INFO] [stdout] 293 | | key_type: KeyType, [INFO] [stdout] 294 | | usage: KeyUsage, [INFO] [stdout] 295 | | ) -> Result> { [INFO] [stdout] | |________________________^ method `SecureStorage::generate_key` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `KeyType` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/hsm/hsm.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | enum KeyType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `KeyUsage` is more private than the item `SecureStorage::generate_key` [INFO] [stdout] --> src/hsm/hsm.rs:290:5 [INFO] [stdout] | [INFO] [stdout] 290 | / pub async fn generate_key( [INFO] [stdout] 291 | | &self, [INFO] [stdout] 292 | | label: &str, [INFO] [stdout] 293 | | key_type: KeyType, [INFO] [stdout] 294 | | usage: KeyUsage, [INFO] [stdout] 295 | | ) -> Result> { [INFO] [stdout] | |________________________^ method `SecureStorage::generate_key` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `KeyUsage` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/hsm/hsm.rs:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | enum KeyUsage { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_security_audit` is never used [INFO] [stdout] --> src/audit/security_audit.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | pub async fn perform_security_audit(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_system_updates` is never used [INFO] [stdout] --> src/audit/security_audit.rs:116:10 [INFO] [stdout] | [INFO] [stdout] 116 | async fn check_system_updates() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scan_for_vulnerabilities` is never used [INFO] [stdout] --> src/audit/security_audit.rs:154:10 [INFO] [stdout] | [INFO] [stdout] 154 | async fn scan_for_vulnerabilities(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_software_versions` is never used [INFO] [stdout] --> src/audit/security_audit.rs:170:10 [INFO] [stdout] | [INFO] [stdout] 170 | async fn check_software_versions() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_common_misconfigurations` is never used [INFO] [stdout] --> src/audit/security_audit.rs:189:10 [INFO] [stdout] | [INFO] [stdout] 189 | async fn check_common_misconfigurations(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_permissions` is never used [INFO] [stdout] --> src/audit/security_audit.rs:203:10 [INFO] [stdout] | [INFO] [stdout] 203 | async fn check_permissions(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_path_permissions` is never used [INFO] [stdout] --> src/audit/security_audit.rs:220:10 [INFO] [stdout] | [INFO] [stdout] 220 | async fn check_path_permissions(path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_world_writable_files` is never used [INFO] [stdout] --> src/audit/security_audit.rs:255:10 [INFO] [stdout] | [INFO] [stdout] 255 | async fn check_world_writable_files() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_suid_binaries` is never used [INFO] [stdout] --> src/audit/security_audit.rs:289:10 [INFO] [stdout] | [INFO] [stdout] 289 | async fn check_suid_binaries() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_suspicious_processes` is never used [INFO] [stdout] --> src/audit/security_audit.rs:350:10 [INFO] [stdout] | [INFO] [stdout] 350 | async fn check_suspicious_processes(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_unauthorized_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:381:10 [INFO] [stdout] | [INFO] [stdout] 381 | async fn check_unauthorized_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:392:10 [INFO] [stdout] | [INFO] [stdout] 392 | async fn check_macos_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:413:10 [INFO] [stdout] | [INFO] [stdout] 413 | async fn check_linux_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_users` is never used [INFO] [stdout] --> src/audit/security_audit.rs:431:10 [INFO] [stdout] | [INFO] [stdout] 431 | async fn check_bellande_users(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_macos_system_user` is never used [INFO] [stdout] --> src/audit/security_audit.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | fn is_macos_system_user(username: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_linux_system_user` is never used [INFO] [stdout] --> src/audit/security_audit.rs:459:4 [INFO] [stdout] | [INFO] [stdout] 459 | fn is_linux_system_user(username: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_bellande_system_user` is never used [INFO] [stdout] --> src/audit/security_audit.rs:491:4 [INFO] [stdout] | [INFO] [stdout] 491 | fn is_bellande_system_user(username: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_open_ports` is never used [INFO] [stdout] --> src/audit/security_audit.rs:498:10 [INFO] [stdout] | [INFO] [stdout] 498 | async fn check_open_ports(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_port_output` is never used [INFO] [stdout] --> src/audit/security_audit.rs:542:10 [INFO] [stdout] | [INFO] [stdout] 542 | async fn check_port_output(output: &str, allowed_ports: &HashSet) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_port_from_line` is never used [INFO] [stdout] --> src/audit/security_audit.rs:561:4 [INFO] [stdout] | [INFO] [stdout] 561 | fn extract_port_from_line(line: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_integrity` is never used [INFO] [stdout] --> src/audit/security_audit.rs:570:10 [INFO] [stdout] | [INFO] [stdout] 570 | async fn check_file_integrity(config: &SecurityAuditConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_directory_integrity` is never used [INFO] [stdout] --> src/audit/security_audit.rs:584:10 [INFO] [stdout] | [INFO] [stdout] 584 | async fn check_directory_integrity( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_os_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:616:10 [INFO] [stdout] | [INFO] [stdout] 616 | async fn perform_os_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_macos_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:626:10 [INFO] [stdout] | [INFO] [stdout] 626 | async fn perform_macos_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_linux_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:675:10 [INFO] [stdout] | [INFO] [stdout] 675 | async fn perform_linux_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_bellande_specific_checks` is never used [INFO] [stdout] --> src/audit/security_audit.rs:714:10 [INFO] [stdout] | [INFO] [stdout] 714 | async fn perform_bellande_specific_checks() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_kernel_parameters` is never used [INFO] [stdout] --> src/audit/security_audit.rs:763:10 [INFO] [stdout] | [INFO] [stdout] 763 | async fn check_kernel_parameters() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_file_hash` is never used [INFO] [stdout] --> src/audit/security_audit.rs:791:4 [INFO] [stdout] | [INFO] [stdout] 791 | fn calculate_file_hash(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_hash_database` is never used [INFO] [stdout] --> src/audit/security_audit.rs:798:4 [INFO] [stdout] | [INFO] [stdout] 798 | fn load_hash_database(path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_hash_database` is never used [INFO] [stdout] --> src/audit/security_audit.rs:808:4 [INFO] [stdout] | [INFO] [stdout] 808 | fn save_hash_database(path: &Path, database: &HashMap) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password` is never used [INFO] [stdout] --> src/authentication_compliance/authentication.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn hash_password(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `required_protocols`, `minimum_networks`, `required_firewall`, and `required_encryption` are never read [INFO] [stdout] --> src/authentication_compliance/complication.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct NetworkRequirements { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 36 | pub required_protocols: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | pub minimum_networks: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 38 | pub required_firewall: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 39 | pub required_encryption: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkRequirements` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/authentication_compliance/complication.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct ComplianceConfig { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 44 | // Original fields [INFO] [stdout] 45 | pub min_password_length: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 46 | pub min_password_entropy: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | pub password_complexity_regex: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | pub critical_files: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 49 | pub required_services: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 50 | pub required_kernel_params: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 51 | pub audit_file_hashes: PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 52 | pub network_requirements: NetworkRequirements, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub password_max_days: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 56 | pub password_min_days: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 57 | pub password_warn_days: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 58 | pub max_repeated_chars: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ComplianceConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PasswordViolation` is never constructed [INFO] [stdout] --> src/authentication_compliance/complication.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | struct PasswordViolation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ViolationSeverity` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:68:6 [INFO] [stdout] | [INFO] [stdout] 68 | enum ViolationSeverity { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_required_services` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:162:4 [INFO] [stdout] | [INFO] [stdout] 162 | fn get_required_services() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_compliance` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn check_compliance(config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_password_complexity` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:398:10 [INFO] [stdout] | [INFO] [stdout] 398 | async fn check_password_complexity( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_common_password` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:500:10 [INFO] [stdout] | [INFO] [stdout] 500 | async fn is_common_password(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_password_strength` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:512:4 [INFO] [stdout] | [INFO] [stdout] 512 | fn validate_password_strength(password: &str, config: &ComplianceConfig) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_repeating_chars` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:571:4 [INFO] [stdout] | [INFO] [stdout] 571 | fn has_repeating_chars(password: &str, max_repeats: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_password_entropy` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn calculate_password_entropy(password: &str) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_permissions` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:618:10 [INFO] [stdout] | [INFO] [stdout] 618 | async fn check_file_permissions(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_single_file_permissions` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:662:10 [INFO] [stdout] | [INFO] [stdout] 662 | async fn check_single_file_permissions(file_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_system_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:709:10 [INFO] [stdout] | [INFO] [stdout] 709 | async fn check_system_configurations(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_kernel_parameter` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:738:10 [INFO] [stdout] | [INFO] [stdout] 738 | async fn check_kernel_parameter(param: &str, expected_value: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_expected_value` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:775:4 [INFO] [stdout] | [INFO] [stdout] 775 | fn get_expected_value(param: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_kernel_parameter` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:787:10 [INFO] [stdout] | [INFO] [stdout] 787 | async fn get_kernel_parameter(param: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_audit_log_integrity` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:797:10 [INFO] [stdout] | [INFO] [stdout] 797 | async fn check_audit_log_integrity(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_network_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:838:10 [INFO] [stdout] | [INFO] [stdout] 838 | async fn check_network_configurations( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_os_specific_checks` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:865:10 [INFO] [stdout] | [INFO] [stdout] 865 | async fn perform_os_specific_checks(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:951:10 [INFO] [stdout] | [INFO] [stdout] 951 | async fn check_macos_configurations() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1028:10 [INFO] [stdout] | [INFO] [stdout] 1028 | async fn check_linux_configurations(compliance_config: &ComplianceConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_configurations` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1090:10 [INFO] [stdout] | [INFO] [stdout] 1090 | async fn check_bellande_configurations() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_sysctl_settings` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1159:10 [INFO] [stdout] | [INFO] [stdout] 1159 | async fn check_sysctl_settings() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_password_policies` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1193:10 [INFO] [stdout] | [INFO] [stdout] 1193 | async fn check_password_policies() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_core_dumps` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1222:10 [INFO] [stdout] | [INFO] [stdout] 1222 | async fn check_core_dumps() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_security_policies` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1240:10 [INFO] [stdout] | [INFO] [stdout] 1240 | async fn check_bellande_security_policies() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_service_running` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1270:10 [INFO] [stdout] | [INFO] [stdout] 1270 | async fn is_service_running(service: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_firewall_status` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1294:10 [INFO] [stdout] | [INFO] [stdout] 1294 | async fn check_firewall_status() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_network_encryption` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1346:10 [INFO] [stdout] | [INFO] [stdout] 1346 | async fn check_network_encryption(network_requirements: &NetworkRequirements) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_ssl_versions` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1359:10 [INFO] [stdout] | [INFO] [stdout] 1359 | async fn check_ssl_versions(required_protocols: &[String]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_ssh_configuration` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1385:10 [INFO] [stdout] | [INFO] [stdout] 1385 | async fn check_ssh_configuration() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_encrypted_protocols` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1429:10 [INFO] [stdout] | [INFO] [stdout] 1429 | async fn check_encrypted_protocols() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_last_password_change` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1454:10 [INFO] [stdout] | [INFO] [stdout] 1454 | async fn get_last_password_change(username: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_file_hash` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1481:4 [INFO] [stdout] | [INFO] [stdout] 1481 | fn calculate_file_hash(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_file_hashes` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1488:4 [INFO] [stdout] | [INFO] [stdout] 1488 | fn load_file_hashes(path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_file_hash` is never used [INFO] [stdout] --> src/authentication_compliance/complication.rs:1497:4 [INFO] [stdout] | [INFO] [stdout] 1497 | fn save_file_hash(path: &Path, file_path: &Path, hash: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `allow_syscall` is never used [INFO] [stdout] --> src/command/command.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 100 | impl SandboxContext { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 111 | fn allow_syscall(&mut self, syscall: Syscall) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `start_time` is never read [INFO] [stdout] --> src/command/command.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 119 | struct CommandContext { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 124 | start_time: SystemTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandContext` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_patterns` is never used [INFO] [stdout] --> src/command/command.rs:630:10 [INFO] [stdout] | [INFO] [stdout] 630 | async fn check_macos_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_patterns` is never used [INFO] [stdout] --> src/command/command.rs:653:10 [INFO] [stdout] | [INFO] [stdout] 653 | async fn check_linux_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_patterns` is never used [INFO] [stdout] --> src/command/command.rs:676:10 [INFO] [stdout] | [INFO] [stdout] 676 | async fn check_bellande_patterns(ctx: &CommandContext, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save_keys` and `generate_key` are never used [INFO] [stdout] --> src/hsm/hsm.rs:237:14 [INFO] [stdout] | [INFO] [stdout] 95 | impl SecureStorage { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 237 | async fn save_keys(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub async fn generate_key( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `firewall_cmd` is never read [INFO] [stdout] --> src/network/network.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 56 | struct NetworkCommands { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 60 | firewall_cmd: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkCommands` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_audit_logs` is never used [INFO] [stdout] --> src/network/network.rs:465:14 [INFO] [stdout] | [INFO] [stdout] 465 | pub async fn rotate_audit_logs() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InsufficientPrivileges`, `ExpiredPrivileges`, `GroupNotFound`, and `PermissionNotFound` are never constructed [INFO] [stdout] --> src/user_privilege/privilege.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum PrivilegeLevelError { [INFO] [stdout] | ------------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 46 | InsufficientPrivileges, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | #[error("Expired privileges")] [INFO] [stdout] 48 | ExpiredPrivileges, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | #[error("Group not found: {0}")] [INFO] [stdout] 50 | GroupNotFound(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 51 | #[error("Permission not found: {0}")] [INFO] [stdout] 52 | PermissionNotFound(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrivilegeLevelError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/user_privilege/privilege.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct PrivilegeManager { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 78 | config: PrivilegeConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrivilegeManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `granted_at` and `reason` are never read [INFO] [stdout] --> src/user_privilege/privilege.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 83 | struct PrivilegeElevation { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 84 | level: PrivilegeLevel, [INFO] [stdout] 85 | granted_at: SystemTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 86 | expires_at: SystemTime, [INFO] [stdout] 87 | reason: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrivilegeElevation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `elevate_privilege`, `revoke_elevation`, and `cleanup_expired_elevations` are never used [INFO] [stdout] --> src/user_privilege/privilege.rs:185:18 [INFO] [stdout] | [INFO] [stdout] 117 | impl PrivilegeManager { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 185 | pub async fn elevate_privilege( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub async fn revoke_elevation(&mut self, user: &str, level: PrivilegeLevel) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn cleanup_expired_elevations(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_os_specific_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:256:14 [INFO] [stdout] | [INFO] [stdout] 256 | pub async fn check_os_specific_privileges( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_macos_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:268:10 [INFO] [stdout] | [INFO] [stdout] 268 | async fn check_macos_privileges(user: &User, required_privilege: PrivilegeLevel) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_linux_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:283:10 [INFO] [stdout] | [INFO] [stdout] 283 | async fn check_linux_privileges(user: &User, required_privilege: PrivilegeLevel) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bellande_privileges` is never used [INFO] [stdout] --> src/user_privilege/privilege.rs:299:10 [INFO] [stdout] | [INFO] [stdout] 299 | async fn check_bellande_privileges( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `AccountLocked` and `PasswordExpired` are never constructed [INFO] [stdout] --> src/user_privilege/user.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub enum UserError { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 67 | AccountLocked(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 68 | #[error("Password expired")] [INFO] [stdout] 69 | PasswordExpired, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_locked`, `password_expired`, and `record_login_attempt` are never used [INFO] [stdout] --> src/user_privilege/user.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 86 | impl User { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn is_locked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn password_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn record_login_attempt(&mut self, success: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password` is never used [INFO] [stdout] --> src/user_privilege/user.rs:377:4 [INFO] [stdout] | [INFO] [stdout] 377 | fn verify_password(hash: &str, password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s [INFO] running `Command { std: "docker" "inspect" "b7b06bebdc249b83f42d5807b4fbee304c24326197679debe728c2b65526230d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b7b06bebdc249b83f42d5807b4fbee304c24326197679debe728c2b65526230d", kill_on_drop: false }` [INFO] [stdout] b7b06bebdc249b83f42d5807b4fbee304c24326197679debe728c2b65526230d