[INFO] cloning repository https://github.com/johndaniels/rusttls [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/johndaniels/rusttls" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohndaniels%2Frusttls", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohndaniels%2Frusttls'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5dd0f3b1397b662a12970660c0401177d4f78132 [INFO] testing johndaniels/rusttls against 1.63.0 for beta-1.64-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohndaniels%2Frusttls" "/workspace/builds/worker-2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/johndaniels/rusttls on toolchain 1.63.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.63.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/johndaniels/rusttls [INFO] finished tweaking git repo https://github.com/johndaniels/rusttls [INFO] tweaked toml for git repo https://github.com/johndaniels/rusttls written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/johndaniels/rusttls already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.63.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded futures-channel-preview v0.3.0-alpha.19 [INFO] [stderr] Downloaded futures-io-preview v0.3.0-alpha.19 [INFO] [stderr] Downloaded pin-utils v0.1.0-alpha.4 [INFO] [stderr] Downloaded tracing v0.1.9 [INFO] [stderr] Downloaded tokio-net v0.2.0-alpha.6 [INFO] [stderr] Downloaded pin-project-internal v0.4.3 [INFO] [stderr] Downloaded backtrace v0.3.38 [INFO] [stderr] Downloaded num-bigint v0.2.3 [INFO] [stderr] Downloaded hex v0.4.0 [INFO] [stderr] Downloaded tokio-fs v0.2.0-alpha.6 [INFO] [stderr] Downloaded futures-sink-preview v0.3.0-alpha.19 [INFO] [stderr] Downloaded tokio-macros v0.2.0-alpha.6 [INFO] [stderr] Downloaded tracing-attributes v0.1.4 [INFO] [stderr] Downloaded futures-executor-preview v0.3.0-alpha.19 [INFO] [stderr] Downloaded futures-preview v0.3.0-alpha.19 [INFO] [stderr] Downloaded futures-core-preview v0.3.0-alpha.19 [INFO] [stderr] Downloaded proc-macro2 v1.0.5 [INFO] [stderr] Downloaded tokio-codec v0.2.0-alpha.6 [INFO] [stderr] Downloaded pin-project v0.4.3 [INFO] [stderr] Downloaded tokio-executor v0.2.0-alpha.6 [INFO] [stderr] Downloaded tokio-timer v0.3.0-alpha.6 [INFO] [stderr] Downloaded tokio v0.2.0-alpha.6 [INFO] [stderr] Downloaded futures-util-preview v0.3.0-alpha.19 [INFO] [stderr] Downloaded tokio-sync v0.2.0-alpha.6 [INFO] [stderr] Downloaded tracing-core v0.1.6 [INFO] [stderr] Downloaded bitflags v1.2.0 [INFO] [stderr] Downloaded trust-dns-proto v0.8.0 [INFO] [stderr] Downloaded trust-dns-resolver v0.12.0 [INFO] [stderr] Downloaded tokio-io v0.2.0-alpha.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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:824c28ce115f6b999260af6986f3384c158e782489540e41c0b698ca1d9fd927" "/opt/rustwide/cargo-home/bin/cargo" "+1.63.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5437c51bcded2a314abab93a43d7f3969bc845f18104788763e187929832d545 [INFO] running `Command { std: "docker" "start" "-a" "5437c51bcded2a314abab93a43d7f3969bc845f18104788763e187929832d545", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5437c51bcded2a314abab93a43d7f3969bc845f18104788763e187929832d545", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5437c51bcded2a314abab93a43d7f3969bc845f18104788763e187929832d545", kill_on_drop: false }` [INFO] [stdout] 5437c51bcded2a314abab93a43d7f3969bc845f18104788763e187929832d545 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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:824c28ce115f6b999260af6986f3384c158e782489540e41c0b698ca1d9fd927" "/opt/rustwide/cargo-home/bin/cargo" "+1.63.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8ad844df448aa3e85182ed2cd6b24c860071a35be780e3ec3425ca1638b5becd [INFO] running `Command { std: "docker" "start" "-a" "8ad844df448aa3e85182ed2cd6b24c860071a35be780e3ec3425ca1638b5becd", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Compiling proc-macro2 v1.0.5 [INFO] [stderr] Compiling smallvec v0.6.10 [INFO] [stderr] Compiling syn v1.0.5 [INFO] [stderr] Compiling arrayvec v0.4.11 [INFO] [stderr] Compiling futures-core-preview v0.3.0-alpha.19 [INFO] [stderr] Compiling nodrop v0.1.13 [INFO] [stderr] Compiling futures-sink-preview v0.3.0-alpha.19 [INFO] [stderr] Compiling autocfg v0.1.6 [INFO] [stderr] Compiling pin-utils v0.1.0-alpha.4 [INFO] [stderr] Compiling futures-io-preview v0.3.0-alpha.19 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling getrandom v0.1.12 [INFO] [stderr] Compiling cc v1.0.45 [INFO] [stderr] Compiling failure_derive v0.1.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.5 [INFO] [stderr] Compiling hex v0.4.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling tokio-sync v0.1.6 [INFO] [stderr] Compiling futures-channel-preview v0.3.0-alpha.19 [INFO] [stderr] Compiling unicode-normalization v0.1.8 [INFO] [stderr] Compiling num-traits v0.2.8 [INFO] [stderr] Compiling num-integer v0.1.41 [INFO] [stderr] Compiling num-bigint v0.2.3 [INFO] [stderr] Compiling crossbeam-utils v0.6.6 [INFO] [stderr] Compiling tracing-core v0.1.6 [INFO] [stderr] Compiling c2-chacha v0.2.2 [INFO] [stderr] Compiling memoffset v0.5.1 [INFO] [stderr] Compiling futures-util-preview v0.3.0-alpha.19 [INFO] [stderr] Compiling tokio-executor v0.1.8 [INFO] [stderr] Compiling crossbeam-queue v0.1.2 [INFO] [stderr] Compiling crossbeam-channel v0.3.9 [INFO] [stderr] Compiling iovec v0.1.2 [INFO] [stderr] Compiling num_cpus v1.10.1 [INFO] [stderr] Compiling net2 v0.2.33 [INFO] [stderr] Compiling socket2 v0.3.11 [INFO] [stderr] Compiling hostname v0.1.5 [INFO] [stderr] Compiling idna v0.2.0 [INFO] [stderr] Compiling tokio-timer v0.2.11 [INFO] [stderr] Compiling tokio-current-thread v0.1.6 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Compiling backtrace-sys v0.1.31 [INFO] [stderr] Compiling bytes v0.4.12 [INFO] [stderr] Compiling mio v0.6.19 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling resolv-conf v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Compiling crossbeam-epoch v0.7.2 [INFO] [stderr] Compiling url v2.1.0 [INFO] [stderr] Compiling tokio-io v0.1.12 [INFO] [stderr] Compiling tokio-sync v0.2.0-alpha.6 [INFO] [stderr] Compiling futures-executor-preview v0.3.0-alpha.19 [INFO] [stderr] Compiling rand_chacha v0.2.1 [INFO] [stderr] Compiling mio-uds v0.6.7 [INFO] [stderr] Compiling crossbeam-deque v0.7.1 [INFO] [stderr] Compiling futures-preview v0.3.0-alpha.19 [INFO] [stderr] Compiling rand v0.7.2 [INFO] [stderr] Compiling tokio-reactor v0.1.10 [INFO] [stderr] Compiling tokio-codec v0.1.1 [INFO] [stderr] Compiling tokio-threadpool v0.1.16 [INFO] [stderr] Compiling backtrace v0.3.38 [INFO] [stderr] Compiling synstructure v0.10.2 [INFO] [stderr] Compiling tokio-tcp v0.1.3 [INFO] [stderr] Compiling tokio-udp v0.1.5 [INFO] [stderr] Compiling tokio-uds v0.2.5 [INFO] [stderr] Compiling tokio-fs v0.1.6 [INFO] [stderr] Compiling tokio v0.1.22 [INFO] [stderr] Compiling enum-as-inner v0.2.1 [INFO] [stderr] Compiling failure v0.1.5 [INFO] [stderr] Compiling trust-dns-proto v0.8.0 [INFO] [stderr] Compiling trust-dns-resolver v0.12.0 [INFO] [stderr] Compiling pin-project-internal v0.4.3 [INFO] [stderr] Compiling tracing-attributes v0.1.4 [INFO] [stderr] Compiling tokio-macros v0.2.0-alpha.6 [INFO] [stderr] Compiling tracing v0.1.9 [INFO] [stderr] Compiling tokio-executor v0.2.0-alpha.6 [INFO] [stderr] Compiling pin-project v0.4.3 [INFO] [stderr] Compiling tokio-io v0.2.0-alpha.6 [INFO] [stderr] Compiling tokio-timer v0.3.0-alpha.6 [INFO] [stderr] Compiling tokio-codec v0.2.0-alpha.6 [INFO] [stderr] Compiling tokio-fs v0.2.0-alpha.6 [INFO] [stderr] Compiling tokio-net v0.2.0-alpha.6 [INFO] [stderr] Compiling tokio v0.2.0-alpha.6 [INFO] [stderr] Compiling tlslib v0.1.0 (/opt/rustwide/workdir/lib) [INFO] [stdout] warning: unused imports: `BigInt`, `Sign` [INFO] [stdout] --> lib/src/client.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use num_bigint::{Sign, BigInt}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | let xplusz = (&point.x + &point.z); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 52 - let xplusz = (&point.x + &point.z); [INFO] [stdout] 52 + let xplusz = &point.x + &point.z; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | let xminusz = (&point.x - &point.z); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 53 - let xminusz = (&point.x - &point.z); [INFO] [stdout] 53 + let xminusz = &point.x - &point.z; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> lib/src/hmac.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if (key.len() > digest_algorithm.block_size()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 31 - if (key.len() > digest_algorithm.block_size()) { [INFO] [stdout] 31 + if key.len() > digest_algorithm.block_size() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadFromBuffer` [INFO] [stdout] --> lib/src/codec.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WriteToBuffer` [INFO] [stdout] --> lib/src/codec.rs:5:59 [INFO] [stdout] | [INFO] [stdout] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ecdhe_public_key` [INFO] [stdout] --> lib/src/client.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let ecdhe_public_key = dh.generate_public(&self.dh_private.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ecdhe_public_key` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sign` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:66:10 [INFO] [stdout] | [INFO] [stdout] 66 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x_sign` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:130:14 [INFO] [stdout] | [INFO] [stdout] 130 | let (x_sign, mut x_bytes) = x.to_bytes_le(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | for i in 0..(32-x_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x_sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:111:14 [INFO] [stdout] | [INFO] [stdout] 111 | let (x_sign, x_bytes) = p.x.to_bytes_be(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | for i in 0..(self.bytes - x_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y_sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let (y_sign, y_bytes) = p.y.to_bytes_be(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | for i in 0..(self.bytes - y_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> lib/src/aes.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | let state: [u8;16] = data.try_into().unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_schedule` [INFO] [stdout] --> lib/src/aes.rs:276:44 [INFO] [stdout] | [INFO] [stdout] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_schedule` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> lib/src/gcm.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | let result = vec![0u8;128]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:662:25 [INFO] [stdout] | [INFO] [stdout] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> lib/src/messages.rs:662:47 [INFO] [stdout] | [INFO] [stdout] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:682:25 [INFO] [stdout] | [INFO] [stdout] 682 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:922:25 [INFO] [stdout] | [INFO] [stdout] 922 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:936:25 [INFO] [stdout] | [INFO] [stdout] 936 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_type` [INFO] [stdout] --> lib/src/codec.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | let message_type = cursor.get_u8(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> lib/src/hmac.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut final_key: Vec; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cookie` is never read [INFO] [stdout] --> lib/src/client.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 113 | struct TlsClientConfig { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | cookie: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TlsState` is never used [INFO] [stdout] --> lib/src/client.rs:128:6 [INFO] [stdout] | [INFO] [stdout] 128 | enum TlsState { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> lib/src/client.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 134 | struct TlsSecrets { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 135 | master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 136 | client_traffic_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 137 | server_traffic_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 138 | client_write_iv: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 139 | server_write_iv: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 140 | client_write_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 141 | server_write_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 142 | client_sequence_number: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 143 | server_sequence_number: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 144 | [INFO] [stdout] 145 | exporter_master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 146 | resumption_master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 147 | [INFO] [stdout] 148 | server_finished_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 149 | client_finished_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TlsSecrets` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> lib/src/client.rs:153:8 [INFO] [stdout] | [INFO] [stdout] 153 | fn new() -> TlsSecrets { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `zero` is never used [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | fn zero() -> Point { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `SBOX` is never used [INFO] [stdout] --> lib/src/aes.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | / static SBOX: [u8;256] = [ [INFO] [stdout] 4 | | 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, [INFO] [stdout] 5 | | 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, [INFO] [stdout] 6 | | 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, [INFO] [stdout] ... | [INFO] [stdout] 19 | | 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16, [INFO] [stdout] 20 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INV_SBOX` is never used [INFO] [stdout] --> lib/src/aes.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / static INV_SBOX: [u8;256] = [ [INFO] [stdout] 23 | | 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, [INFO] [stdout] 24 | | 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, [INFO] [stdout] 25 | | 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, [INFO] [stdout] ... | [INFO] [stdout] 38 | | 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d, [INFO] [stdout] 39 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `RCON` is never used [INFO] [stdout] --> lib/src/aes.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / static RCON: [u8;11] = [ [INFO] [stdout] 42 | | 0x00, //unused [INFO] [stdout] 43 | | 0x01, [INFO] [stdout] 44 | | 0x02, [INFO] [stdout] ... | [INFO] [stdout] 52 | | 0x36, [INFO] [stdout] 53 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key_schedule` and `rounds` are never read [INFO] [stdout] --> lib/src/aes.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct Aes { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 57 | key_schedule: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 58 | rounds: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Aes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aes128` is never used [INFO] [stdout] --> lib/src/aes.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn aes128(key: &[u8]) -> Aes { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aes196` is never used [INFO] [stdout] --> lib/src/aes.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn aes196(key: &[u8]) -> Aes { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aes256` is never used [INFO] [stdout] --> lib/src/aes.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn aes256(key: &[u8]) -> Aes { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `add_round_key` is never used [INFO] [stdout] --> lib/src/aes.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | fn add_round_key(&self, state: &mut [u8;16], offset: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `cipher` is never used [INFO] [stdout] --> lib/src/aes.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn cipher(&self, input: &[u8], output: &mut [u8]) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `inv_cipher` is never used [INFO] [stdout] --> lib/src/aes.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn inv_cipher(&self, input: &[u8], output: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_sub_bytes` is never used [INFO] [stdout] --> lib/src/aes.rs:136:4 [INFO] [stdout] | [INFO] [stdout] 136 | fn inv_sub_bytes(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sub_bytes` is never used [INFO] [stdout] --> lib/src/aes.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn sub_bytes(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_shift_rows` is never used [INFO] [stdout] --> lib/src/aes.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn inv_shift_rows(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift_rows` is never used [INFO] [stdout] --> lib/src/aes.rs:167:4 [INFO] [stdout] | [INFO] [stdout] 167 | fn shift_rows(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_mix_column` is never used [INFO] [stdout] --> lib/src/aes.rs:186:4 [INFO] [stdout] | [INFO] [stdout] 186 | fn inv_mix_column(state: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_mix_columns` is never used [INFO] [stdout] --> lib/src/aes.rs:195:4 [INFO] [stdout] | [INFO] [stdout] 195 | fn inv_mix_columns(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mix_column` is never used [INFO] [stdout] --> lib/src/aes.rs:202:4 [INFO] [stdout] | [INFO] [stdout] 202 | fn mix_column(state: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mix_columns` is never used [INFO] [stdout] --> lib/src/aes.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | fn mix_columns(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul` is never used [INFO] [stdout] --> lib/src/aes.rs:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | fn mul(num: u8, mut multiplier: u8) -> u8{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xtime` is never used [INFO] [stdout] --> lib/src/aes.rs:231:4 [INFO] [stdout] | [INFO] [stdout] 231 | fn xtime(num: u8) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sub_word` is never used [INFO] [stdout] --> lib/src/aes.rs:240:4 [INFO] [stdout] | [INFO] [stdout] 240 | fn sub_word(word: &mut [u8;4]) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rot_word` is never used [INFO] [stdout] --> lib/src/aes.rs:248:4 [INFO] [stdout] | [INFO] [stdout] 248 | fn rot_word(word: &mut [u8;4]) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_key` is never used [INFO] [stdout] --> lib/src/aes.rs:256:4 [INFO] [stdout] | [INFO] [stdout] 256 | fn expand_key(key: &[u8], expanded_size: usize, key_words: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt` is never used [INFO] [stdout] --> lib/src/aes.rs:276:4 [INFO] [stdout] | [INFO] [stdout] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `R` is never used [INFO] [stdout] --> lib/src/gcm.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const R: [u8; 16] = [0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift_right` is never used [INFO] [stdout] --> lib/src/gcm.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn shift_right(num: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bit_set` is never used [INFO] [stdout] --> lib/src/gcm.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn bit_set(num: [u8;16], bit: usize) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor` is never used [INFO] [stdout] --> lib/src/gcm.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn xor(a: [u8;16], b: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply` is never used [INFO] [stdout] --> lib/src/gcm.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn multiply(x: [u8;16], y: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `incr` is never used [INFO] [stdout] --> lib/src/gcm.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn incr(number: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GHash` is never constructed [INFO] [stdout] --> lib/src/gcm.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | struct GHash { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> lib/src/gcm.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | fn new(key: [u8;16]) -> GHash { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `perform_round` is never used [INFO] [stdout] --> lib/src/gcm.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | fn perform_round(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `update` is never used [INFO] [stdout] --> lib/src/gcm.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | fn update(&mut self, update_buf: &[u8]) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `finalize` is never used [INFO] [stdout] --> lib/src/gcm.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | fn finalize(&self) -> [u8;16] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gctr` is never constructed [INFO] [stdout] --> lib/src/gcm.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | struct Gctr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> lib/src/gcm.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | fn new(initial_counter: [u8;16], aes: Aes) -> Gctr { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `perform_round` is never used [INFO] [stdout] --> lib/src/gcm.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 139 | fn perform_round(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `update` is never used [INFO] [stdout] --> lib/src/gcm.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | fn update(&mut self, update_buf: &[u8]) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `finalize` is never used [INFO] [stdout] --> lib/src/gcm.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | fn finalize(mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gctr` is never used [INFO] [stdout] --> lib/src/gcm.rs:176:4 [INFO] [stdout] | [INFO] [stdout] 176 | fn gctr(initial_counter: [u8;16], aes: Aes, data: &[u8]) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ghash` is never used [INFO] [stdout] --> lib/src/gcm.rs:182:4 [INFO] [stdout] | [INFO] [stdout] 182 | fn ghash(key: [u8;16], data: &[u8]) -> [u8;16] { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gcm_decrypt` is never used [INFO] [stdout] --> lib/src/gcm.rs:188:4 [INFO] [stdout] | [INFO] [stdout] 188 | fn gcm_decrypt(iv: &[u8], aes: Aes, authenticated_data: &[u8], ciphertext: &[u8], tag: &[u8]) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gcm` is never used [INFO] [stdout] --> lib/src/gcm.rs:220:4 [INFO] [stdout] | [INFO] [stdout] 220 | fn gcm(iv: &[u8], aes: Aes, authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Aes128` and `Aes256` are never constructed [INFO] [stdout] --> lib/src/gcm.rs:253:5 [INFO] [stdout] | [INFO] [stdout] 252 | pub enum GcmCipher { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 253 | Aes128, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 254 | Aes256, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GcmCipher` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `key_length` is never used [INFO] [stdout] --> lib/src/gcm.rs:258:8 [INFO] [stdout] | [INFO] [stdout] 258 | fn key_length(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `iv_length` is never used [INFO] [stdout] --> lib/src/gcm.rs:265:8 [INFO] [stdout] | [INFO] [stdout] 265 | fn iv_length(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aead` is never used [INFO] [stdout] --> lib/src/gcm.rs:269:12 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn aead(&self, iv: &[u8], key: &[u8], authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aead` is never used [INFO] [stdout] --> lib/src/cipher_suite.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn aead(&self, iv: &[u8], key: &[u8], authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Invalid`, `ChangeCipherSpec`, `Alert` and `ApplicationData` are never constructed [INFO] [stdout] --> lib/src/messages.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Record { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 21 | Invalid, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | ChangeCipherSpec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | Alert, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 24 | Handshake(Handshake), [INFO] [stdout] 25 | ApplicationData, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Record` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `to_bytes` is never used [INFO] [stdout] --> lib/src/messages.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn to_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NewSessionTicket`, `EndOfEarlyData`, `CertificateRequest`, `KeyUpdate` and `MessageHash` are never constructed [INFO] [stdout] --> lib/src/messages.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 104 | pub enum Handshake { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 107 | NewSessionTicket(NewSessionTicket), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 108 | EndOfEarlyData(EndOfEarlyData), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | CertificateRequest(CertificateRequest), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | KeyUpdate(KeyUpdate), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 115 | MessageHash(MessageHash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Handshake` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ClientHello` is never constructed [INFO] [stdout] --> lib/src/messages.rs:517:5 [INFO] [stdout] | [INFO] [stdout] 515 | pub enum ReadContext { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] 516 | ServerHello, [INFO] [stdout] 517 | ClientHello, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReadContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Cookie` is never constructed [INFO] [stdout] --> lib/src/messages.rs:529:5 [INFO] [stdout] | [INFO] [stdout] 523 | pub enum Extension { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 529 | Cookie(Cookie), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Extension` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `PskKe` and `PskDheKe` are never constructed [INFO] [stdout] --> lib/src/messages.rs:875:5 [INFO] [stdout] | [INFO] [stdout] 874 | pub enum PskKeyExchangeMode { [INFO] [stdout] | ------------------ variants in this enum [INFO] [stdout] 875 | PskKe, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 876 | PskDheKe, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PskKeyExchangeMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `try_from_u8` is never used [INFO] [stdout] --> lib/src/messages.rs:887:8 [INFO] [stdout] | [INFO] [stdout] 887 | fn try_from_u8(num: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RsaPkcs1Sha1` and `EcdsaSha1` are never constructed [INFO] [stdout] --> lib/src/signature.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum SignatureScheme { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 30 | RsaPkcs1Sha1, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 31 | EcdsaSha1, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SignatureScheme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 87 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling testexe v0.1.0 (/opt/rustwide/workdir/testexe) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 45s [INFO] running `Command { std: "docker" "inspect" "8ad844df448aa3e85182ed2cd6b24c860071a35be780e3ec3425ca1638b5becd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8ad844df448aa3e85182ed2cd6b24c860071a35be780e3ec3425ca1638b5becd", kill_on_drop: false }` [INFO] [stdout] 8ad844df448aa3e85182ed2cd6b24c860071a35be780e3ec3425ca1638b5becd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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:824c28ce115f6b999260af6986f3384c158e782489540e41c0b698ca1d9fd927" "/opt/rustwide/cargo-home/bin/cargo" "+1.63.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d4db63123145220768a8e348184a0b27792eb608c965968c73da2ab97493299a [INFO] running `Command { std: "docker" "start" "-a" "d4db63123145220768a8e348184a0b27792eb608c965968c73da2ab97493299a", kill_on_drop: false }` [INFO] [stdout] warning: unused imports: `BigInt`, `Sign` [INFO] [stdout] --> lib/src/client.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use num_bigint::{Sign, BigInt}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | let xplusz = (&point.x + &point.z); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 52 - let xplusz = (&point.x + &point.z); [INFO] [stdout] 52 + let xplusz = &point.x + &point.z; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | let xminusz = (&point.x - &point.z); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 53 - let xminusz = (&point.x - &point.z); [INFO] [stdout] 53 + let xminusz = &point.x - &point.z; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> lib/src/hmac.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if (key.len() > digest_algorithm.block_size()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 31 - if (key.len() > digest_algorithm.block_size()) { [INFO] [stdout] 31 + if key.len() > digest_algorithm.block_size() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadFromBuffer` [INFO] [stdout] --> lib/src/codec.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WriteToBuffer` [INFO] [stdout] --> lib/src/codec.rs:5:59 [INFO] [stdout] | [INFO] [stdout] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ecdhe_public_key` [INFO] [stdout] --> lib/src/client.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let ecdhe_public_key = dh.generate_public(&self.dh_private.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ecdhe_public_key` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sign` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:66:10 [INFO] [stdout] | [INFO] [stdout] 66 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x_sign` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:130:14 [INFO] [stdout] | [INFO] [stdout] 130 | let (x_sign, mut x_bytes) = x.to_bytes_le(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | for i in 0..(32-x_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x_sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:111:14 [INFO] [stdout] | [INFO] [stdout] 111 | let (x_sign, x_bytes) = p.x.to_bytes_be(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | for i in 0..(self.bytes - x_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y_sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let (y_sign, y_bytes) = p.y.to_bytes_be(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | for i in 0..(self.bytes - y_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> lib/src/aes.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | let state: [u8;16] = data.try_into().unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_schedule` [INFO] [stdout] --> lib/src/aes.rs:276:44 [INFO] [stdout] | [INFO] [stdout] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_schedule` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> lib/src/gcm.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | let result = vec![0u8;128]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:662:25 [INFO] [stdout] | [INFO] [stdout] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> lib/src/messages.rs:662:47 [INFO] [stdout] | [INFO] [stdout] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:682:25 [INFO] [stdout] | [INFO] [stdout] 682 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:922:25 [INFO] [stdout] | [INFO] [stdout] 922 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:936:25 [INFO] [stdout] | [INFO] [stdout] 936 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_type` [INFO] [stdout] --> lib/src/codec.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | let message_type = cursor.get_u8(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> lib/src/hmac.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut final_key: Vec; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cookie` is never read [INFO] [stdout] --> lib/src/client.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 113 | struct TlsClientConfig { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | cookie: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TlsState` is never used [INFO] [stdout] --> lib/src/client.rs:128:6 [INFO] [stdout] | [INFO] [stdout] 128 | enum TlsState { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> lib/src/client.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 134 | struct TlsSecrets { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 135 | master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 136 | client_traffic_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 137 | server_traffic_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 138 | client_write_iv: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 139 | server_write_iv: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 140 | client_write_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 141 | server_write_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 142 | client_sequence_number: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 143 | server_sequence_number: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 144 | [INFO] [stdout] 145 | exporter_master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 146 | resumption_master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 147 | [INFO] [stdout] 148 | server_finished_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 149 | client_finished_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TlsSecrets` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> lib/src/client.rs:153:8 [INFO] [stdout] | [INFO] [stdout] 153 | fn new() -> TlsSecrets { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `zero` is never used [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | fn zero() -> Point { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `SBOX` is never used [INFO] [stdout] --> lib/src/aes.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | / static SBOX: [u8;256] = [ [INFO] [stdout] 4 | | 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, [INFO] [stdout] 5 | | 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, [INFO] [stdout] 6 | | 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, [INFO] [stdout] ... | [INFO] [stdout] 19 | | 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16, [INFO] [stdout] 20 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INV_SBOX` is never used [INFO] [stdout] --> lib/src/aes.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / static INV_SBOX: [u8;256] = [ [INFO] [stdout] 23 | | 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, [INFO] [stdout] 24 | | 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, [INFO] [stdout] 25 | | 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, [INFO] [stdout] ... | [INFO] [stdout] 38 | | 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d, [INFO] [stdout] 39 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `RCON` is never used [INFO] [stdout] --> lib/src/aes.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / static RCON: [u8;11] = [ [INFO] [stdout] 42 | | 0x00, //unused [INFO] [stdout] 43 | | 0x01, [INFO] [stdout] 44 | | 0x02, [INFO] [stdout] ... | [INFO] [stdout] 52 | | 0x36, [INFO] [stdout] 53 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key_schedule` and `rounds` are never read [INFO] [stdout] --> lib/src/aes.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct Aes { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 57 | key_schedule: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 58 | rounds: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Aes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aes128` is never used [INFO] [stdout] --> lib/src/aes.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn aes128(key: &[u8]) -> Aes { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aes196` is never used [INFO] [stdout] --> lib/src/aes.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn aes196(key: &[u8]) -> Aes { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aes256` is never used [INFO] [stdout] --> lib/src/aes.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn aes256(key: &[u8]) -> Aes { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `add_round_key` is never used [INFO] [stdout] --> lib/src/aes.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | fn add_round_key(&self, state: &mut [u8;16], offset: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `cipher` is never used [INFO] [stdout] --> lib/src/aes.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn cipher(&self, input: &[u8], output: &mut [u8]) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `inv_cipher` is never used [INFO] [stdout] --> lib/src/aes.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn inv_cipher(&self, input: &[u8], output: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_sub_bytes` is never used [INFO] [stdout] --> lib/src/aes.rs:136:4 [INFO] [stdout] | [INFO] [stdout] 136 | fn inv_sub_bytes(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sub_bytes` is never used [INFO] [stdout] --> lib/src/aes.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn sub_bytes(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_shift_rows` is never used [INFO] [stdout] --> lib/src/aes.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn inv_shift_rows(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift_rows` is never used [INFO] [stdout] --> lib/src/aes.rs:167:4 [INFO] [stdout] | [INFO] [stdout] 167 | fn shift_rows(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_mix_column` is never used [INFO] [stdout] --> lib/src/aes.rs:186:4 [INFO] [stdout] | [INFO] [stdout] 186 | fn inv_mix_column(state: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inv_mix_columns` is never used [INFO] [stdout] --> lib/src/aes.rs:195:4 [INFO] [stdout] | [INFO] [stdout] 195 | fn inv_mix_columns(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mix_column` is never used [INFO] [stdout] --> lib/src/aes.rs:202:4 [INFO] [stdout] | [INFO] [stdout] 202 | fn mix_column(state: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mix_columns` is never used [INFO] [stdout] --> lib/src/aes.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | fn mix_columns(state: &mut [u8;16]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul` is never used [INFO] [stdout] --> lib/src/aes.rs:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | fn mul(num: u8, mut multiplier: u8) -> u8{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xtime` is never used [INFO] [stdout] --> lib/src/aes.rs:231:4 [INFO] [stdout] | [INFO] [stdout] 231 | fn xtime(num: u8) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sub_word` is never used [INFO] [stdout] --> lib/src/aes.rs:240:4 [INFO] [stdout] | [INFO] [stdout] 240 | fn sub_word(word: &mut [u8;4]) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rot_word` is never used [INFO] [stdout] --> lib/src/aes.rs:248:4 [INFO] [stdout] | [INFO] [stdout] 248 | fn rot_word(word: &mut [u8;4]) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expand_key` is never used [INFO] [stdout] --> lib/src/aes.rs:256:4 [INFO] [stdout] | [INFO] [stdout] 256 | fn expand_key(key: &[u8], expanded_size: usize, key_words: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt` is never used [INFO] [stdout] --> lib/src/aes.rs:276:4 [INFO] [stdout] | [INFO] [stdout] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `R` is never used [INFO] [stdout] --> lib/src/gcm.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const R: [u8; 16] = [0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift_right` is never used [INFO] [stdout] --> lib/src/gcm.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn shift_right(num: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bit_set` is never used [INFO] [stdout] --> lib/src/gcm.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn bit_set(num: [u8;16], bit: usize) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor` is never used [INFO] [stdout] --> lib/src/gcm.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn xor(a: [u8;16], b: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply` is never used [INFO] [stdout] --> lib/src/gcm.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn multiply(x: [u8;16], y: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `incr` is never used [INFO] [stdout] --> lib/src/gcm.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn incr(number: [u8;16]) -> [u8;16] { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GHash` is never constructed [INFO] [stdout] --> lib/src/gcm.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | struct GHash { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> lib/src/gcm.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | fn new(key: [u8;16]) -> GHash { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `perform_round` is never used [INFO] [stdout] --> lib/src/gcm.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | fn perform_round(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `update` is never used [INFO] [stdout] --> lib/src/gcm.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | fn update(&mut self, update_buf: &[u8]) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `finalize` is never used [INFO] [stdout] --> lib/src/gcm.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | fn finalize(&self) -> [u8;16] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gctr` is never constructed [INFO] [stdout] --> lib/src/gcm.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | struct Gctr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> lib/src/gcm.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | fn new(initial_counter: [u8;16], aes: Aes) -> Gctr { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `perform_round` is never used [INFO] [stdout] --> lib/src/gcm.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 139 | fn perform_round(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `update` is never used [INFO] [stdout] --> lib/src/gcm.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | fn update(&mut self, update_buf: &[u8]) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `finalize` is never used [INFO] [stdout] --> lib/src/gcm.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | fn finalize(mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gctr` is never used [INFO] [stdout] --> lib/src/gcm.rs:176:4 [INFO] [stdout] | [INFO] [stdout] 176 | fn gctr(initial_counter: [u8;16], aes: Aes, data: &[u8]) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ghash` is never used [INFO] [stdout] --> lib/src/gcm.rs:182:4 [INFO] [stdout] | [INFO] [stdout] 182 | fn ghash(key: [u8;16], data: &[u8]) -> [u8;16] { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gcm_decrypt` is never used [INFO] [stdout] --> lib/src/gcm.rs:188:4 [INFO] [stdout] | [INFO] [stdout] 188 | fn gcm_decrypt(iv: &[u8], aes: Aes, authenticated_data: &[u8], ciphertext: &[u8], tag: &[u8]) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gcm` is never used [INFO] [stdout] --> lib/src/gcm.rs:220:4 [INFO] [stdout] | [INFO] [stdout] 220 | fn gcm(iv: &[u8], aes: Aes, authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Aes128` and `Aes256` are never constructed [INFO] [stdout] --> lib/src/gcm.rs:253:5 [INFO] [stdout] | [INFO] [stdout] 252 | pub enum GcmCipher { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 253 | Aes128, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 254 | Aes256, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GcmCipher` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `key_length` is never used [INFO] [stdout] --> lib/src/gcm.rs:258:8 [INFO] [stdout] | [INFO] [stdout] 258 | fn key_length(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `iv_length` is never used [INFO] [stdout] --> lib/src/gcm.rs:265:8 [INFO] [stdout] | [INFO] [stdout] 265 | fn iv_length(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aead` is never used [INFO] [stdout] --> lib/src/gcm.rs:269:12 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn aead(&self, iv: &[u8], key: &[u8], authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aead` is never used [INFO] [stdout] --> lib/src/cipher_suite.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn aead(&self, iv: &[u8], key: &[u8], authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Invalid`, `ChangeCipherSpec`, `Alert` and `ApplicationData` are never constructed [INFO] [stdout] --> lib/src/messages.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Record { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 21 | Invalid, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | ChangeCipherSpec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | Alert, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 24 | Handshake(Handshake), [INFO] [stdout] 25 | ApplicationData, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Record` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `to_bytes` is never used [INFO] [stdout] --> lib/src/messages.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn to_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NewSessionTicket`, `EndOfEarlyData`, `CertificateRequest`, `KeyUpdate` and `MessageHash` are never constructed [INFO] [stdout] --> lib/src/messages.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 104 | pub enum Handshake { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 107 | NewSessionTicket(NewSessionTicket), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 108 | EndOfEarlyData(EndOfEarlyData), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | CertificateRequest(CertificateRequest), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | KeyUpdate(KeyUpdate), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 115 | MessageHash(MessageHash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Handshake` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ClientHello` is never constructed [INFO] [stdout] --> lib/src/messages.rs:517:5 [INFO] [stdout] | [INFO] [stdout] 515 | pub enum ReadContext { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] 516 | ServerHello, [INFO] [stdout] 517 | ClientHello, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReadContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Cookie` is never constructed [INFO] [stdout] --> lib/src/messages.rs:529:5 [INFO] [stdout] | [INFO] [stdout] 523 | pub enum Extension { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 529 | Cookie(Cookie), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Extension` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `PskKe` and `PskDheKe` are never constructed [INFO] [stdout] --> lib/src/messages.rs:875:5 [INFO] [stdout] | [INFO] [stdout] 874 | pub enum PskKeyExchangeMode { [INFO] [stdout] | ------------------ variants in this enum [INFO] [stdout] 875 | PskKe, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 876 | PskDheKe, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PskKeyExchangeMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling tlslib v0.1.0 (/opt/rustwide/workdir/lib) [INFO] [stdout] warning: associated function `try_from_u8` is never used [INFO] [stdout] --> lib/src/messages.rs:887:8 [INFO] [stdout] | [INFO] [stdout] 887 | fn try_from_u8(num: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling testexe v0.1.0 (/opt/rustwide/workdir/testexe) [INFO] [stdout] warning: variants `RsaPkcs1Sha1` and `EcdsaSha1` are never constructed [INFO] [stdout] --> lib/src/signature.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum SignatureScheme { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 30 | RsaPkcs1Sha1, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 31 | EcdsaSha1, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SignatureScheme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 87 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigInt`, `Sign` [INFO] [stdout] --> lib/src/client.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use num_bigint::{Sign, BigInt}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buf` [INFO] [stdout] --> lib/src/client.rs:444:17 [INFO] [stdout] | [INFO] [stdout] 444 | use bytes::{Buf, BufMut}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | let xplusz = (&point.x + &point.z); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 52 - let xplusz = (&point.x + &point.z); [INFO] [stdout] 52 + let xplusz = &point.x + &point.z; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | let xminusz = (&point.x - &point.z); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 53 - let xminusz = (&point.x - &point.z); [INFO] [stdout] 53 + let xminusz = &point.x - &point.z; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BigInt` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:193:22 [INFO] [stdout] | [INFO] [stdout] 193 | use num_bigint::{BigInt}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Point`, `multiplicative_inverse` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | use super::{multiplicative_inverse, Point, curve25519}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> lib/src/hmac.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if (key.len() > digest_algorithm.block_size()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 31 - if (key.len() > digest_algorithm.block_size()) { [INFO] [stdout] 31 + if key.len() > digest_algorithm.block_size() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadFromBuffer` [INFO] [stdout] --> lib/src/codec.rs:5:43 [INFO] [stdout] | [INFO] [stdout] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WriteToBuffer` [INFO] [stdout] --> lib/src/codec.rs:5:59 [INFO] [stdout] | [INFO] [stdout] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ecdhe_public_key` [INFO] [stdout] --> lib/src/client.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let ecdhe_public_key = dh.generate_public(&self.dh_private.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ecdhe_public_key` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `random_gen` [INFO] [stdout] --> lib/src/client.rs:537:13 [INFO] [stdout] | [INFO] [stdout] 537 | let random_gen = Box::new(MockTlsGenerator {}); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_gen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test` [INFO] [stdout] --> lib/src/client.rs:669:13 [INFO] [stdout] | [INFO] [stdout] 669 | let test = client.as_ptr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_test` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> lib/src/client.rs:469:45 [INFO] [stdout] | [INFO] [stdout] 469 | fn poll_ready(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> lib/src/client.rs:477:45 [INFO] [stdout] | [INFO] [stdout] 477 | fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> lib/src/client.rs:481:45 [INFO] [stdout] | [INFO] [stdout] 481 | fn poll_close(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sign` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:66:10 [INFO] [stdout] | [INFO] [stdout] 66 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x_sign` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:130:14 [INFO] [stdout] | [INFO] [stdout] 130 | let (x_sign, mut x_bytes) = x.to_bytes_le(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | for i in 0..(32-x_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x_sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:111:14 [INFO] [stdout] | [INFO] [stdout] 111 | let (x_sign, x_bytes) = p.x.to_bytes_be(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | for i in 0..(self.bytes - x_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y_sign` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let (y_sign, y_bytes) = p.y.to_bytes_be(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_sign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | for i in 0..(self.bytes - y_bytes.len()) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inverse` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:214:13 [INFO] [stdout] | [INFO] [stdout] 214 | let inverse = super::multiplicative_inverse(&BigInt::from(3u32), &BigInt::from(19u32)); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inverse` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_point` [INFO] [stdout] --> lib/src/eliptic_curve/secp256r1.rs:241:13 [INFO] [stdout] | [INFO] [stdout] 241 | let new_point = curve.add(&a, &b); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_point` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> lib/src/aes.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | let state: [u8;16] = data.try_into().unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_schedule` [INFO] [stdout] --> lib/src/aes.rs:276:44 [INFO] [stdout] | [INFO] [stdout] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_schedule` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> lib/src/gcm.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | let result = vec![0u8;128]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:662:25 [INFO] [stdout] | [INFO] [stdout] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> lib/src/messages.rs:662:47 [INFO] [stdout] | [INFO] [stdout] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:682:25 [INFO] [stdout] | [INFO] [stdout] 682 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:922:25 [INFO] [stdout] | [INFO] [stdout] 922 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> lib/src/messages.rs:936:25 [INFO] [stdout] | [INFO] [stdout] 936 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_type` [INFO] [stdout] --> lib/src/codec.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | let message_type = cursor.get_u8(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> lib/src/hmac.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut final_key: Vec; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> lib/src/client.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cookie` is never read [INFO] [stdout] --> lib/src/client.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 113 | struct TlsClientConfig { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | cookie: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TlsState` is never used [INFO] [stdout] --> lib/src/client.rs:128:6 [INFO] [stdout] | [INFO] [stdout] 128 | enum TlsState { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> lib/src/client.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 134 | struct TlsSecrets { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 135 | master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 136 | client_traffic_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 137 | server_traffic_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 138 | client_write_iv: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 139 | server_write_iv: Option>, [INFO] [stdout] 140 | client_write_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 141 | server_write_key: Option>, [INFO] [stdout] 142 | client_sequence_number: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 143 | server_sequence_number: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 144 | [INFO] [stdout] 145 | exporter_master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 146 | resumption_master_secret: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | client_finished_key: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TlsSecrets` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> lib/src/client.rs:153:8 [INFO] [stdout] | [INFO] [stdout] 153 | fn new() -> TlsSecrets { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `zero` is never used [INFO] [stdout] --> lib/src/eliptic_curve/curve25519.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | fn zero() -> Point { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt` is never used [INFO] [stdout] --> lib/src/aes.rs:276:4 [INFO] [stdout] | [INFO] [stdout] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `icb` is never read [INFO] [stdout] --> lib/src/gcm.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 117 | struct Gctr { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 118 | aes: Aes, [INFO] [stdout] 119 | icb: [u8;16], [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `key_length` is never used [INFO] [stdout] --> lib/src/gcm.rs:258:8 [INFO] [stdout] | [INFO] [stdout] 258 | fn key_length(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `iv_length` is never used [INFO] [stdout] --> lib/src/gcm.rs:265:8 [INFO] [stdout] | [INFO] [stdout] 265 | fn iv_length(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Invalid`, `ChangeCipherSpec`, `Alert` and `ApplicationData` are never constructed [INFO] [stdout] --> lib/src/messages.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Record { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 21 | Invalid, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | ChangeCipherSpec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | Alert, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 24 | Handshake(Handshake), [INFO] [stdout] 25 | ApplicationData, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Record` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NewSessionTicket`, `EndOfEarlyData`, `CertificateRequest`, `KeyUpdate` and `MessageHash` are never constructed [INFO] [stdout] --> lib/src/messages.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 104 | pub enum Handshake { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 107 | NewSessionTicket(NewSessionTicket), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 108 | EndOfEarlyData(EndOfEarlyData), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | CertificateRequest(CertificateRequest), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | KeyUpdate(KeyUpdate), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 115 | MessageHash(MessageHash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Handshake` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ClientHello` is never constructed [INFO] [stdout] --> lib/src/messages.rs:517:5 [INFO] [stdout] | [INFO] [stdout] 515 | pub enum ReadContext { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] 516 | ServerHello, [INFO] [stdout] 517 | ClientHello, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReadContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Cookie` is never constructed [INFO] [stdout] --> lib/src/messages.rs:529:5 [INFO] [stdout] | [INFO] [stdout] 523 | pub enum Extension { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 529 | Cookie(Cookie), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Extension` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PskKe` is never constructed [INFO] [stdout] --> lib/src/messages.rs:875:5 [INFO] [stdout] | [INFO] [stdout] 874 | pub enum PskKeyExchangeMode { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 875 | PskKe, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PskKeyExchangeMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `try_from_u8` is never used [INFO] [stdout] --> lib/src/messages.rs:887:8 [INFO] [stdout] | [INFO] [stdout] 887 | fn try_from_u8(num: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 51 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.52s [INFO] running `Command { std: "docker" "inspect" "d4db63123145220768a8e348184a0b27792eb608c965968c73da2ab97493299a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d4db63123145220768a8e348184a0b27792eb608c965968c73da2ab97493299a", kill_on_drop: false }` [INFO] [stdout] d4db63123145220768a8e348184a0b27792eb608c965968c73da2ab97493299a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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:824c28ce115f6b999260af6986f3384c158e782489540e41c0b698ca1d9fd927" "/opt/rustwide/cargo-home/bin/cargo" "+1.63.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 061e97b3435f7ff4196657df1fa2ca0d91a43826a5d2c5e6c5f57c3abfe2c7fd [INFO] running `Command { std: "docker" "start" "-a" "061e97b3435f7ff4196657df1fa2ca0d91a43826a5d2c5e6c5f57c3abfe2c7fd", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `BigInt`, `Sign` [INFO] [stderr] --> lib/src/client.rs:10:18 [INFO] [stderr] | [INFO] [stderr] 10 | use num_bigint::{Sign, BigInt}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:52:18 [INFO] [stderr] | [INFO] [stderr] 52 | let xplusz = (&point.x + &point.z); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 52 - let xplusz = (&point.x + &point.z); [INFO] [stderr] 52 + let xplusz = &point.x + &point.z; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:53:19 [INFO] [stderr] | [INFO] [stderr] 53 | let xminusz = (&point.x - &point.z); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 53 - let xminusz = (&point.x - &point.z); [INFO] [stderr] 53 + let xminusz = &point.x - &point.z; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> lib/src/hmac.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 31 | if (key.len() > digest_algorithm.block_size()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 31 - if (key.len() > digest_algorithm.block_size()) { [INFO] [stderr] 31 + if key.len() > digest_algorithm.block_size() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReadFromBuffer` [INFO] [stderr] --> lib/src/codec.rs:5:43 [INFO] [stderr] | [INFO] [stderr] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `WriteToBuffer` [INFO] [stderr] --> lib/src/codec.rs:5:59 [INFO] [stderr] | [INFO] [stderr] 5 | use super::messages::{ParseError, Record, ReadFromBuffer, WriteToBuffer}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ecdhe_public_key` [INFO] [stderr] --> lib/src/client.rs:260:13 [INFO] [stderr] | [INFO] [stderr] 260 | let ecdhe_public_key = dh.generate_public(&self.dh_private.as_ref().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ecdhe_public_key` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sign` [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:66:10 [INFO] [stderr] | [INFO] [stderr] 66 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x_sign` [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:130:14 [INFO] [stderr] | [INFO] [stderr] 130 | let (x_sign, mut x_bytes) = x.to_bytes_le(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | for i in 0..(32-x_bytes.len()) { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sign` [INFO] [stderr] --> lib/src/eliptic_curve/secp256r1.rs:80:14 [INFO] [stderr] | [INFO] [stderr] 80 | let (sign, bytes) = value.to_bytes_be(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sign` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x_sign` [INFO] [stderr] --> lib/src/eliptic_curve/secp256r1.rs:111:14 [INFO] [stderr] | [INFO] [stderr] 111 | let (x_sign, x_bytes) = p.x.to_bytes_be(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_sign` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> lib/src/eliptic_curve/secp256r1.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | for i in 0..(self.bytes - x_bytes.len()) { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y_sign` [INFO] [stderr] --> lib/src/eliptic_curve/secp256r1.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | let (y_sign, y_bytes) = p.y.to_bytes_be(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_sign` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> lib/src/eliptic_curve/secp256r1.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..(self.bytes - y_bytes.len()) { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> lib/src/aes.rs:279:9 [INFO] [stderr] | [INFO] [stderr] 279 | let state: [u8;16] = data.try_into().unwrap(); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key_schedule` [INFO] [stderr] --> lib/src/aes.rs:276:44 [INFO] [stderr] | [INFO] [stderr] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_schedule` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> lib/src/gcm.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | let result = vec![0u8;128]; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> lib/src/messages.rs:662:25 [INFO] [stderr] | [INFO] [stderr] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buffer` [INFO] [stderr] --> lib/src/messages.rs:662:47 [INFO] [stderr] | [INFO] [stderr] 662 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> lib/src/messages.rs:682:25 [INFO] [stderr] | [INFO] [stderr] 682 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> lib/src/messages.rs:922:25 [INFO] [stderr] | [INFO] [stderr] 922 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> lib/src/messages.rs:936:25 [INFO] [stderr] | [INFO] [stderr] 936 | fn read_from_buffer(context: ReadContext, buffer: &mut BytesCursor) -> Result { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `message_type` [INFO] [stderr] --> lib/src/codec.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let message_type = cursor.get_u8(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_type` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> lib/src/hmac.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | let mut final_key: Vec; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `cookie` is never read [INFO] [stderr] --> lib/src/client.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 113 | struct TlsClientConfig { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 119 | cookie: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: enum `TlsState` is never used [INFO] [stderr] --> lib/src/client.rs:128:6 [INFO] [stderr] | [INFO] [stderr] 128 | enum TlsState { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> lib/src/client.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 134 | struct TlsSecrets { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 135 | master_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 136 | client_traffic_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 137 | server_traffic_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 138 | client_write_iv: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 139 | server_write_iv: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 140 | client_write_key: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 141 | server_write_key: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 142 | client_sequence_number: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 143 | server_sequence_number: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 144 | [INFO] [stderr] 145 | exporter_master_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 146 | resumption_master_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 147 | [INFO] [stderr] 148 | server_finished_key: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 149 | client_finished_key: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TlsSecrets` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> lib/src/client.rs:153:8 [INFO] [stderr] | [INFO] [stderr] 153 | fn new() -> TlsSecrets { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `zero` is never used [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:122:8 [INFO] [stderr] | [INFO] [stderr] 122 | fn zero() -> Point { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `SBOX` is never used [INFO] [stderr] --> lib/src/aes.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / static SBOX: [u8;256] = [ [INFO] [stderr] 4 | | 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, [INFO] [stderr] 5 | | 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, [INFO] [stderr] 6 | | 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, [INFO] [stderr] ... | [INFO] [stderr] 19 | | 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16, [INFO] [stderr] 20 | | ]; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: static `INV_SBOX` is never used [INFO] [stderr] --> lib/src/aes.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / static INV_SBOX: [u8;256] = [ [INFO] [stderr] 23 | | 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, [INFO] [stderr] 24 | | 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, [INFO] [stderr] 25 | | 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, [INFO] [stderr] ... | [INFO] [stderr] 38 | | 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d, [INFO] [stderr] 39 | | ]; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: static `RCON` is never used [INFO] [stderr] --> lib/src/aes.rs:41:1 [INFO] [stderr] | [INFO] [stderr] 41 | / static RCON: [u8;11] = [ [INFO] [stderr] 42 | | 0x00, //unused [INFO] [stderr] 43 | | 0x01, [INFO] [stderr] 44 | | 0x02, [INFO] [stderr] ... | [INFO] [stderr] 52 | | 0x36, [INFO] [stderr] 53 | | ]; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: fields `key_schedule` and `rounds` are never read [INFO] [stderr] --> lib/src/aes.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 56 | pub struct Aes { [INFO] [stderr] | --- fields in this struct [INFO] [stderr] 57 | key_schedule: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 58 | rounds: usize, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Aes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `aes128` is never used [INFO] [stderr] --> lib/src/aes.rs:63:12 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn aes128(key: &[u8]) -> Aes { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `aes196` is never used [INFO] [stderr] --> lib/src/aes.rs:72:12 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn aes196(key: &[u8]) -> Aes { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `aes256` is never used [INFO] [stderr] --> lib/src/aes.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn aes256(key: &[u8]) -> Aes { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `add_round_key` is never used [INFO] [stderr] --> lib/src/aes.rs:90:8 [INFO] [stderr] | [INFO] [stderr] 90 | fn add_round_key(&self, state: &mut [u8;16], offset: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `cipher` is never used [INFO] [stderr] --> lib/src/aes.rs:96:12 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn cipher(&self, input: &[u8], output: &mut [u8]) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `inv_cipher` is never used [INFO] [stderr] --> lib/src/aes.rs:115:12 [INFO] [stderr] | [INFO] [stderr] 115 | pub fn inv_cipher(&self, input: &[u8], output: &mut [u8]) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `inv_sub_bytes` is never used [INFO] [stderr] --> lib/src/aes.rs:136:4 [INFO] [stderr] | [INFO] [stderr] 136 | fn inv_sub_bytes(state: &mut [u8;16]) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `sub_bytes` is never used [INFO] [stderr] --> lib/src/aes.rs:142:4 [INFO] [stderr] | [INFO] [stderr] 142 | fn sub_bytes(state: &mut [u8;16]) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `inv_shift_rows` is never used [INFO] [stderr] --> lib/src/aes.rs:148:4 [INFO] [stderr] | [INFO] [stderr] 148 | fn inv_shift_rows(state: &mut [u8;16]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `shift_rows` is never used [INFO] [stderr] --> lib/src/aes.rs:167:4 [INFO] [stderr] | [INFO] [stderr] 167 | fn shift_rows(state: &mut [u8;16]) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `inv_mix_column` is never used [INFO] [stderr] --> lib/src/aes.rs:186:4 [INFO] [stderr] | [INFO] [stderr] 186 | fn inv_mix_column(state: &mut [u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `inv_mix_columns` is never used [INFO] [stderr] --> lib/src/aes.rs:195:4 [INFO] [stderr] | [INFO] [stderr] 195 | fn inv_mix_columns(state: &mut [u8;16]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `mix_column` is never used [INFO] [stderr] --> lib/src/aes.rs:202:4 [INFO] [stderr] | [INFO] [stderr] 202 | fn mix_column(state: &mut [u8]) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `mix_columns` is never used [INFO] [stderr] --> lib/src/aes.rs:211:4 [INFO] [stderr] | [INFO] [stderr] 211 | fn mix_columns(state: &mut [u8;16]) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `mul` is never used [INFO] [stderr] --> lib/src/aes.rs:218:4 [INFO] [stderr] | [INFO] [stderr] 218 | fn mul(num: u8, mut multiplier: u8) -> u8{ [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `xtime` is never used [INFO] [stderr] --> lib/src/aes.rs:231:4 [INFO] [stderr] | [INFO] [stderr] 231 | fn xtime(num: u8) -> u8 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `sub_word` is never used [INFO] [stderr] --> lib/src/aes.rs:240:4 [INFO] [stderr] | [INFO] [stderr] 240 | fn sub_word(word: &mut [u8;4]) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rot_word` is never used [INFO] [stderr] --> lib/src/aes.rs:248:4 [INFO] [stderr] | [INFO] [stderr] 248 | fn rot_word(word: &mut [u8;4]) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `expand_key` is never used [INFO] [stderr] --> lib/src/aes.rs:256:4 [INFO] [stderr] | [INFO] [stderr] 256 | fn expand_key(key: &[u8], expanded_size: usize, key_words: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `encrypt` is never used [INFO] [stderr] --> lib/src/aes.rs:276:4 [INFO] [stderr] | [INFO] [stderr] 276 | fn encrypt(data: &[u8], output: &mut [u8], key_schedule: &[u8]) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `R` is never used [INFO] [stderr] --> lib/src/gcm.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | const R: [u8; 16] = [0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `shift_right` is never used [INFO] [stderr] --> lib/src/gcm.rs:8:4 [INFO] [stderr] | [INFO] [stderr] 8 | fn shift_right(num: [u8;16]) -> [u8;16] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `bit_set` is never used [INFO] [stderr] --> lib/src/gcm.rs:18:4 [INFO] [stderr] | [INFO] [stderr] 18 | fn bit_set(num: [u8;16], bit: usize) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `xor` is never used [INFO] [stderr] --> lib/src/gcm.rs:25:4 [INFO] [stderr] | [INFO] [stderr] 25 | fn xor(a: [u8;16], b: [u8;16]) -> [u8;16] { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `multiply` is never used [INFO] [stderr] --> lib/src/gcm.rs:33:4 [INFO] [stderr] | [INFO] [stderr] 33 | fn multiply(x: [u8;16], y: [u8;16]) -> [u8;16] { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `incr` is never used [INFO] [stderr] --> lib/src/gcm.rs:56:4 [INFO] [stderr] | [INFO] [stderr] 56 | fn incr(number: [u8;16]) -> [u8;16] { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `GHash` is never constructed [INFO] [stderr] --> lib/src/gcm.rs:69:8 [INFO] [stderr] | [INFO] [stderr] 69 | struct GHash { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> lib/src/gcm.rs:78:8 [INFO] [stderr] | [INFO] [stderr] 78 | fn new(key: [u8;16]) -> GHash { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `perform_round` is never used [INFO] [stderr] --> lib/src/gcm.rs:87:8 [INFO] [stderr] | [INFO] [stderr] 87 | fn perform_round(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `update` is never used [INFO] [stderr] --> lib/src/gcm.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | fn update(&mut self, update_buf: &[u8]) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `finalize` is never used [INFO] [stderr] --> lib/src/gcm.rs:110:8 [INFO] [stderr] | [INFO] [stderr] 110 | fn finalize(&self) -> [u8;16] { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Gctr` is never constructed [INFO] [stderr] --> lib/src/gcm.rs:117:8 [INFO] [stderr] | [INFO] [stderr] 117 | struct Gctr { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> lib/src/gcm.rs:128:8 [INFO] [stderr] | [INFO] [stderr] 128 | fn new(initial_counter: [u8;16], aes: Aes) -> Gctr { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `perform_round` is never used [INFO] [stderr] --> lib/src/gcm.rs:139:8 [INFO] [stderr] | [INFO] [stderr] 139 | fn perform_round(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `update` is never used [INFO] [stderr] --> lib/src/gcm.rs:150:8 [INFO] [stderr] | [INFO] [stderr] 150 | fn update(&mut self, update_buf: &[u8]) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `finalize` is never used [INFO] [stderr] --> lib/src/gcm.rs:165:8 [INFO] [stderr] | [INFO] [stderr] 165 | fn finalize(mut self) -> Vec { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `gctr` is never used [INFO] [stderr] --> lib/src/gcm.rs:176:4 [INFO] [stderr] | [INFO] [stderr] 176 | fn gctr(initial_counter: [u8;16], aes: Aes, data: &[u8]) -> Vec { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `ghash` is never used [INFO] [stderr] --> lib/src/gcm.rs:182:4 [INFO] [stderr] | [INFO] [stderr] 182 | fn ghash(key: [u8;16], data: &[u8]) -> [u8;16] { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `gcm_decrypt` is never used [INFO] [stderr] --> lib/src/gcm.rs:188:4 [INFO] [stderr] | [INFO] [stderr] 188 | fn gcm_decrypt(iv: &[u8], aes: Aes, authenticated_data: &[u8], ciphertext: &[u8], tag: &[u8]) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `gcm` is never used [INFO] [stderr] --> lib/src/gcm.rs:220:4 [INFO] [stderr] | [INFO] [stderr] 220 | fn gcm(iv: &[u8], aes: Aes, authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `Aes128` and `Aes256` are never constructed [INFO] [stderr] --> lib/src/gcm.rs:253:5 [INFO] [stderr] | [INFO] [stderr] 252 | pub enum GcmCipher { [INFO] [stderr] | --------- variants in this enum [INFO] [stderr] 253 | Aes128, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 254 | Aes256, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `GcmCipher` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `key_length` is never used [INFO] [stderr] --> lib/src/gcm.rs:258:8 [INFO] [stderr] | [INFO] [stderr] 258 | fn key_length(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `iv_length` is never used [INFO] [stderr] --> lib/src/gcm.rs:265:8 [INFO] [stderr] | [INFO] [stderr] 265 | fn iv_length(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `aead` is never used [INFO] [stderr] --> lib/src/gcm.rs:269:12 [INFO] [stderr] | [INFO] [stderr] 269 | pub fn aead(&self, iv: &[u8], key: &[u8], authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `aead` is never used [INFO] [stderr] --> lib/src/cipher_suite.rs:72:12 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn aead(&self, iv: &[u8], key: &[u8], authenticated_data: &[u8], plaintext: &[u8]) -> AeadResult { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `Invalid`, `ChangeCipherSpec`, `Alert` and `ApplicationData` are never constructed [INFO] [stderr] --> lib/src/messages.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 20 | pub enum Record { [INFO] [stderr] | ------ variants in this enum [INFO] [stderr] 21 | Invalid, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 22 | ChangeCipherSpec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 23 | Alert, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 24 | Handshake(Handshake), [INFO] [stderr] 25 | ApplicationData, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Record` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `to_bytes` is never used [INFO] [stderr] --> lib/src/messages.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn to_bytes(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `NewSessionTicket`, `EndOfEarlyData`, `CertificateRequest`, `KeyUpdate` and `MessageHash` are never constructed [INFO] [stderr] --> lib/src/messages.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 104 | pub enum Handshake { [INFO] [stderr] | --------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 107 | NewSessionTicket(NewSessionTicket), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 108 | EndOfEarlyData(EndOfEarlyData), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 111 | CertificateRequest(CertificateRequest), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 114 | KeyUpdate(KeyUpdate), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 115 | MessageHash(MessageHash), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Handshake` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `ClientHello` is never constructed [INFO] [stderr] --> lib/src/messages.rs:517:5 [INFO] [stderr] | [INFO] [stderr] 515 | pub enum ReadContext { [INFO] [stderr] | ----------- variant in this enum [INFO] [stderr] 516 | ServerHello, [INFO] [stderr] 517 | ClientHello, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ReadContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Cookie` is never constructed [INFO] [stderr] --> lib/src/messages.rs:529:5 [INFO] [stderr] | [INFO] [stderr] 523 | pub enum Extension { [INFO] [stderr] | --------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 529 | Cookie(Cookie), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Extension` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `PskKe` and `PskDheKe` are never constructed [INFO] [stderr] --> lib/src/messages.rs:875:5 [INFO] [stderr] | [INFO] [stderr] 874 | pub enum PskKeyExchangeMode { [INFO] [stderr] | ------------------ variants in this enum [INFO] [stderr] 875 | PskKe, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 876 | PskDheKe, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `PskKeyExchangeMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `try_from_u8` is never used [INFO] [stderr] --> lib/src/messages.rs:887:8 [INFO] [stderr] | [INFO] [stderr] 887 | fn try_from_u8(num: u8) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `RsaPkcs1Sha1` and `EcdsaSha1` are never constructed [INFO] [stderr] --> lib/src/signature.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub enum SignatureScheme { [INFO] [stderr] | --------------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 30 | RsaPkcs1Sha1, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 31 | EcdsaSha1, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SignatureScheme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: unused import: `Buf` [INFO] [stderr] --> lib/src/client.rs:444:17 [INFO] [stderr] | [INFO] [stderr] 444 | use bytes::{Buf, BufMut}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BigInt` [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:193:22 [INFO] [stderr] | [INFO] [stderr] 193 | use num_bigint::{BigInt}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Point`, `multiplicative_inverse` [INFO] [stderr] --> lib/src/eliptic_curve/curve25519.rs:194:17 [INFO] [stderr] | [INFO] [stderr] 194 | use super::{multiplicative_inverse, Point, curve25519}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `random_gen` [INFO] [stderr] --> lib/src/client.rs:537:13 [INFO] [stderr] | [INFO] [stderr] 537 | let random_gen = Box::new(MockTlsGenerator {}); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_gen` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `test` [INFO] [stderr] --> lib/src/client.rs:669:13 [INFO] [stderr] | [INFO] [stderr] 669 | let test = client.as_ptr(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_test` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cx` [INFO] [stderr] --> lib/src/client.rs:469:45 [INFO] [stderr] | [INFO] [stderr] 469 | fn poll_ready(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cx` [INFO] [stderr] --> lib/src/client.rs:477:45 [INFO] [stderr] | [INFO] [stderr] 477 | fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cx` [INFO] [stderr] --> lib/src/client.rs:481:45 [INFO] [stderr] | [INFO] [stderr] 481 | fn poll_close(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inverse` [INFO] [stderr] --> lib/src/eliptic_curve/secp256r1.rs:214:13 [INFO] [stderr] | [INFO] [stderr] 214 | let inverse = super::multiplicative_inverse(&BigInt::from(3u32), &BigInt::from(19u32)); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inverse` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_point` [INFO] [stderr] --> lib/src/eliptic_curve/secp256r1.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let new_point = curve.add(&a, &b); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_point` [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> lib/src/client.rs:670:9 [INFO] [stderr] | [INFO] [stderr] 670 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> lib/src/client.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 134 | struct TlsSecrets { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 135 | master_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 136 | client_traffic_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 137 | server_traffic_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 138 | client_write_iv: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 139 | server_write_iv: Option>, [INFO] [stderr] 140 | client_write_key: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 141 | server_write_key: Option>, [INFO] [stderr] 142 | client_sequence_number: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 143 | server_sequence_number: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 144 | [INFO] [stderr] 145 | exporter_master_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 146 | resumption_master_secret: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 149 | client_finished_key: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TlsSecrets` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `icb` is never read [INFO] [stderr] --> lib/src/gcm.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 117 | struct Gctr { [INFO] [stderr] | ---- field in this struct [INFO] [stderr] 118 | aes: Aes, [INFO] [stderr] 119 | icb: [u8;16], [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `PskKe` is never constructed [INFO] [stderr] --> lib/src/messages.rs:875:5 [INFO] [stderr] | [INFO] [stderr] 874 | pub enum PskKeyExchangeMode { [INFO] [stderr] | ------------------ variant in this enum [INFO] [stderr] 875 | PskKe, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `PskKeyExchangeMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `tlslib` (lib) generated 87 warnings [INFO] [stderr] warning: `tlslib` (lib test) generated 51 warnings (37 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.18s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/testexe-2db9140fd2ed5faa) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tlslib-020ce8f0ffff2507) [INFO] [stdout] [INFO] [stdout] running 41 tests [INFO] [stdout] test aes::tests::test_xtime ... ok [INFO] [stdout] test aes::tests::cipher_test_128 ... ok [INFO] [stdout] test digest::sha256::tests::test_digest ... ok [INFO] [stdout] test aes::tests::test_mul ... ok [INFO] [stdout] test aes::tests::test_expand_keys ... ok [INFO] [stdout] test aes::tests::cipher_test_256 ... ok [INFO] [stdout] test digest::sha256::tests::test_long_digest ... ok [INFO] [stdout] test digest::sha384::tests::test_long_digest ... ok [INFO] [stdout] test digest::sha384::tests::test_digest ... ok [INFO] [stdout] test eliptic_curve::curve25519::tests::test_one_thousand ... ignored [INFO] [stdout] test aes::tests::cipher_test_196 ... ok [INFO] [stdout] test eliptic_curve::secp256r1::tests::test_add ... ok [INFO] [stdout] test eliptic_curve::secp256r1::tests::test_inverse ... ok [INFO] [stdout] test eliptic_curve::secp256r1::tests::test_mul_small ... ok [INFO] [stdout] test eliptic_curve::secp256r1::tests::test_vector1 ... ok [INFO] [stdout] test eliptic_curve::secp256r1::tests::test_mul ... ok [INFO] [stdout] test gcm::tests::test_gcm_complex ... ok [INFO] [stdout] test gcm::tests::test_gcm_empty ... ok [INFO] [stdout] test gcm::tests::test_gcm_multiply ... ok [INFO] [stdout] test gcm::tests::test_gcm_multiply2 ... ok [INFO] [stdout] test gcm::tests::test_gcm_multiply3 ... ok [INFO] [stdout] test gcm::tests::test_gcm_simple ... ok [INFO] [stdout] test hmac::tests::test_hkdf ... FAILED [INFO] [stdout] test hmac::tests::test_hkdf2 ... ok [INFO] [stdout] test hmac::tests::test_hkdf3 ... ok [INFO] [stdout] test hmac::tests::test_hmac ... ok [INFO] [stdout] test messages::tests::test_certificate_serdes ... ok [INFO] [stdout] test messages::tests::test_certificate_verify_serdes ... ok [INFO] [stdout] test messages::tests::test_client_hello_serdes ... FAILED [INFO] [stdout] test messages::tests::test_encrypted_extensions_serdes ... ok [INFO] [stdout] test messages::tests::test_finished_serdes ... ok [INFO] [stdout] test messages::tests::test_handshake_deserialization ... ok [INFO] [stdout] test digest::sha384::tests::test_longest_digest ... ok [INFO] [stdout] test tests::test_connect ... ok [INFO] [stdout] test eliptic_curve::curve25519::tests::test_iteration ... ok [INFO] [stdout] test eliptic_curve::curve25519::tests::test_vec1 ... ok [INFO] [stdout] test digest::sha256::tests::test_longest_digest ... ok [INFO] [stdout] test eliptic_curve::curve25519::tests::test_vec2 ... ok [INFO] [stdout] test client::tests::test_initial_connection ... ok [INFO] [stdout] test messages::tests::test_handshake_serialization ... ok [INFO] [stdout] test eliptic_curve::secp256r1::tests::test_vectors ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- hmac::tests::test_hkdf stdout ---- [INFO] [stdout] thread 'hmac::tests::test_hkdf' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `"a45b7c1699130145de9d48784b1c2ccad600588e88d6632bdda7b43b347cf3904dae54b668dcf094faf0"`, [INFO] [stdout] right: `"8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8"`', lib/src/hmac.rs:118:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55836fed4c5d - std::backtrace_rs::backtrace::libunwind::trace::h8217d0a8f3fd2f41 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 [INFO] [stdout] 1: 0x55836fed4c5d - std::backtrace_rs::backtrace::trace_unsynchronized::h308103876b3af410 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55836fed4c5d - std::sys_common::backtrace::_print_fmt::hc208018c6153605e [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:66:5 [INFO] [stdout] 3: 0x55836fed4c5d - ::fmt::hf89a7ed694dfb585 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:45:22 [INFO] [stdout] 4: 0x55836fef76ec - core::fmt::write::h21038c1382fe4264 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/fmt/mod.rs:1197:17 [INFO] [stdout] 5: 0x55836fed16b1 - std::io::Write::write_fmt::h323ab2482abeeec6 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/io/mod.rs:1672:15 [INFO] [stdout] 6: 0x55836fed66d5 - std::sys_common::backtrace::_print::h4e8889719c9ddeb8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:48:5 [INFO] [stdout] 7: 0x55836fed66d5 - std::sys_common::backtrace::print::h1506fe2cb3022667 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:35:9 [INFO] [stdout] 8: 0x55836fed66d5 - std::panicking::default_hook::{{closure}}::hd9d7ce2a8a782440 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:295:22 [INFO] [stdout] 9: 0x55836fed6379 - std::panicking::default_hook::h5b16ec25444b1b5d [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:311:9 [INFO] [stdout] 10: 0x55836fed6c66 - std::panicking::rust_panic_with_hook::hb0138cb6e6fea3e4 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:698:17 [INFO] [stdout] 11: 0x55836fed6b57 - std::panicking::begin_panic_handler::{{closure}}::h4cb67095557cd1aa [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:588:13 [INFO] [stdout] 12: 0x55836fed5114 - std::sys_common::backtrace::__rust_end_short_backtrace::h2bfcac279dcdc911 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:138:18 [INFO] [stdout] 13: 0x55836fed6889 - rust_begin_unwind [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:584:5 [INFO] [stdout] 14: 0x55836fd997c3 - core::panicking::panic_fmt::h1de71520faaa17d3 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panicking.rs:142:14 [INFO] [stdout] 15: 0x55836fef6238 - core::panicking::assert_failed_inner::h3f42bbb39368a2c9 [INFO] [stdout] 16: 0x55836fde503e - core::panicking::assert_failed::h7266a42bc8fed8ca [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panicking.rs:181:5 [INFO] [stdout] 17: 0x55836fdf08f1 - tlslib::hmac::tests::test_hkdf::h70079fa05d835c1a [INFO] [stdout] at /opt/rustwide/workdir/lib/src/hmac.rs:118:9 [INFO] [stdout] 18: 0x55836fdf049a - tlslib::hmac::tests::test_hkdf::{{closure}}::h97e28d890ec2b658 [INFO] [stdout] at /opt/rustwide/workdir/lib/src/hmac.rs:110:5 [INFO] [stdout] 19: 0x55836fdd43fe - core::ops::function::FnOnce::call_once::hc1163c3129593b99 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 20: 0x55836fe2f583 - core::ops::function::FnOnce::call_once::h0834638dccd7f44f [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 21: 0x55836fe2f583 - test::__rust_begin_short_backtrace::h236b9d3086614016 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:572:5 [INFO] [stdout] 22: 0x55836fe2e38a - as core::ops::function::FnOnce>::call_once::h836d617c8cafab84 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/alloc/src/boxed.rs:1951:9 [INFO] [stdout] 23: 0x55836fe2e38a - as core::ops::function::FnOnce<()>>::call_once::h749e4286e2b07713 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 24: 0x55836fe2e38a - std::panicking::try::do_call::h43a1b83a3cb9edc8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40 [INFO] [stdout] 25: 0x55836fe2e38a - std::panicking::try::h5622fa742e7f1abc [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19 [INFO] [stdout] 26: 0x55836fe2e38a - std::panic::catch_unwind::h99900a1dadf94a68 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14 [INFO] [stdout] 27: 0x55836fe2e38a - test::run_test_in_process::h3893e153ea830832 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:595:18 [INFO] [stdout] 28: 0x55836fe2e38a - test::run_test::run_test_inner::{{closure}}::h1a6c1ab1f6c36f74 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:489:39 [INFO] [stdout] 29: 0x55836fdfa8fd - test::run_test::run_test_inner::{{closure}}::hb34d5332aa2ee72c [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:516:37 [INFO] [stdout] 30: 0x55836fdfa8fd - std::sys_common::backtrace::__rust_begin_short_backtrace::h99ab4c6a3071a36c [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:122:18 [INFO] [stdout] 31: 0x55836fe00328 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h27cba0714207d393 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/thread/mod.rs:505:17 [INFO] [stdout] 32: 0x55836fe00328 - as core::ops::function::FnOnce<()>>::call_once::h9cf84e534f80e48a [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 33: 0x55836fe00328 - std::panicking::try::do_call::hcd5ff80e96737b38 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40 [INFO] [stdout] 34: 0x55836fe00328 - std::panicking::try::h1813b6532a9dacd8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19 [INFO] [stdout] 35: 0x55836fe00328 - std::panic::catch_unwind::hff2a46cca1d01f0b [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14 [INFO] [stdout] 36: 0x55836fe00328 - std::thread::Builder::spawn_unchecked_::{{closure}}::h83c4b74ca1b724fc [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/thread/mod.rs:504:30 [INFO] [stdout] 37: 0x55836fe00328 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e3eb359359c7897 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 38: 0x55836fedb443 - as core::ops::function::FnOnce>::call_once::h1680342795a2dc08 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/alloc/src/boxed.rs:1951:9 [INFO] [stdout] 39: 0x55836fedb443 - as core::ops::function::FnOnce>::call_once::h45204a69827b0e83 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/alloc/src/boxed.rs:1951:9 [INFO] [stdout] 40: 0x55836fedb443 - std::sys::unix::thread::Thread::new::thread_start::h5d4e11bbda4161c8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys/unix/thread.rs:108:17 [INFO] [stdout] 41: 0x7f65a8238609 - start_thread [INFO] [stdout] 42: 0x7f65a8008133 - clone [INFO] [stdout] 43: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- messages::tests::test_client_hello_serdes stdout ---- [INFO] [stdout] thread 'messages::tests::test_client_hello_serdes' panicked at 'called `Result::unwrap()` on an `Err` value: Error("Parse Error on line 85")', lib/src/messages.rs:1031:41 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55836fed4c5d - std::backtrace_rs::backtrace::libunwind::trace::h8217d0a8f3fd2f41 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 [INFO] [stdout] 1: 0x55836fed4c5d - std::backtrace_rs::backtrace::trace_unsynchronized::h308103876b3af410 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55836fed4c5d - std::sys_common::backtrace::_print_fmt::hc208018c6153605e [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:66:5 [INFO] [stdout] 3: 0x55836fed4c5d - ::fmt::hf89a7ed694dfb585 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:45:22 [INFO] [stdout] 4: 0x55836fef76ec - core::fmt::write::h21038c1382fe4264 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/fmt/mod.rs:1197:17 [INFO] [stdout] 5: 0x55836fed16b1 - std::io::Write::write_fmt::h323ab2482abeeec6 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/io/mod.rs:1672:15 [INFO] [stdout] 6: 0x55836fed66d5 - std::sys_common::backtrace::_print::h4e8889719c9ddeb8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:48:5 [INFO] [stdout] 7: 0x55836fed66d5 - std::sys_common::backtrace::print::h1506fe2cb3022667 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:35:9 [INFO] [stdout] 8: 0x55836fed66d5 - std::panicking::default_hook::{{closure}}::hd9d7ce2a8a782440 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:295:22 [INFO] [stdout] 9: 0x55836fed6379 - std::panicking::default_hook::h5b16ec25444b1b5d [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:311:9 [INFO] [stdout] 10: 0x55836fed6c66 - std::panicking::rust_panic_with_hook::hb0138cb6e6fea3e4 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:698:17 [INFO] [stdout] 11: 0x55836fed6b57 - std::panicking::begin_panic_handler::{{closure}}::h4cb67095557cd1aa [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:588:13 [INFO] [stdout] 12: 0x55836fed5114 - std::sys_common::backtrace::__rust_end_short_backtrace::h2bfcac279dcdc911 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:138:18 [INFO] [stdout] 13: 0x55836fed6889 - rust_begin_unwind [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:584:5 [INFO] [stdout] 14: 0x55836fd997c3 - core::panicking::panic_fmt::h1de71520faaa17d3 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panicking.rs:142:14 [INFO] [stdout] 15: 0x55836fd998b3 - core::result::unwrap_failed::hc0baa33ef8bc7db8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/result.rs:1805:5 [INFO] [stdout] 16: 0x55836fde03d3 - core::result::Result::unwrap::h6a8a920574557021 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/result.rs:1098:23 [INFO] [stdout] 17: 0x55836fdba316 - tlslib::messages::tests::test_client_hello_serdes::h173178421e4de73d [INFO] [stdout] at /opt/rustwide/workdir/lib/src/messages.rs:1031:27 [INFO] [stdout] 18: 0x55836fdba01a - tlslib::messages::tests::test_client_hello_serdes::{{closure}}::h712a510ca7a89429 [INFO] [stdout] at /opt/rustwide/workdir/lib/src/messages.rs:1024:5 [INFO] [stdout] 19: 0x55836fdd3c3e - core::ops::function::FnOnce::call_once::h0ac481e7e24ee49d [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 20: 0x55836fe2f583 - core::ops::function::FnOnce::call_once::h0834638dccd7f44f [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 21: 0x55836fe2f583 - test::__rust_begin_short_backtrace::h236b9d3086614016 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:572:5 [INFO] [stdout] 22: 0x55836fe2e38a - as core::ops::function::FnOnce>::call_once::h836d617c8cafab84 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/alloc/src/boxed.rs:1951:9 [INFO] [stdout] 23: 0x55836fe2e38a - as core::ops::function::FnOnce<()>>::call_once::h749e4286e2b07713 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 24: 0x55836fe2e38a - std::panicking::try::do_call::h43a1b83a3cb9edc8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40 [INFO] [stdout] 25: 0x55836fe2e38a - std::panicking::try::h5622fa742e7f1abc [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19 [INFO] [stdout] 26: 0x55836fe2e38a - std::panic::catch_unwind::h99900a1dadf94a68 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14 [INFO] [stdout] 27: 0x55836fe2e38a - test::run_test_in_process::h3893e153ea830832 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:595:18 [INFO] [stdout] 28: 0x55836fe2e38a - test::run_test::run_test_inner::{{closure}}::h1a6c1ab1f6c36f74 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:489:39 [INFO] [stdout] 29: 0x55836fdfa8fd - test::run_test::run_test_inner::{{closure}}::hb34d5332aa2ee72c [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/test/src/lib.rs:516:37 [INFO] [stdout] 30: 0x55836fdfa8fd - std::sys_common::backtrace::__rust_begin_short_backtrace::h99ab4c6a3071a36c [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:122:18 [INFO] [stdout] 31: 0x55836fe00328 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h27cba0714207d393 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/thread/mod.rs:505:17 [INFO] [stdout] 32: 0x55836fe00328 - as core::ops::function::FnOnce<()>>::call_once::h9cf84e534f80e48a [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 33: 0x55836fe00328 - std::panicking::try::do_call::hcd5ff80e96737b38 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40 [INFO] [stdout] 34: 0x55836fe00328 - std::panicking::try::h1813b6532a9dacd8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19 [INFO] [stdout] 35: 0x55836fe00328 - std::panic::catch_unwind::hff2a46cca1d01f0b [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14 [INFO] [stdout] 36: 0x55836fe00328 - std::thread::Builder::spawn_unchecked_::{{closure}}::h83c4b74ca1b724fc [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/thread/mod.rs:504:30 [INFO] [stdout] 37: 0x55836fe00328 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e3eb359359c7897 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 38: 0x55836fedb443 - as core::ops::function::FnOnce>::call_once::h1680342795a2dc08 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/alloc/src/boxed.rs:1951:9 [INFO] [stdout] 39: 0x55836fedb443 - as core::ops::function::FnOnce>::call_once::h45204a69827b0e83 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/alloc/src/boxed.rs:1951:9 [INFO] [stdout] 40: 0x55836fedb443 - std::sys::unix::thread::Thread::new::thread_start::h5d4e11bbda4161c8 [INFO] [stdout] at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys/unix/thread.rs:108:17 [INFO] [stdout] 41: 0x7f65a8238609 - start_thread [INFO] [stdout] 42: 0x7f65a8008133 - clone [INFO] [stdout] 43: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] hmac::tests::test_hkdf [INFO] [stdout] messages::tests::test_client_hello_serdes [INFO] [stdout] [INFO] [stdout] test result: FAILED. 38 passed; 2 failed; 1 ignored; 0 measured; 0 filtered out; finished in 6.95s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '-p tlslib --lib' [INFO] running `Command { std: "docker" "inspect" "061e97b3435f7ff4196657df1fa2ca0d91a43826a5d2c5e6c5f57c3abfe2c7fd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "061e97b3435f7ff4196657df1fa2ca0d91a43826a5d2c5e6c5f57c3abfe2c7fd", kill_on_drop: false }` [INFO] [stdout] 061e97b3435f7ff4196657df1fa2ca0d91a43826a5d2c5e6c5f57c3abfe2c7fd