[INFO] cloning repository https://github.com/alecchendev/cryptopals-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alecchendev/cryptopals-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falecchendev%2Fcryptopals-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falecchendev%2Fcryptopals-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6ba6cb41f3b0f5b9a6a27f1e2e26c07d785c5818 [INFO] testing alecchendev/cryptopals-rust/6ba6cb41f3b0f5b9a6a27f1e2e26c07d785c5818 against 1.81.0 for beta-1.82-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falecchendev%2Fcryptopals-rust" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/alecchendev/cryptopals-rust on toolchain 1.81.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.81.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/alecchendev/cryptopals-rust [INFO] finished tweaking git repo https://github.com/alecchendev/cryptopals-rust [INFO] tweaked toml for git repo https://github.com/alecchendev/cryptopals-rust written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/alecchendev/cryptopals-rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.81.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:96c0aa5895ecf336b730ef27bcdde6e21027415df19888aad3cf1448e5d65d90" "/opt/rustwide/cargo-home/bin/cargo" "+1.81.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c4a2cff414cd4550c46c6359fd414446097d929d3dabc096d38b8a381c737220 [INFO] running `Command { std: "docker" "start" "-a" "c4a2cff414cd4550c46c6359fd414446097d929d3dabc096d38b8a381c737220", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c4a2cff414cd4550c46c6359fd414446097d929d3dabc096d38b8a381c737220", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c4a2cff414cd4550c46c6359fd414446097d929d3dabc096d38b8a381c737220", kill_on_drop: false }` [INFO] [stdout] c4a2cff414cd4550c46c6359fd414446097d929d3dabc096d38b8a381c737220 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:96c0aa5895ecf336b730ef27bcdde6e21027415df19888aad3cf1448e5d65d90" "/opt/rustwide/cargo-home/bin/cargo" "+1.81.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b71616bea5c00743b777dcd9e0bec599eae194e07088d02e1a0af50d80194f0a [INFO] running `Command { std: "docker" "start" "-a" "b71616bea5c00743b777dcd9e0bec599eae194e07088d02e1a0af50d80194f0a", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling libc v0.2.140 [INFO] [stderr] Compiling proc-macro2 v1.0.54 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling quote v1.0.26 [INFO] [stderr] Compiling unicode-ident v1.0.6 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling typenum v1.16.0 [INFO] [stderr] Compiling syn v1.0.107 [INFO] [stderr] Compiling bytes v1.4.0 [INFO] [stderr] Compiling pin-project-lite v0.2.9 [INFO] [stderr] Compiling itoa v1.0.6 [INFO] [stderr] Compiling parking_lot_core v0.9.7 [INFO] [stderr] Compiling smallvec v1.10.0 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling futures-core v0.3.27 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling once_cell v1.17.1 [INFO] [stderr] Compiling cc v1.0.79 [INFO] [stderr] Compiling pkg-config v0.3.26 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling httparse v1.8.0 [INFO] [stderr] Compiling futures-sink v0.3.27 [INFO] [stderr] Compiling futures-task v0.3.27 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling cpufeatures v0.2.5 [INFO] [stderr] Compiling futures-util v0.3.27 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling generic-array v0.14.6 [INFO] [stderr] Compiling unicase v2.6.0 [INFO] [stderr] Compiling lock_api v0.4.9 [INFO] [stderr] Compiling tokio v1.27.0 [INFO] [stderr] Compiling slab v0.4.8 [INFO] [stderr] Compiling http v0.2.9 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling tracing-core v0.1.30 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling serde v1.0.159 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling percent-encoding v2.2.0 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling io-lifetimes v1.0.9 [INFO] [stderr] Compiling form_urlencoded v1.1.0 [INFO] [stderr] Compiling unicode-bidi v0.3.13 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling futures-channel v0.3.27 [INFO] [stderr] Compiling tracing v0.1.37 [INFO] [stderr] Compiling syn v2.0.11 [INFO] [stderr] Compiling openssl v0.10.48 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling unicode-normalization v0.1.22 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling openssl-sys v0.9.83 [INFO] [stderr] Compiling httpdate v1.0.2 [INFO] [stderr] Compiling try-lock v0.2.4 [INFO] [stderr] Compiling thiserror v1.0.38 [INFO] [stderr] Compiling base64 v0.13.1 [INFO] [stderr] Compiling rustix v0.37.4 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Compiling idna v0.3.0 [INFO] [stderr] Compiling want v0.3.0 [INFO] [stderr] Compiling socket2 v0.4.9 [INFO] [stderr] Compiling signal-hook-registry v1.4.1 [INFO] [stderr] Compiling mio v0.8.6 [INFO] [stderr] Compiling num_cpus v1.15.0 [INFO] [stderr] Compiling getrandom v0.2.8 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling parking_lot v0.12.1 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling mime_guess v2.0.4 [INFO] [stderr] Compiling digest v0.10.6 [INFO] [stderr] Compiling http-body v0.4.5 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling url v2.3.1 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling ryu v1.0.13 [INFO] [stderr] Compiling linux-raw-sys v0.3.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling openssl-probe v0.1.5 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling tower-service v0.3.2 [INFO] [stderr] Compiling sha-1 v0.10.1 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling libm v0.2.6 [INFO] [stderr] Compiling serde_json v1.0.95 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling safemem v0.3.3 [INFO] [stderr] Compiling fastrand v1.9.0 [INFO] [stderr] Compiling buf_redux v0.8.4 [INFO] [stderr] Compiling twoway v0.1.8 [INFO] [stderr] Compiling sha1 v0.10.5 [INFO] [stderr] Compiling inout v0.1.3 [INFO] [stderr] Compiling headers-core v0.2.0 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling num-bigint-dig v0.8.2 [INFO] [stderr] Compiling spin v0.5.2 [INFO] [stderr] Compiling cipher v0.4.3 [INFO] [stderr] Compiling headers v0.3.8 [INFO] [stderr] Compiling rustls-pemfile v0.2.1 [INFO] [stderr] Compiling encoding_rs v0.8.32 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling scoped-tls v1.0.1 [INFO] [stderr] Compiling base64 v0.21.0 [INFO] [stderr] Compiling ipnet v2.7.2 [INFO] [stderr] Compiling aes v0.8.2 [INFO] [stderr] Compiling sha2 v0.10.6 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling tokio-macros v2.0.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling openssl-macros v0.1.0 [INFO] [stderr] Compiling thiserror-impl v1.0.38 [INFO] [stderr] Compiling pin-project-internal v1.0.12 [INFO] [stderr] Compiling tempfile v3.5.0 [INFO] [stderr] Compiling multipart v0.18.0 [INFO] [stderr] Compiling tungstenite v0.17.3 [INFO] [stderr] Compiling pin-project v1.0.12 [INFO] [stderr] Compiling tokio-util v0.7.7 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-stream v0.1.12 [INFO] [stderr] Compiling tokio-tungstenite v0.17.2 [INFO] [stderr] Compiling h2 v0.3.16 [INFO] [stderr] Compiling hyper v0.14.25 [INFO] [stderr] Compiling hyper-tls v0.5.0 [INFO] [stderr] Compiling warp v0.3.3 [INFO] [stderr] Compiling reqwest v0.11.16 [INFO] [stderr] Compiling cryptopals-rust v0.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Rng` [INFO] [stdout] --> src/set1.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/set1.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `engine::general_purpose` [INFO] [stdout] --> src/set2.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use base64::{engine::general_purpose, Engine}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/set2.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set3.rs:256:7 [INFO] [stdout] | [INFO] [stdout] 256 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `generate_key` and `repeating_key_xor` [INFO] [stdout] --> src/set3.rs:2:58 [INFO] [stdout] | [INFO] [stdout] 2 | aes_ecb_encrypt, decrypt_single_byte_xor, fixed_xor, generate_key, pkcs7_pad, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 3 | repeating_key_xor, transpose_blocks, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Engine` and `engine::general_purpose` [INFO] [stdout] --> src/set3.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | use base64::{engine::general_purpose, Engine}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RngCore` [INFO] [stdout] --> src/set3.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/set3.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set4.rs:71:7 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set4.rs:227:7 [INFO] [stdout] | [INFO] [stdout] 227 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Engine` and `engine::general_purpose` [INFO] [stdout] --> src/set4.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use base64::{engine::general_purpose, Engine}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RngCore` [INFO] [stdout] --> src/set4.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatusCode` [INFO] [stdout] --> src/set4.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use reqwest::{Client, Response, StatusCode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/set4.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Reply` [INFO] [stdout] --> src/set4.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | use warp::{http, Filter, Reply}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `aes_ecb_decrypt` [INFO] [stdout] --> src/set4.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::set1::{aes_ecb_decrypt, aes_ecb_encrypt, fixed_xor, generate_key, pkcs7_pad}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RngCore` [INFO] [stdout] --> src/set5.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Sub` [INFO] [stdout] --> src/set5.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::Sub; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `generate_key` and `pkcs7_pad` [INFO] [stdout] --> src/set5.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::set1::{generate_key, pkcs7_pad}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set6.rs:217:7 [INFO] [stdout] | [INFO] [stdout] 217 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set6.rs:463:7 [INFO] [stdout] | [INFO] [stdout] 463 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Engine` and `engine::general_purpose` [INFO] [stdout] --> src/set6.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use base64::{engine::general_purpose, Engine}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RandPrime` [INFO] [stdout] --> src/set6.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use num_bigint::{BigInt, BigUint, RandBigInt, RandPrime, ToBigInt, ToBigUint}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CheckedSub` and `Num` [INFO] [stdout] --> src/set6.rs:4:33 [INFO] [stdout] | [INFO] [stdout] 4 | use num_traits::{FromPrimitive, Num, One, Zero, Pow, CheckedSub}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/set6.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mul` [INFO] [stdout] --> src/set6.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::{Range, Mul}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/set6.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/set6.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/set6.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_random_utf8` [INFO] [stdout] --> src/set6.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | set4::{get_random_utf8, sha1, DIGEST_LENGTH_SHA1}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/set4.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | port: u16, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/set1.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/set2.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Engine` [INFO] [stdout] --> src/set2.rs:1:39 [INFO] [stdout] | [INFO] [stdout] 1 | use base64::{engine::general_purpose, Engine}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/set3.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/set4.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/set6.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/set5.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | if let Some(d) = inv_mod(exp, &totient) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/set5.rs:112:16 [INFO] [stdout] | [INFO] [stdout] 112 | let (g, x, y) = egcd(a, m); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `counterparty` [INFO] [stdout] --> src/set5.rs:730:26 [INFO] [stdout] | [INFO] [stdout] 730 | fn send_dh_pk(&self, counterparty: &mut impl DHActor) {} [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counterparty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `counterparty` [INFO] [stdout] --> src/set5.rs:734:33 [INFO] [stdout] | [INFO] [stdout] 734 | fn send_dh_start(&mut self, counterparty: &mut impl DHActor) {} [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counterparty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_aes_ecb` is never used [INFO] [stdout] --> src/set1.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn detect_aes_ecb(lines: &[Vec]) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_key` is never used [INFO] [stdout] --> src/set1.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn generate_key() -> [u8; 16] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_ecb_encrypt` is never used [INFO] [stdout] --> src/set1.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn aes_ecb_encrypt(input: &[u8], key: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pkcs7_pad` is never used [INFO] [stdout] --> src/set1.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn pkcs7_pad(input: &[u8], block_size: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_ecb_decrypt` is never used [INFO] [stdout] --> src/set1.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn aes_ecb_decrypt(input: &[u8], key: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_best_key_size` is never used [INFO] [stdout] --> src/set1.rs:116:4 [INFO] [stdout] | [INFO] [stdout] 116 | fn get_best_key_size(input: &[u8]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_key_sizes` is never used [INFO] [stdout] --> src/set1.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn get_key_sizes(input: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize_distance` is never used [INFO] [stdout] --> src/set1.rs:131:4 [INFO] [stdout] | [INFO] [stdout] 131 | fn normalize_distance(distance: u32, key_size: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_key_size_score` is never used [INFO] [stdout] --> src/set1.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn get_key_size_score(input: &[u8], key_size: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_repeating_key_xor` is never used [INFO] [stdout] --> src/set1.rs:156:4 [INFO] [stdout] | [INFO] [stdout] 156 | fn decrypt_repeating_key_xor(input: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transpose_blocks` is never used [INFO] [stdout] --> src/set1.rs:194:8 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn transpose_blocks(blocks: &[&[u8]]) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `div_ceil` is never used [INFO] [stdout] --> src/set1.rs:221:4 [INFO] [stdout] | [INFO] [stdout] 221 | fn div_ceil(a: usize, b: usize) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_blocks` is never used [INFO] [stdout] --> src/set1.rs:225:4 [INFO] [stdout] | [INFO] [stdout] 225 | fn get_blocks(input: &[u8], key_size: usize) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hamming_distance` is never used [INFO] [stdout] --> src/set1.rs:243:4 [INFO] [stdout] | [INFO] [stdout] 243 | fn hamming_distance(input1: Vec, input2: Vec) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `repeating_key_xor` is never used [INFO] [stdout] --> src/set1.rs:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn repeating_key_xor(key: &[u8], input: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_single_byte_xor_many` is never used [INFO] [stdout] --> src/set1.rs:300:4 [INFO] [stdout] | [INFO] [stdout] 300 | fn decrypt_single_byte_xor_many(lines: Vec) -> (u32, u8, Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_single_byte_xor` is never used [INFO] [stdout] --> src/set1.rs:330:8 [INFO] [stdout] | [INFO] [stdout] 330 | pub fn decrypt_single_byte_xor(ciphertext: Vec) -> (u32, u8, Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_score` is never used [INFO] [stdout] --> src/set1.rs:346:4 [INFO] [stdout] | [INFO] [stdout] 346 | fn calculate_score(plaintext: &[u8]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fixed_xor` is never used [INFO] [stdout] --> src/set1.rs:396:8 [INFO] [stdout] | [INFO] [stdout] 396 | pub fn fixed_xor(input1: &[u8], input2: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hex_to_base64` is never used [INFO] [stdout] --> src/set1.rs:424:4 [INFO] [stdout] | [INFO] [stdout] 424 | fn hex_to_base64(input: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hex_to_base64_string` is never used [INFO] [stdout] --> src/set1.rs:429:4 [INFO] [stdout] | [INFO] [stdout] 429 | fn hex_to_base64_string(input: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLOCK_SIZE` is never used [INFO] [stdout] --> src/set2.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const BLOCK_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_random_block` is never used [INFO] [stdout] --> src/set2.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn create_random_block(bad_chars: &[u8]) -> [u8; BLOCK_SIZE] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cbc_bit_flipping_attack` is never used [INFO] [stdout] --> src/set2.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | pub(crate) fn cbc_bit_flipping_attack(oracle: &CbcBitFlippingOracle) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `CbcBitFlippingOracle` is never used [INFO] [stdout] --> src/set2.rs:127:17 [INFO] [stdout] | [INFO] [stdout] 127 | pub(crate) type CbcBitFlippingOracle<'a> = BitFlippingOracle<'a, AesCbcOracle>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AesCbcOracle` is never constructed [INFO] [stdout] --> src/set2.rs:131:19 [INFO] [stdout] | [INFO] [stdout] 131 | pub(crate) struct AesCbcOracle { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_with_args` are never used [INFO] [stdout] --> src/set2.rs:137:19 [INFO] [stdout] | [INFO] [stdout] 136 | impl AesCbcOracle { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 137 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub(crate) fn new_with_args(key: [u8; BLOCK_SIZE], iv: [u8; BLOCK_SIZE]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BitFlippingOracle` is never constructed [INFO] [stdout] --> src/set2.rs:159:19 [INFO] [stdout] | [INFO] [stdout] 159 | pub(crate) struct BitFlippingOracle<'a, T: CipherOracle> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `encrypt`, and `check_admin` are never used [INFO] [stdout] --> src/set2.rs:166:19 [INFO] [stdout] | [INFO] [stdout] 165 | impl<'a, T: CipherOracle> BitFlippingOracle<'a, T> { [INFO] [stdout] | -------------------------------------------------- associated items in this implementation [INFO] [stdout] 166 | pub(crate) fn new(cipher: &'a T, prefix: &'a [u8], suffix: &'a [u8]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | pub(crate) fn encrypt(&self, plaintext: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub(crate) fn check_admin(&self, ciphertext: &[u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CipherOracle` is never used [INFO] [stdout] --> src/set2.rs:197:18 [INFO] [stdout] | [INFO] [stdout] 197 | pub(crate) trait CipherOracle { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pkcs7_unpad` is never used [INFO] [stdout] --> src/set2.rs:223:15 [INFO] [stdout] | [INFO] [stdout] 223 | pub(crate) fn pkcs7_unpad(input: &[u8]) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EcbOracleHarder` is never constructed [INFO] [stdout] --> src/set2.rs:256:19 [INFO] [stdout] | [INFO] [stdout] 256 | pub(crate) struct EcbOracleHarder<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `encrypt` are never used [INFO] [stdout] --> src/set2.rs:263:19 [INFO] [stdout] | [INFO] [stdout] 262 | impl<'a> EcbOracleHarder<'a> { [INFO] [stdout] | ---------------------------- associated items in this implementation [INFO] [stdout] 263 | pub(crate) fn new(key: &'a [u8; 16], target: &'a [u8], prefix: &'a [u8]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub(crate) fn encrypt(&self, input: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `byte_at_a_time_ecb_decrypt_harder` is never used [INFO] [stdout] --> src/set2.rs:278:15 [INFO] [stdout] | [INFO] [stdout] 278 | pub(crate) fn byte_at_a_time_ecb_decrypt_harder(oracle: &EcbOracleHarder) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `forge_admin_ciphertext` is never used [INFO] [stdout] --> src/set2.rs:400:15 [INFO] [stdout] | [INFO] [stdout] 400 | pub(crate) fn forge_admin_ciphertext(oracle: &ProfileManager) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProfileManager` is never constructed [INFO] [stdout] --> src/set2.rs:415:19 [INFO] [stdout] | [INFO] [stdout] 415 | pub(crate) struct ProfileManager<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_profile`, `profile_for`, and `profile_for_encrypted` are never used [INFO] [stdout] --> src/set2.rs:420:19 [INFO] [stdout] | [INFO] [stdout] 419 | impl<'a> ProfileManager<'a> { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 420 | pub(crate) fn new(key: &'a [u8]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 424 | pub(crate) fn add_profile(&self, ciphertext: &'a [u8]) -> UserProfile { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | pub(crate) fn profile_for(&self, email: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 441 | pub(crate) fn profile_for_encrypted(&self, email: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Role` is never used [INFO] [stdout] --> src/set2.rs:447:17 [INFO] [stdout] | [INFO] [stdout] 447 | pub(crate) enum Role { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserProfile` is never constructed [INFO] [stdout] --> src/set2.rs:453:19 [INFO] [stdout] | [INFO] [stdout] 453 | pub(crate) struct UserProfile { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `encode`, and `decode` are never used [INFO] [stdout] --> src/set2.rs:460:19 [INFO] [stdout] | [INFO] [stdout] 459 | impl UserProfile { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 460 | pub(crate) fn new(email: String, uid: usize, role: Role) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 464 | fn encode(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 476 | fn decode(input: &str) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_key_value` is never used [INFO] [stdout] --> src/set2.rs:500:15 [INFO] [stdout] | [INFO] [stdout] 500 | pub(crate) fn parse_key_value(input: &str) -> HashMap<&str, &str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pkcs7_unpad_unchecked` is never used [INFO] [stdout] --> src/set2.rs:514:4 [INFO] [stdout] | [INFO] [stdout] 514 | fn pkcs7_unpad_unchecked(input: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `byte_at_a_time_ecb_decrypt` is never used [INFO] [stdout] --> src/set2.rs:581:15 [INFO] [stdout] | [INFO] [stdout] 581 | pub(crate) fn byte_at_a_time_ecb_decrypt(oracle: &ConsistentKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConsistentKey` is never constructed [INFO] [stdout] --> src/set2.rs:643:19 [INFO] [stdout] | [INFO] [stdout] 643 | pub(crate) struct ConsistentKey<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `encrypt` are never used [INFO] [stdout] --> src/set2.rs:649:19 [INFO] [stdout] | [INFO] [stdout] 648 | impl<'a> ConsistentKey<'a> { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 649 | pub(crate) fn new(key: &'a [u8], append_text: &'a [u8]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 653 | fn encrypt(&self, plaintext: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_mode` is never used [INFO] [stdout] --> src/set2.rs:674:15 [INFO] [stdout] | [INFO] [stdout] 674 | pub(crate) fn detect_mode(ciphertext: &[u8]) -> AesBlockCipherMode { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AesBlockCipherMode` is never used [INFO] [stdout] --> src/set2.rs:703:17 [INFO] [stdout] | [INFO] [stdout] 703 | pub(crate) enum AesBlockCipherMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_oracle` is never used [INFO] [stdout] --> src/set2.rs:708:15 [INFO] [stdout] | [INFO] [stdout] 708 | pub(crate) fn encrypt_oracle(input: &[u8]) -> (AesBlockCipherMode, Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_cbc_encrypt` is never used [INFO] [stdout] --> src/set2.rs:749:15 [INFO] [stdout] | [INFO] [stdout] 749 | pub(crate) fn aes_cbc_encrypt(input: &[u8], key: &[u8], iv: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_cbc_decrypt` is never used [INFO] [stdout] --> src/set2.rs:764:15 [INFO] [stdout] | [INFO] [stdout] 764 | pub(crate) fn aes_cbc_decrypt(input: &[u8], key: &[u8], iv: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_password_token` is never used [INFO] [stdout] --> src/set3.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) fn generate_password_token(seed: u16) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `crack_password_token` is never used [INFO] [stdout] --> src/set3.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | pub(crate) fn crack_password_token(token: u32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prng_encrypt_with_prefix` is never used [INFO] [stdout] --> src/set3.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | pub(crate) fn prng_encrypt_with_prefix(plaintext: &[u8], seed: u16) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `crack_prefixed` is never used [INFO] [stdout] --> src/set3.rs:45:15 [INFO] [stdout] | [INFO] [stdout] 45 | pub(crate) fn crack_prefixed(ciphertext: &[u8], plaintext: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mt19937_encrypt` is never used [INFO] [stdout] --> src/set3.rs:65:15 [INFO] [stdout] | [INFO] [stdout] 65 | pub(crate) fn mt19937_encrypt(plaintext: &[u8], seed: u16) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mt19937_decrypt` is never used [INFO] [stdout] --> src/set3.rs:77:15 [INFO] [stdout] | [INFO] [stdout] 77 | pub(crate) fn mt19937_decrypt(ciphertext: &[u8], seed: u16) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clone_mt19937` is never used [INFO] [stdout] --> src/set3.rs:132:15 [INFO] [stdout] | [INFO] [stdout] 132 | pub(crate) fn clone_mt19937(orig: &mut MersenneTwisterRng) -> MersenneTwisterRng { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `invert_right` is never used [INFO] [stdout] --> src/set3.rs:143:15 [INFO] [stdout] | [INFO] [stdout] 143 | pub(crate) fn invert_right(output: u32, shift: u32, magic: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `invert_left` is never used [INFO] [stdout] --> src/set3.rs:155:15 [INFO] [stdout] | [INFO] [stdout] 155 | pub(crate) fn invert_left(output: u32, shift: u32, magic: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `invert_temper` is never used [INFO] [stdout] --> src/set3.rs:167:15 [INFO] [stdout] | [INFO] [stdout] 167 | pub(crate) fn invert_temper(out: u32, shift: &[u32; 4], magic: &[u32; 3]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `crack_mt19937_time_seed` is never used [INFO] [stdout] --> src/set3.rs:226:15 [INFO] [stdout] | [INFO] [stdout] 226 | pub(crate) fn crack_mt19937_time_seed(num: u32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gen_wait_time` is never used [INFO] [stdout] --> src/set3.rs:247:4 [INFO] [stdout] | [INFO] [stdout] 247 | fn gen_wait_time() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_random` is never used [INFO] [stdout] --> src/set3.rs:251:4 [INFO] [stdout] | [INFO] [stdout] 251 | fn wait_random() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MersenneTwisterRng` is never constructed [INFO] [stdout] --> src/set3.rs:314:19 [INFO] [stdout] | [INFO] [stdout] 314 | pub(crate) struct MersenneTwisterRng { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `lowest_bits`, `new`, `new_from_state`, `generate`, and `twist` are never used [INFO] [stdout] --> src/set3.rs:320:8 [INFO] [stdout] | [INFO] [stdout] 319 | impl MersenneTwisterRng { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 320 | fn lowest_bits(num: u64) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 324 | pub(crate) fn new(seed: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub(crate) fn new_from_state(state: &[u32; mt::N]) -> MersenneTwisterRng { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub(crate) fn generate(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 361 | fn twist(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fixed_nonce_ctr_attack` is never used [INFO] [stdout] --> src/set3.rs:392:15 [INFO] [stdout] | [INFO] [stdout] 392 | pub(crate) fn fixed_nonce_ctr_attack(ciphertexts: &[&[u8]]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_ctr_encrypt` is never used [INFO] [stdout] --> src/set3.rs:444:15 [INFO] [stdout] | [INFO] [stdout] 444 | pub(crate) fn aes_ctr_encrypt(plaintext: &[u8], key: &[u8; 16], nonce: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_ctr_decrypt` is never used [INFO] [stdout] --> src/set3.rs:456:15 [INFO] [stdout] | [INFO] [stdout] 456 | pub(crate) fn aes_ctr_decrypt(ciphertext: &[u8], key: &[u8; 16], nonce: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cbc_padding_oracle_attack` is never used [INFO] [stdout] --> src/set3.rs:483:15 [INFO] [stdout] | [INFO] [stdout] 483 | pub(crate) fn cbc_padding_oracle_attack( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CbcPaddingOracle` is never constructed [INFO] [stdout] --> src/set3.rs:549:19 [INFO] [stdout] | [INFO] [stdout] 549 | pub(crate) struct CbcPaddingOracle<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `encrypt`, and `check_valid_padding` are never used [INFO] [stdout] --> src/set3.rs:556:19 [INFO] [stdout] | [INFO] [stdout] 555 | impl<'a> CbcPaddingOracle<'a> { [INFO] [stdout] | ----------------------------- associated items in this implementation [INFO] [stdout] 556 | pub(crate) fn new(key: &'a [u8; 16], iv: &'a [u8; 16], plaintexts: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 564 | pub(crate) fn encrypt(&self) -> (Vec, [u8; 16], usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub(crate) fn check_valid_padding(&self, ciphertext: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `N` is never used [INFO] [stdout] --> src/set3.rs:295:15 [INFO] [stdout] | [INFO] [stdout] 295 | pub const N: usize = 624; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `F` is never used [INFO] [stdout] --> src/set3.rs:297:15 [INFO] [stdout] | [INFO] [stdout] 297 | pub const F: u64 = 1812433253; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `W` is never used [INFO] [stdout] --> src/set3.rs:299:15 [INFO] [stdout] | [INFO] [stdout] 299 | pub const W: u32 = 32; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `R` is never used [INFO] [stdout] --> src/set3.rs:300:15 [INFO] [stdout] | [INFO] [stdout] 300 | pub const R: u32 = 31; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `M` is never used [INFO] [stdout] --> src/set3.rs:301:15 [INFO] [stdout] | [INFO] [stdout] 301 | pub const M: usize = 397; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `A` is never used [INFO] [stdout] --> src/set3.rs:302:15 [INFO] [stdout] | [INFO] [stdout] 302 | pub const A: u32 = 0x9908B0DF; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `U` is never used [INFO] [stdout] --> src/set3.rs:304:15 [INFO] [stdout] | [INFO] [stdout] 304 | pub const U: u32 = 11; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `D` is never used [INFO] [stdout] --> src/set3.rs:305:15 [INFO] [stdout] | [INFO] [stdout] 305 | pub const D: u32 = 0xFFFFFFFF; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S` is never used [INFO] [stdout] --> src/set3.rs:306:15 [INFO] [stdout] | [INFO] [stdout] 306 | pub const S: u32 = 7; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `B` is never used [INFO] [stdout] --> src/set3.rs:307:15 [INFO] [stdout] | [INFO] [stdout] 307 | pub const B: u32 = 0x9D2C5680; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T` is never used [INFO] [stdout] --> src/set3.rs:308:15 [INFO] [stdout] | [INFO] [stdout] 308 | pub const T: u32 = 15; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `C` is never used [INFO] [stdout] --> src/set3.rs:309:15 [INFO] [stdout] | [INFO] [stdout] 309 | pub const C: u32 = 0xEFC60000; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `L` is never used [INFO] [stdout] --> src/set3.rs:310:15 [INFO] [stdout] | [INFO] [stdout] 310 | pub const L: u32 = 18; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `less_insecure_compare` is never used [INFO] [stdout] --> src/set4.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn less_insecure_compare(a: &[u8], b: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `less_artificial_timing_attack` is never used [INFO] [stdout] --> src/set4.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | async fn less_artificial_timing_attack( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hmac_sha1` is never used [INFO] [stdout] --> src/set4.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | pub fn hmac_sha1(key: &[u8], message: &[u8]) -> [u8; DIGEST_LENGTH_SHA1] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hmac` is never used [INFO] [stdout] --> src/set4.rs:116:8 [INFO] [stdout] | [INFO] [stdout] 116 | pub fn hmac(key: &[u8], message: &[u8], hash: F) -> Vec [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_random_utf8` is never used [INFO] [stdout] --> src/set4.rs:152:8 [INFO] [stdout] | [INFO] [stdout] 152 | pub fn get_random_utf8() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_server` is never used [INFO] [stdout] --> src/set4.rs:159:4 [INFO] [stdout] | [INFO] [stdout] 159 | fn start_server(port: u16, key: Arc>, compare: F) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_request` is never used [INFO] [stdout] --> src/set4.rs:181:10 [INFO] [stdout] | [INFO] [stdout] 181 | async fn send_request(port: u16, file: String, sig: String) -> Response { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insecure_compare` is never used [INFO] [stdout] --> src/set4.rs:189:4 [INFO] [stdout] | [INFO] [stdout] 189 | fn insecure_compare(a: &[u8], b: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `artificial_timing_attack` is never used [INFO] [stdout] --> src/set4.rs:199:10 [INFO] [stdout] | [INFO] [stdout] 199 | async fn artificial_timing_attack(file: &[u8], send_request: F) -> [u8; DIGEST_LENGTH_SHA1] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `md4_mac_sign` is never used [INFO] [stdout] --> src/set4.rs:264:8 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn md4_mac_sign(message: &[u8], key: &[u8]) -> [u8; DIGEST_LENGTH_MD4] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `md4_mac_verify` is never used [INFO] [stdout] --> src/set4.rs:268:8 [INFO] [stdout] | [INFO] [stdout] 268 | pub fn md4_mac_verify(mac: &[u8; DIGEST_LENGTH_MD4], message: &[u8], key: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DIGEST_LENGTH_MD4` is never used [INFO] [stdout] --> src/set4.rs:272:11 [INFO] [stdout] | [INFO] [stdout] 272 | pub const DIGEST_LENGTH_MD4: usize = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_STATE_MD4` is never used [INFO] [stdout] --> src/set4.rs:274:11 [INFO] [stdout] | [INFO] [stdout] 274 | pub const DEFAULT_STATE_MD4: [u32; 4] = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `md4_pad` is never used [INFO] [stdout] --> src/set4.rs:276:8 [INFO] [stdout] | [INFO] [stdout] 276 | pub fn md4_pad(message_len: u64) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `md4` is never used [INFO] [stdout] --> src/set4.rs:291:8 [INFO] [stdout] | [INFO] [stdout] 291 | pub fn md4(message: &[u8]) -> [u8; DIGEST_LENGTH_MD4] { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `md4_from_state` is never used [INFO] [stdout] --> src/set4.rs:296:8 [INFO] [stdout] | [INFO] [stdout] 296 | pub fn md4_from_state( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `md4_digest_to_state` is never used [INFO] [stdout] --> src/set4.rs:394:8 [INFO] [stdout] | [INFO] [stdout] 394 | pub fn md4_digest_to_state(digest: &[u8; DIGEST_LENGTH_MD4]) -> [u32; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `md4_state_to_digest` is never used [INFO] [stdout] --> src/set4.rs:402:8 [INFO] [stdout] | [INFO] [stdout] 402 | pub fn md4_state_to_digest(state: &[u32; 4]) -> [u8; DIGEST_LENGTH_MD4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extend_secret_prefix_md4_mac` is never used [INFO] [stdout] --> src/set4.rs:410:4 [INFO] [stdout] | [INFO] [stdout] 410 | fn extend_secret_prefix_md4_mac( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extend_secret_prefix_sha1_mac` is never used [INFO] [stdout] --> src/set4.rs:453:4 [INFO] [stdout] | [INFO] [stdout] 453 | fn extend_secret_prefix_sha1_mac( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_padding` is never used [INFO] [stdout] --> src/set4.rs:484:4 [INFO] [stdout] | [INFO] [stdout] 484 | fn get_padding(message: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `K0` is never used [INFO] [stdout] --> src/set4.rs:513:7 [INFO] [stdout] | [INFO] [stdout] 513 | const K0: u32 = 0x5A827999u32; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `K1` is never used [INFO] [stdout] --> src/set4.rs:514:7 [INFO] [stdout] | [INFO] [stdout] 514 | const K1: u32 = 0x6ED9EBA1u32; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `K2` is never used [INFO] [stdout] --> src/set4.rs:515:7 [INFO] [stdout] | [INFO] [stdout] 515 | const K2: u32 = 0x8F1BBCDCu32; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `K3` is never used [INFO] [stdout] --> src/set4.rs:516:7 [INFO] [stdout] | [INFO] [stdout] 516 | const K3: u32 = 0xCA62C1D6u32; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_STATE` is never used [INFO] [stdout] --> src/set4.rs:518:7 [INFO] [stdout] | [INFO] [stdout] 518 | const DEFAULT_STATE: [u32; 5] = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DIGEST_LENGTH_SHA1` is never used [INFO] [stdout] --> src/set4.rs:520:11 [INFO] [stdout] | [INFO] [stdout] 520 | pub const DIGEST_LENGTH_SHA1: usize = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha1` is never used [INFO] [stdout] --> src/set4.rs:522:8 [INFO] [stdout] | [INFO] [stdout] 522 | pub fn sha1(message: &[u8]) -> [u8; DIGEST_LENGTH_SHA1] { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha1_from_state` is never used [INFO] [stdout] --> src/set4.rs:527:8 [INFO] [stdout] | [INFO] [stdout] 527 | pub fn sha1_from_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `state_to_digest` is never used [INFO] [stdout] --> src/set4.rs:634:8 [INFO] [stdout] | [INFO] [stdout] 634 | pub fn state_to_digest(state: &[u32; 5]) -> [u8; DIGEST_LENGTH_SHA1] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `digest_to_state` is never used [INFO] [stdout] --> src/set4.rs:642:8 [INFO] [stdout] | [INFO] [stdout] 642 | pub fn digest_to_state(digest: &[u8; DIGEST_LENGTH_SHA1]) -> [u32; 5] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha1_pad` is never used [INFO] [stdout] --> src/set4.rs:655:8 [INFO] [stdout] | [INFO] [stdout] 655 | pub fn sha1_pad(len: u64) -> [u8; 128] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha1_mac_sign` is never used [INFO] [stdout] --> src/set4.rs:678:15 [INFO] [stdout] | [INFO] [stdout] 678 | pub(crate) fn sha1_mac_sign(message: &[u8], key: &[u8]) -> [u8; DIGEST_LENGTH_SHA1] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha1_mac_verify` is never used [INFO] [stdout] --> src/set4.rs:682:15 [INFO] [stdout] | [INFO] [stdout] 682 | pub(crate) fn sha1_mac_verify(mac: &[u8; DIGEST_LENGTH_SHA1], message: &[u8], key: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `recoverkey_from_cbc_key_as_iv` is never used [INFO] [stdout] --> src/set4.rs:701:15 [INFO] [stdout] | [INFO] [stdout] 701 | pub(crate) fn recoverkey_from_cbc_key_as_iv( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AesCbcOracleKeyAsIv` is never constructed [INFO] [stdout] --> src/set4.rs:723:19 [INFO] [stdout] | [INFO] [stdout] 723 | pub(crate) struct AesCbcOracleKeyAsIv<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `encrypt`, and `check_admin` are never used [INFO] [stdout] --> src/set4.rs:730:19 [INFO] [stdout] | [INFO] [stdout] 729 | impl<'a> AesCbcOracleKeyAsIv<'a> { [INFO] [stdout] | -------------------------------- associated items in this implementation [INFO] [stdout] 730 | pub(crate) fn new(key: &[u8; BLOCK_SIZE], prefix: &'a [u8], suffix: &'a [u8]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 739 | pub(crate) fn encrypt(&self, plaintext: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 746 | pub(crate) fn check_admin(&self, ciphertext: &[u8]) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ctr_bit_flipping_attack` is never used [INFO] [stdout] --> src/set4.rs:780:15 [INFO] [stdout] | [INFO] [stdout] 780 | pub(crate) fn ctr_bit_flipping_attack(oracle: &CtrBitFlippingOracle) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `CtrBitFlippingOracle` is never used [INFO] [stdout] --> src/set4.rs:803:17 [INFO] [stdout] | [INFO] [stdout] 803 | pub(crate) type CtrBitFlippingOracle<'a> = BitFlippingOracle<'a, AesCtrOracle>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AesCtrOracle` is never constructed [INFO] [stdout] --> src/set4.rs:807:19 [INFO] [stdout] | [INFO] [stdout] 807 | pub(crate) struct AesCtrOracle { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/set4.rs:813:19 [INFO] [stdout] | [INFO] [stdout] 812 | impl AesCtrOracle { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 813 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `break_random_access_read_write_aes_ctr` is never used [INFO] [stdout] --> src/set4.rs:848:15 [INFO] [stdout] | [INFO] [stdout] 848 | pub(crate) fn break_random_access_read_write_aes_ctr( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CtrEditOracle` is never constructed [INFO] [stdout] --> src/set4.rs:855:19 [INFO] [stdout] | [INFO] [stdout] 855 | pub(crate) struct CtrEditOracle<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `edit` are never used [INFO] [stdout] --> src/set4.rs:861:19 [INFO] [stdout] | [INFO] [stdout] 860 | impl<'a> CtrEditOracle<'a> { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 861 | pub(crate) fn new(key: &'a [u8; BLOCK_SIZE], nonce: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 864 | pub(crate) fn edit(&self, ciphertext: &[u8], offset: usize, new_text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_keystream` is never used [INFO] [stdout] --> src/set4.rs:869:4 [INFO] [stdout] | [INFO] [stdout] 869 | fn create_keystream(key: &[u8; BLOCK_SIZE], nonce: u64, range: Range) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edit` is never used [INFO] [stdout] --> src/set4.rs:885:4 [INFO] [stdout] | [INFO] [stdout] 885 | fn edit(ciphertext: &[u8], key: &[u8; 16], offset: usize, nonce: u64, new_text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cube_root` is never used [INFO] [stdout] --> src/set5.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn cube_root(n: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rsa_broadcast_attack` is never used [INFO] [stdout] --> src/set5.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn rsa_broadcast_attack(residues: &[BigUint; 3], moduli: &[BigUint; 3]) -> BigUint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_test_rsa` is never used [INFO] [stdout] --> src/set5.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn do_test_rsa(p: &BigUint, q: &BigUint, e: &BigUint, message: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_large_primes` is never used [INFO] [stdout] --> src/set5.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn generate_large_primes(bit_size: usize, exp: &BigUint) -> (BigUint, BigUint) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_mod` is never used [INFO] [stdout] --> src/set5.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn inv_mod(a: &BigUint, m: &BigUint) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `egcd` is never used [INFO] [stdout] --> src/set5.rs:122:4 [INFO] [stdout] | [INFO] [stdout] 122 | fn egcd(a: &BigUint, b: &BigUint) -> (BigUint, BigInt, BigInt) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SrpMitm` is never constructed [INFO] [stdout] --> src/set5.rs:152:8 [INFO] [stdout] | [INFO] [stdout] 152 | struct SrpMitm { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `establish_shared_secret`, and `crack_password` are never used [INFO] [stdout] --> src/set5.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 164 | impl SrpMitm { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 165 | fn new(n: BigUint, g: BigUint, k: BigUint, passwords_filename: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | fn establish_shared_secret(&mut self, pk: &BigUint) -> Result<(BigUint, BigUint, BigUint), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | fn crack_password(&self, client_hmac: &[u8; 32]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_random_password` is never used [INFO] [stdout] --> src/set5.rs:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | fn get_random_password(filename: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_srp_client_mitm` is never used [INFO] [stdout] --> src/set5.rs:227:4 [INFO] [stdout] | [INFO] [stdout] 227 | fn init_srp_client_mitm(passwords_filename: &str) -> (SrpClient, SrpMitm) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_test_break_srp_with_zero_key` is never used [INFO] [stdout] --> src/set5.rs:251:4 [INFO] [stdout] | [INFO] [stdout] 251 | fn do_test_break_srp_with_zero_key(public_key: &BigUint) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_srp_client_server` is never used [INFO] [stdout] --> src/set5.rs:271:4 [INFO] [stdout] | [INFO] [stdout] 271 | fn init_srp_client_server() -> (SrpClient, SrpServer) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `n_g_k` is never used [INFO] [stdout] --> src/set5.rs:287:4 [INFO] [stdout] | [INFO] [stdout] 287 | fn n_g_k() -> (BigUint, BigUint, BigUint) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha2` is never used [INFO] [stdout] --> src/set5.rs:297:8 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn sha2(data: &[u8]) -> [u8; 32] { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hmac_sha2` is never used [INFO] [stdout] --> src/set5.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 303 | pub fn hmac_sha2(key: &[u8], message: &[u8]) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SrpClient` is never constructed [INFO] [stdout] --> src/set5.rs:309:8 [INFO] [stdout] | [INFO] [stdout] 309 | struct SrpClient { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/set5.rs:320:8 [INFO] [stdout] | [INFO] [stdout] 319 | impl SrpClient { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 320 | fn new(n: BigUint, g: BigUint, k: BigUint, email: String, password: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | fn email(&self) -> &str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | fn password(&self) -> &str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 342 | fn public_key(&self) -> BigUint { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 346 | fn generate_hmac(&self, salt: &BigUint, pk: &BigUint) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 362 | fn generate_zero_key_hmac(&self, salt: &BigUint) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | fn generate_hmac_simplified(&self, salt: &BigUint, pk: &BigUint, u: &BigUint) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SrpUserInfo` is never constructed [INFO] [stdout] --> src/set5.rs:376:8 [INFO] [stdout] | [INFO] [stdout] 376 | struct SrpUserInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SrpServer` is never constructed [INFO] [stdout] --> src/set5.rs:382:8 [INFO] [stdout] | [INFO] [stdout] 382 | struct SrpServer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `register`, `establish_shared_secret`, and `authenticate` are never used [INFO] [stdout] --> src/set5.rs:390:8 [INFO] [stdout] | [INFO] [stdout] 389 | impl SrpServer { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 390 | fn new(n: &BigUint, g: &BigUint, k: &BigUint) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 399 | fn register(&mut self, email: String, password: String) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | fn establish_shared_secret( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 435 | fn authenticate(&self, email: &str, hmac: &[u8; 32]) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `server_sk_pk` is never used [INFO] [stdout] --> src/set5.rs:465:4 [INFO] [stdout] | [INFO] [stdout] 465 | fn server_sk_pk(n: &BigUint, k: &BigUint, v: &BigUint, g: &BigUint) -> (BigUint, BigUint) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `server_K` is never used [INFO] [stdout] --> src/set5.rs:471:4 [INFO] [stdout] | [INFO] [stdout] 471 | fn server_K(pk_a: &BigUint, v: &BigUint, u: &BigUint, n: &BigUint, sk_b: &BigUint) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `server_v` is never used [INFO] [stdout] --> src/set5.rs:476:4 [INFO] [stdout] | [INFO] [stdout] 476 | fn server_v(salt: &BigUint, password: &[u8], n: &BigUint, g: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `client_K` is never used [INFO] [stdout] --> src/set5.rs:482:4 [INFO] [stdout] | [INFO] [stdout] 482 | fn client_K( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `big_prime` is never used [INFO] [stdout] --> src/set5.rs:499:4 [INFO] [stdout] | [INFO] [stdout] 499 | fn big_prime() -> BigUint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DHAesCbc` is never used [INFO] [stdout] --> src/set5.rs:600:7 [INFO] [stdout] | [INFO] [stdout] 600 | trait DHAesCbc { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DHActor` is never used [INFO] [stdout] --> src/set5.rs:605:7 [INFO] [stdout] | [INFO] [stdout] 605 | trait DHActor { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DHBasic` is never constructed [INFO] [stdout] --> src/set5.rs:612:8 [INFO] [stdout] | [INFO] [stdout] 612 | struct DHBasic { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `new_from`, `new_from_other`, `new_from_other_with_secret`, and `public_key` are never used [INFO] [stdout] --> src/set5.rs:643:8 [INFO] [stdout] | [INFO] [stdout] 642 | impl DHBasic { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 643 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 650 | fn new_from(g: &BigUint, p: &BigUint, secret: &BigUint) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 660 | fn new_from_other(g: &BigUint, p: &BigUint, their_pk: &BigUint) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 665 | fn new_from_other_with_secret( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 676 | fn public_key(&self) -> BigUint { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DHFixedKey` is never constructed [INFO] [stdout] --> src/set5.rs:700:8 [INFO] [stdout] | [INFO] [stdout] 700 | struct DHFixedKey { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/set5.rs:708:8 [INFO] [stdout] | [INFO] [stdout] 707 | impl DHFixedKey { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 708 | fn new(shared_secret: &BigUint) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DHMitm` is never constructed [INFO] [stdout] --> src/set5.rs:743:8 [INFO] [stdout] | [INFO] [stdout] 743 | struct DHMitm { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/set5.rs:751:8 [INFO] [stdout] | [INFO] [stdout] 750 | impl DHMitm { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 751 | fn new(key: &BigUint) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_key_from_dh_shared_secret` is never used [INFO] [stdout] --> src/set5.rs:764:4 [INFO] [stdout] | [INFO] [stdout] 764 | fn aes_key_from_dh_shared_secret(shared_secret: &BigUint) -> [u8; 16] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_key_from_dh` is never used [INFO] [stdout] --> src/set5.rs:770:4 [INFO] [stdout] | [INFO] [stdout] 770 | fn aes_key_from_dh(my_sk: &BigUint, their_pk: &BigUint, p: &BigUint) -> [u8; 16] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_dh_secret` is never used [INFO] [stdout] --> src/set5.rs:775:4 [INFO] [stdout] | [INFO] [stdout] 775 | fn generate_dh_secret(p: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_test_basic_dh` is never used [INFO] [stdout] --> src/set5.rs:782:4 [INFO] [stdout] | [INFO] [stdout] 782 | fn do_test_basic_dh(p: &BigUint, g: &BigUint, a: &BigUint, b: &BigUint) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_test_bleichenbacher_padding_oracle` is never used [INFO] [stdout] --> src/set6.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn do_test_bleichenbacher_padding_oracle(modulus_bit_length: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ceil_div` is never used [INFO] [stdout] --> src/set6.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn ceil_div(dividend: &BigUint, divisor: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `floor_div` is never used [INFO] [stdout] --> src/set6.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn floor_div(dividend: &BigUint, divisor: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rsa_decrypt_from_padding_oracle_simple` is never used [INFO] [stdout] --> src/set6.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn rsa_decrypt_from_padding_oracle_simple( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pkcs1_5_pad` is never used [INFO] [stdout] --> src/set6.rs:182:4 [INFO] [stdout] | [INFO] [stdout] 182 | fn pkcs1_5_pad(msg: &[u8], key_byte_length: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RsaPublicKey` is never constructed [INFO] [stdout] --> src/set6.rs:191:8 [INFO] [stdout] | [INFO] [stdout] 191 | struct RsaPublicKey { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `encrypt` is never used [INFO] [stdout] --> src/set6.rs:197:8 [INFO] [stdout] | [INFO] [stdout] 196 | impl RsaPublicKey { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 197 | fn encrypt(&self, message: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RsaPaddingOracle` is never constructed [INFO] [stdout] --> src/set6.rs:202:8 [INFO] [stdout] | [INFO] [stdout] 202 | struct RsaPaddingOracle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_plaintext_padding` is never used [INFO] [stdout] --> src/set6.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 206 | impl RsaPaddingOracle { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 207 | fn check_plaintext_padding(&self, ciphertext: &BigUint) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rsa_decrypt_from_parity_oracle` is never used [INFO] [stdout] --> src/set6.rs:240:4 [INFO] [stdout] | [INFO] [stdout] 240 | fn rsa_decrypt_from_parity_oracle( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RsaParityOracle` is never constructed [INFO] [stdout] --> src/set6.rs:262:8 [INFO] [stdout] | [INFO] [stdout] 262 | struct RsaParityOracle { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_plaintext_odd` is never used [INFO] [stdout] --> src/set6.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 266 | impl RsaParityOracle { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] 267 | fn is_plaintext_odd(&self, ciphertext: &BigUint) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign_g_equals_zero` is never used [INFO] [stdout] --> src/set6.rs:312:4 [INFO] [stdout] | [INFO] [stdout] 312 | fn dsa_sign_g_equals_zero(params: &DsaParameters, message: &[u8]) -> DsaSignature { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign_g_equals_one_mod_p` is never used [INFO] [stdout] --> src/set6.rs:326:4 [INFO] [stdout] | [INFO] [stdout] 326 | fn dsa_sign_g_equals_one_mod_p(params: &DsaParameters, pk: &DsaPublicKey) -> DsaSignature { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `recover_repeated_nonce_from_messages` is never used [INFO] [stdout] --> src/set6.rs:377:4 [INFO] [stdout] | [INFO] [stdout] 377 | fn recover_repeated_nonce_from_messages( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `recover_repeated_nonce` is never used [INFO] [stdout] --> src/set6.rs:412:4 [INFO] [stdout] | [INFO] [stdout] 412 | fn recover_repeated_nonce( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_secret_k_range` is never used [INFO] [stdout] --> src/set6.rs:476:4 [INFO] [stdout] | [INFO] [stdout] 476 | fn find_secret_k_range( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign_k_range` is never used [INFO] [stdout] --> src/set6.rs:499:4 [INFO] [stdout] | [INFO] [stdout] 499 | fn dsa_sign_k_range( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_secret` is never used [INFO] [stdout] --> src/set6.rs:531:4 [INFO] [stdout] | [INFO] [stdout] 531 | fn find_secret( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_secret_given_values` is never used [INFO] [stdout] --> src/set6.rs:545:4 [INFO] [stdout] | [INFO] [stdout] 545 | fn find_secret_given_values( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_new_keypair` is never used [INFO] [stdout] --> src/set6.rs:569:4 [INFO] [stdout] | [INFO] [stdout] 569 | fn dsa_new_keypair(params: &DsaParameters) -> (DsaSecretKey, DsaPublicKey) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DsaSecretKey` is never constructed [INFO] [stdout] --> src/set6.rs:576:8 [INFO] [stdout] | [INFO] [stdout] 576 | struct DsaSecretKey { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DsaPublicKey` is never constructed [INFO] [stdout] --> src/set6.rs:580:8 [INFO] [stdout] | [INFO] [stdout] 580 | struct DsaPublicKey { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DsaSignature` is never constructed [INFO] [stdout] --> src/set6.rs:585:8 [INFO] [stdout] | [INFO] [stdout] 585 | struct DsaSignature { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign` is never used [INFO] [stdout] --> src/set6.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn dsa_sign(params: &DsaParameters, sk: &DsaSecretKey, message: &[u8]) -> DsaSignature { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign_given_k` is never used [INFO] [stdout] --> src/set6.rs:599:4 [INFO] [stdout] | [INFO] [stdout] 599 | fn dsa_sign_given_k( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign_unsafe` is never used [INFO] [stdout] --> src/set6.rs:619:4 [INFO] [stdout] | [INFO] [stdout] 619 | fn dsa_sign_unsafe(params: &DsaParameters, sk: &DsaSecretKey, message: &[u8]) -> DsaSignature { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign_given_values` is never used [INFO] [stdout] --> src/set6.rs:633:4 [INFO] [stdout] | [INFO] [stdout] 633 | fn dsa_sign_given_values( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_verify` is never used [INFO] [stdout] --> src/set6.rs:648:4 [INFO] [stdout] | [INFO] [stdout] 648 | fn dsa_verify( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_verify_unsafe` is never used [INFO] [stdout] --> src/set6.rs:674:4 [INFO] [stdout] | [INFO] [stdout] 674 | fn dsa_verify_unsafe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DsaParameters` is never constructed [INFO] [stdout] --> src/set6.rs:700:8 [INFO] [stdout] | [INFO] [stdout] 700 | struct DsaParameters { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_default_parameters` is never used [INFO] [stdout] --> src/set6.rs:706:4 [INFO] [stdout] | [INFO] [stdout] 706 | fn dsa_default_parameters() -> DsaParameters { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bleichenbacher_forge_signature` is never used [INFO] [stdout] --> src/set6.rs:726:4 [INFO] [stdout] | [INFO] [stdout] 726 | fn bleichenbacher_forge_signature(message: &BigUint, key_length: usize) -> BigUint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `asn1_sha1` is never used [INFO] [stdout] --> src/set6.rs:739:4 [INFO] [stdout] | [INFO] [stdout] 739 | fn asn1_sha1() -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RsaKeypair` is never constructed [INFO] [stdout] --> src/set6.rs:743:8 [INFO] [stdout] | [INFO] [stdout] 743 | struct RsaKeypair { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `public_key`, `encrypt`, `decrypt`, `verify`, and `sign` are never used [INFO] [stdout] --> src/set6.rs:750:8 [INFO] [stdout] | [INFO] [stdout] 749 | impl RsaKeypair { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 750 | fn new(e: BigUint, bit_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 758 | fn public_key(&self) -> RsaPublicKey { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 762 | fn encrypt(&self, message: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 766 | fn decrypt(&self, ciphertext: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 772 | fn verify(&self, message: &BigUint, signature: &BigUint) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 810 | fn sign(&self, message: &BigUint) -> BigUint { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RsaOracle` is never constructed [INFO] [stdout] --> src/set6.rs:843:8 [INFO] [stdout] | [INFO] [stdout] 843 | struct RsaOracle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `public_key`, and `decrypt` are never used [INFO] [stdout] --> src/set6.rs:850:8 [INFO] [stdout] | [INFO] [stdout] 849 | impl RsaOracle { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 850 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 863 | fn public_key(&self) -> (BigUint, BigUint) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 867 | fn decrypt(&mut self, ciphertext: &BigUint) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `recover_message_from_unpadded_oracle` is never used [INFO] [stdout] --> src/set6.rs:879:4 [INFO] [stdout] | [INFO] [stdout] 879 | fn recover_message_from_unpadded_oracle(ciphertext: &BigUint, oracle: &mut RsaOracle) -> BigUint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `server_K` should have a snake case name [INFO] [stdout] --> src/set5.rs:471:4 [INFO] [stdout] | [INFO] [stdout] 471 | fn server_K(pk_a: &BigUint, v: &BigUint, u: &BigUint, n: &BigUint, sk_b: &BigUint) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server_k` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `client_K` should have a snake case name [INFO] [stdout] --> src/set5.rs:482:4 [INFO] [stdout] | [INFO] [stdout] 482 | fn client_K( [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `client_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 250 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.38s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.18.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "b71616bea5c00743b777dcd9e0bec599eae194e07088d02e1a0af50d80194f0a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b71616bea5c00743b777dcd9e0bec599eae194e07088d02e1a0af50d80194f0a", kill_on_drop: false }` [INFO] [stdout] b71616bea5c00743b777dcd9e0bec599eae194e07088d02e1a0af50d80194f0a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:96c0aa5895ecf336b730ef27bcdde6e21027415df19888aad3cf1448e5d65d90" "/opt/rustwide/cargo-home/bin/cargo" "+1.81.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f492311023ee8a7aa99a8a0245b35e031370bc045a9b844a0f64e04fc9045e0f [INFO] running `Command { std: "docker" "start" "-a" "f492311023ee8a7aa99a8a0245b35e031370bc045a9b844a0f64e04fc9045e0f", kill_on_drop: false }` [INFO] [stderr] Compiling cryptopals-rust v0.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set3.rs:256:7 [INFO] [stdout] | [INFO] [stdout] 256 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RngCore` [INFO] [stdout] --> src/set3.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set4.rs:71:7 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set4.rs:227:7 [INFO] [stdout] | [INFO] [stdout] 227 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatusCode` [INFO] [stdout] --> src/set4.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use reqwest::{Client, Response, StatusCode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Reply` [INFO] [stdout] --> src/set4.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | use warp::{http, Filter, Reply}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RngCore` [INFO] [stdout] --> src/set5.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set6.rs:217:7 [INFO] [stdout] | [INFO] [stdout] 217 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `wait` [INFO] [stdout] --> src/set6.rs:463:7 [INFO] [stdout] | [INFO] [stdout] 463 | #[cfg(wait)] [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Engine` and `engine::general_purpose` [INFO] [stdout] --> src/set6.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use base64::{engine::general_purpose, Engine}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RandPrime` [INFO] [stdout] --> src/set6.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use num_bigint::{BigInt, BigUint, RandBigInt, RandPrime, ToBigInt, ToBigUint}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CheckedSub` [INFO] [stdout] --> src/set6.rs:4:54 [INFO] [stdout] | [INFO] [stdout] 4 | use num_traits::{FromPrimitive, Num, One, Zero, Pow, CheckedSub}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mul` [INFO] [stdout] --> src/set6.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::{Range, Mul}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/set6.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/set6.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/set4.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | port: u16, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/set5.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | if let Some(d) = inv_mod(exp, &totient) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/set5.rs:112:16 [INFO] [stdout] | [INFO] [stdout] 112 | let (g, x, y) = egcd(a, m); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `counterparty` [INFO] [stdout] --> src/set5.rs:730:26 [INFO] [stdout] | [INFO] [stdout] 730 | fn send_dh_pk(&self, counterparty: &mut impl DHActor) {} [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counterparty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `counterparty` [INFO] [stdout] --> src/set5.rs:734:33 [INFO] [stdout] | [INFO] [stdout] 734 | fn send_dh_start(&mut self, counterparty: &mut impl DHActor) {} [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counterparty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_random` is never used [INFO] [stdout] --> src/set3.rs:251:4 [INFO] [stdout] | [INFO] [stdout] 251 | fn wait_random() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `less_insecure_compare` is never used [INFO] [stdout] --> src/set4.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn less_insecure_compare(a: &[u8], b: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `less_artificial_timing_attack` is never used [INFO] [stdout] --> src/set4.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | async fn less_artificial_timing_attack( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_server` is never used [INFO] [stdout] --> src/set4.rs:159:4 [INFO] [stdout] | [INFO] [stdout] 159 | fn start_server(port: u16, key: Arc>, compare: F) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_request` is never used [INFO] [stdout] --> src/set4.rs:181:10 [INFO] [stdout] | [INFO] [stdout] 181 | async fn send_request(port: u16, file: String, sig: String) -> Response { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insecure_compare` is never used [INFO] [stdout] --> src/set4.rs:189:4 [INFO] [stdout] | [INFO] [stdout] 189 | fn insecure_compare(a: &[u8], b: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `artificial_timing_attack` is never used [INFO] [stdout] --> src/set4.rs:199:10 [INFO] [stdout] | [INFO] [stdout] 199 | async fn artificial_timing_attack(file: &[u8], send_request: F) -> [u8; DIGEST_LENGTH_SHA1] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `k` is never read [INFO] [stdout] --> src/set5.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 152 | struct SrpMitm { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 155 | k: BigUint, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `shared_secret` is never read [INFO] [stdout] --> src/set5.rs:703:5 [INFO] [stdout] | [INFO] [stdout] 700 | struct DHFixedKey { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 703 | shared_secret: BigUint, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `g` and `p` are never read [INFO] [stdout] --> src/set5.rs:744:5 [INFO] [stdout] | [INFO] [stdout] 743 | struct DHMitm { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 744 | g: BigUint, [INFO] [stdout] | ^ [INFO] [stdout] 745 | p: BigUint, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aes_key_from_dh` is never used [INFO] [stdout] --> src/set5.rs:770:4 [INFO] [stdout] | [INFO] [stdout] 770 | fn aes_key_from_dh(my_sk: &BigUint, their_pk: &BigUint, p: &BigUint) -> [u8; 16] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rsa_decrypt_from_parity_oracle` is never used [INFO] [stdout] --> src/set6.rs:240:4 [INFO] [stdout] | [INFO] [stdout] 240 | fn rsa_decrypt_from_parity_oracle( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RsaParityOracle` is never constructed [INFO] [stdout] --> src/set6.rs:262:8 [INFO] [stdout] | [INFO] [stdout] 262 | struct RsaParityOracle { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_plaintext_odd` is never used [INFO] [stdout] --> src/set6.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 266 | impl RsaParityOracle { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] 267 | fn is_plaintext_odd(&self, ciphertext: &BigUint) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dsa_sign_k_range` is never used [INFO] [stdout] --> src/set6.rs:499:4 [INFO] [stdout] | [INFO] [stdout] 499 | fn dsa_sign_k_range( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `server_K` should have a snake case name [INFO] [stdout] --> src/set5.rs:471:4 [INFO] [stdout] | [INFO] [stdout] 471 | fn server_K(pk_a: &BigUint, v: &BigUint, u: &BigUint, n: &BigUint, sk_b: &BigUint) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server_k` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `client_K` should have a snake case name [INFO] [stdout] --> src/set5.rs:482:4 [INFO] [stdout] | [INFO] [stdout] 482 | fn client_K( [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `client_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 3.06s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.18.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "f492311023ee8a7aa99a8a0245b35e031370bc045a9b844a0f64e04fc9045e0f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f492311023ee8a7aa99a8a0245b35e031370bc045a9b844a0f64e04fc9045e0f", kill_on_drop: false }` [INFO] [stdout] f492311023ee8a7aa99a8a0245b35e031370bc045a9b844a0f64e04fc9045e0f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:96c0aa5895ecf336b730ef27bcdde6e21027415df19888aad3cf1448e5d65d90" "/opt/rustwide/cargo-home/bin/cargo" "+1.81.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9bde397dd8beec29ab7765216427c65e1ccee6c98631dadac9c3677cba192cb4 [INFO] running `Command { std: "docker" "start" "-a" "9bde397dd8beec29ab7765216427c65e1ccee6c98631dadac9c3677cba192cb4", kill_on_drop: false }` [INFO] [stderr] warning: unexpected `cfg` condition name: `wait` [INFO] [stderr] --> src/set3.rs:256:7 [INFO] [stderr] | [INFO] [stderr] 256 | #[cfg(wait)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `RngCore` [INFO] [stderr] --> src/set3.rs:7:29 [INFO] [stderr] | [INFO] [stderr] 7 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `wait` [INFO] [stderr] --> src/set4.rs:71:7 [INFO] [stderr] | [INFO] [stderr] 71 | #[cfg(wait)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `wait` [INFO] [stderr] --> src/set4.rs:227:7 [INFO] [stderr] | [INFO] [stderr] 227 | #[cfg(wait)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unused import: `StatusCode` [INFO] [stderr] --> src/set4.rs:3:33 [INFO] [stderr] | [INFO] [stderr] 3 | use reqwest::{Client, Response, StatusCode}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Reply` [INFO] [stderr] --> src/set4.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | use warp::{http, Filter, Reply}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `RngCore` [INFO] [stderr] --> src/set5.rs:1:29 [INFO] [stderr] | [INFO] [stderr] 1 | use rand::{thread_rng, Rng, RngCore}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `wait` [INFO] [stderr] --> src/set6.rs:217:7 [INFO] [stderr] | [INFO] [stderr] 217 | #[cfg(wait)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `wait` [INFO] [stderr] --> src/set6.rs:463:7 [INFO] [stderr] | [INFO] [stderr] 463 | #[cfg(wait)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wait)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(wait)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Engine` and `engine::general_purpose` [INFO] [stderr] --> src/set6.rs:1:14 [INFO] [stderr] | [INFO] [stderr] 1 | use base64::{engine::general_purpose, Engine}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `RandPrime` [INFO] [stderr] --> src/set6.rs:2:47 [INFO] [stderr] | [INFO] [stderr] 2 | use num_bigint::{BigInt, BigUint, RandBigInt, RandPrime, ToBigInt, ToBigUint}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `CheckedSub` [INFO] [stderr] --> src/set6.rs:4:54 [INFO] [stderr] | [INFO] [stderr] 4 | use num_traits::{FromPrimitive, Num, One, Zero, Pow, CheckedSub}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Mul` [INFO] [stderr] --> src/set6.rs:8:23 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ops::{Range, Mul}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::sleep` [INFO] [stderr] --> src/set6.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::thread::sleep; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/set6.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/set4.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | port: u16, [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `d` [INFO] [stderr] --> src/set5.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | if let Some(d) = inv_mod(exp, &totient) { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/set5.rs:112:16 [INFO] [stderr] | [INFO] [stderr] 112 | let (g, x, y) = egcd(a, m); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `counterparty` [INFO] [stderr] --> src/set5.rs:730:26 [INFO] [stderr] | [INFO] [stderr] 730 | fn send_dh_pk(&self, counterparty: &mut impl DHActor) {} [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counterparty` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `counterparty` [INFO] [stderr] --> src/set5.rs:734:33 [INFO] [stderr] | [INFO] [stderr] 734 | fn send_dh_start(&mut self, counterparty: &mut impl DHActor) {} [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counterparty` [INFO] [stderr] [INFO] [stderr] warning: function `wait_random` is never used [INFO] [stderr] --> src/set3.rs:251:4 [INFO] [stderr] | [INFO] [stderr] 251 | fn wait_random() { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `less_insecure_compare` is never used [INFO] [stderr] --> src/set4.rs:20:4 [INFO] [stderr] | [INFO] [stderr] 20 | fn less_insecure_compare(a: &[u8], b: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `less_artificial_timing_attack` is never used [INFO] [stderr] --> src/set4.rs:30:10 [INFO] [stderr] | [INFO] [stderr] 30 | async fn less_artificial_timing_attack( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `start_server` is never used [INFO] [stderr] --> src/set4.rs:159:4 [INFO] [stderr] | [INFO] [stderr] 159 | fn start_server(port: u16, key: Arc>, compare: F) [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `send_request` is never used [INFO] [stderr] --> src/set4.rs:181:10 [INFO] [stderr] | [INFO] [stderr] 181 | async fn send_request(port: u16, file: String, sig: String) -> Response { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `insecure_compare` is never used [INFO] [stderr] --> src/set4.rs:189:4 [INFO] [stderr] | [INFO] [stderr] 189 | fn insecure_compare(a: &[u8], b: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `artificial_timing_attack` is never used [INFO] [stderr] --> src/set4.rs:199:10 [INFO] [stderr] | [INFO] [stderr] 199 | async fn artificial_timing_attack(file: &[u8], send_request: F) -> [u8; DIGEST_LENGTH_SHA1] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `k` is never read [INFO] [stderr] --> src/set5.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 152 | struct SrpMitm { [INFO] [stderr] | ------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 155 | k: BigUint, [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: field `shared_secret` is never read [INFO] [stderr] --> src/set5.rs:703:5 [INFO] [stderr] | [INFO] [stderr] 700 | struct DHFixedKey { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 703 | shared_secret: BigUint, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `g` and `p` are never read [INFO] [stderr] --> src/set5.rs:744:5 [INFO] [stderr] | [INFO] [stderr] 743 | struct DHMitm { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 744 | g: BigUint, [INFO] [stderr] | ^ [INFO] [stderr] 745 | p: BigUint, [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: function `aes_key_from_dh` is never used [INFO] [stderr] --> src/set5.rs:770:4 [INFO] [stderr] | [INFO] [stderr] 770 | fn aes_key_from_dh(my_sk: &BigUint, their_pk: &BigUint, p: &BigUint) -> [u8; 16] { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rsa_decrypt_from_parity_oracle` is never used [INFO] [stderr] --> src/set6.rs:240:4 [INFO] [stderr] | [INFO] [stderr] 240 | fn rsa_decrypt_from_parity_oracle( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `RsaParityOracle` is never constructed [INFO] [stderr] --> src/set6.rs:262:8 [INFO] [stderr] | [INFO] [stderr] 262 | struct RsaParityOracle { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `is_plaintext_odd` is never used [INFO] [stderr] --> src/set6.rs:267:8 [INFO] [stderr] | [INFO] [stderr] 266 | impl RsaParityOracle { [INFO] [stderr] | -------------------- method in this implementation [INFO] [stderr] 267 | fn is_plaintext_odd(&self, ciphertext: &BigUint) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `dsa_sign_k_range` is never used [INFO] [stderr] --> src/set6.rs:499:4 [INFO] [stderr] | [INFO] [stderr] 499 | fn dsa_sign_k_range( [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `server_K` should have a snake case name [INFO] [stderr] --> src/set5.rs:471:4 [INFO] [stderr] | [INFO] [stderr] 471 | fn server_K(pk_a: &BigUint, v: &BigUint, u: &BigUint, n: &BigUint, sk_b: &BigUint) -> [u8; 32] { [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server_k` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `client_K` should have a snake case name [INFO] [stderr] --> src/set5.rs:482:4 [INFO] [stderr] | [INFO] [stderr] 482 | fn client_K( [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `client_k` [INFO] [stderr] [INFO] [stderr] warning: `cryptopals-rust` (bin "cryptopals-rust" test) generated 37 warnings (run `cargo fix --bin "cryptopals-rust" --tests` to apply 10 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.18.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cryptopals_rust-a3c48d7c1937baf4) [INFO] [stdout] [INFO] [stdout] running 71 tests [INFO] [stdout] test set1::test_aes_ecb_decrypt ... ok [INFO] [stdout] test set1::test_aes_ecb_encrypt ... ok [INFO] [stdout] test set1::test_fixed_xor ... ok [INFO] [stdout] test set1::test_get_blocks ... ok [INFO] [stdout] test set1::test_hamming_distance ... ok [INFO] [stdout] test set1::test_hex_to_base64 ... ok [INFO] [stdout] test set1::test_hex_to_base64_string ... ok [INFO] [stdout] test set1::test_repeating_key_xor ... ok [INFO] [stdout] test set1::test_transpose_blocks ... ok [INFO] [stdout] test set2::test_add_profile ... ok [INFO] [stdout] test set2::test_aes_cbc_encrypt ... ok [INFO] [stdout] test set2::test_parse_key_value ... ok [INFO] [stdout] test set2::test_forge_admin_ciphertext ... ok [INFO] [stdout] test set2::test_pkcs7_unpad ... ok [INFO] [stdout] test set2::test_aes_cbc_decrypt ... ok [INFO] [stdout] test set2::test_pkcs7_pad ... ok [INFO] [stdout] test set3::test_aes_ctr_mode ... ok [INFO] [stdout] test set3::test_invert_left ... ok [INFO] [stdout] test set3::test_clone_mt19937 ... ok [INFO] [stdout] test set2::test_profile_for ... ok [INFO] [stdout] test set3::test_invert_right ... ok [INFO] [stdout] test set3::test_invert_temper ... ok [INFO] [stdout] test set3::test_mt19937_cipher ... ok [INFO] [stdout] test set3::test_mt19937_rng ... ok [INFO] [stdout] test set1::test_decrypt_single_bytes_xor ... ok [INFO] [stdout] test set4::test_ctr_bit_flipping ... ok [INFO] [stdout] test set4::test_break_random_access_aes_ctr ... ok [INFO] [stdout] test set4::test_extend_secret_prefix_sha1_mac ... ok [INFO] [stdout] test set4::test_extend_secret_prefix_md4_mac ... ok [INFO] [stdout] test set1::test_detect_aes_ecb ... ok [INFO] [stdout] test set4::test_md4_update ... ok [INFO] [stdout] test set4::test_md4 ... ok [INFO] [stdout] test set4::test_sha1 ... ok [INFO] [stdout] test set4::test_recover_key_from_cbc_key_as_iv ... ok [INFO] [stdout] test set4::test_sha1_hmac ... ok [INFO] [stdout] test set4::test_sha1_update ... ok [INFO] [stdout] test set4::test_sha1_keyed_mac ... ok [INFO] [stdout] test set3::test_crack_mt19937_time_seed ... ok [INFO] [stdout] test set2::test_profile_for_panic - should panic ... ok [INFO] [stdout] test set3::test_cbc_padding_oracle_attack ... ok [INFO] [stdout] test set2::test_detect_mode ... ok [INFO] [stdout] test set2::test_byte_at_a_time_ecb_decryption_harder ... ok [INFO] [stdout] test set5::test_egcd ... ok [INFO] [stdout] test set5::test_inv_mod ... ok [INFO] [stdout] test set2::test_byte_at_a_time_ecb_decryption_simple ... ok [INFO] [stdout] test set5::test_basic_dh ... ok [INFO] [stdout] test set3::test_prefixed_prng ... ok [INFO] [stdout] test set5::test_dh_g_equal_p ... ok [INFO] [stdout] test set2::test_cbc_bit_flipping ... ok [INFO] [stdout] test set5::test_dh_mitm_param_injection ... ok [INFO] [stdout] test set5::test_dh_interfaces ... ok [INFO] [stdout] test set1::test_decrypt_repeating_key_xor ... ok [INFO] [stdout] test set5::test_dh_g_equal_p_minus_one ... ok [INFO] [stdout] test set6::test_dsa ... ok [INFO] [stdout] test set5::test_dh_g_equal_one ... ok [INFO] [stdout] test set6::test_find_secret_given_k ... ok [INFO] [stdout] test set6::test_dsa_parameter_tampering ... ok [INFO] [stdout] test set3::test_fixed_nonce_ctr_attack ... ok [INFO] [stdout] test set6::test_repeated_nonce_recovery ... ok [INFO] [stdout] test set6::test_find_secret_example ... ok [INFO] [stdout] test set3::test_password_token ... ok [INFO] [stdout] test set5::test_srp ... ok [INFO] [stdout] test set5::test_break_srp_with_zero_key ... ok [INFO] [stdout] test set6::test_unpadded_message_recovery_oracle ... ok [INFO] [stdout] test set1::test_detect_single_byte_xor ... ok [INFO] [stdout] test set5::test_e_equals_three_rsa_broadcast_attack ... ok [INFO] [stdout] test set5::test_offline_dictionary_attack_simplified_srp ... ok [INFO] [stdout] test set5::test_rsa ... ok [INFO] [stdout] test set6::test_e_equals_three_bleichenbacher ... ok [INFO] [stdout] test set6::test_bleichenbacher_padding_oracle_complete has been running for over 60 seconds [INFO] [stdout] test set6::test_bleichenbacher_padding_oracle_simple has been running for over 60 seconds [INFO] [stdout] test set6::test_bleichenbacher_padding_oracle_simple ... FAILED [ERROR] error running command: no output for 300 seconds [INFO] running `Command { std: "docker" "inspect" "9bde397dd8beec29ab7765216427c65e1ccee6c98631dadac9c3677cba192cb4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9bde397dd8beec29ab7765216427c65e1ccee6c98631dadac9c3677cba192cb4", kill_on_drop: false }` [INFO] [stdout] 9bde397dd8beec29ab7765216427c65e1ccee6c98631dadac9c3677cba192cb4