[INFO] fetching crate rusty-dtls 0.1.0... [INFO] testing rusty-dtls-0.1.0 against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] extracting crate rusty-dtls 0.1.0 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate rusty-dtls 0.1.0 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate rusty-dtls 0.1.0 [INFO] tweaked toml for crates.io crate rusty-dtls 0.1.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate rusty-dtls 0.1.0 on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate rusty-dtls 0.1.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded embedded-nal-async v0.8.0 [INFO] [stderr] Downloaded embassy-futures v0.1.1 [INFO] [stderr] Downloaded std-embedded-nal-async v0.3.0 [INFO] [stderr] Downloaded embedded-nal v0.9.0 [INFO] [stderr] Downloaded std-embedded-time v0.1.0 [INFO] [stderr] Downloaded dns-lookup v2.0.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 241bd51e16e064d6d5959347118ae327e76e127d91f208ff31940dfb60037a53 [INFO] running `Command { std: "docker" "start" "-a" "241bd51e16e064d6d5959347118ae327e76e127d91f208ff31940dfb60037a53", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "241bd51e16e064d6d5959347118ae327e76e127d91f208ff31940dfb60037a53", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "241bd51e16e064d6d5959347118ae327e76e127d91f208ff31940dfb60037a53", kill_on_drop: false }` [INFO] [stdout] 241bd51e16e064d6d5959347118ae327e76e127d91f208ff31940dfb60037a53 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] ac567e3bfb4241ffccdd9742daff95e2e07a6762ab3320a521ffb6d1653f11cd [INFO] running `Command { std: "docker" "start" "-a" "ac567e3bfb4241ffccdd9742daff95e2e07a6762ab3320a521ffb6d1653f11cd", kill_on_drop: false }` [INFO] [stderr] Compiling heapless v0.8.0 [INFO] [stderr] Compiling hash32 v0.3.1 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling log v0.4.25 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling inout v0.1.3 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling rusty-dtls v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 291 | / match secret { [INFO] [stdout] 292 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 293 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 294 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 301 | | TrafficSecret::None => panic!(), [INFO] [stdout] 302 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 303 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:333:5 [INFO] [stdout] | [INFO] [stdout] 321 | / match secret { [INFO] [stdout] 322 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 323 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 324 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 331 | | TrafficSecret::None => panic!(), [INFO] [stdout] 332 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 333 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:357:5 [INFO] [stdout] | [INFO] [stdout] 344 | / match secret { [INFO] [stdout] 345 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 346 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 347 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 355 | | TrafficSecret::None => panic!(), [INFO] [stdout] 356 | | }; [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 357 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:434:9 [INFO] [stdout] | [INFO] [stdout] 424 | / match self { [INFO] [stdout] 425 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 426 | | CipherDependentCryptoState::Aes128GcmSha256 { [INFO] [stdout] 427 | | transcript_hash: _, [INFO] [stdout] ... | [INFO] [stdout] 432 | | CipherDependentCryptoState::None => panic!(), [INFO] [stdout] 433 | | } [INFO] [stdout] | |_________- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 434 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:620:5 [INFO] [stdout] | [INFO] [stdout] 614 | let valid = match psk.hash_function { [INFO] [stdout] | _________________- [INFO] [stdout] 615 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 616 | | HashFunction::Sha256 => { [INFO] [stdout] 617 | | received_binder == calculate_binder_value::(psk, transcript_hash)?.as_slice() [INFO] [stdout] 618 | | } [INFO] [stdout] 619 | | }; [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 620 | Ok(valid) [INFO] [stdout] | ^^^^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/crypto.rs:634:5 [INFO] [stdout] | [INFO] [stdout] 630 | let binder: &[u8] = match psk.hash_function { [INFO] [stdout] | _________________________- [INFO] [stdout] 631 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 632 | | HashFunction::Sha256 => &calculate_binder_value::(psk, transcript_hash)?, [INFO] [stdout] 633 | | }; [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 634 | / Parser::new_mut_slice(buffer, binder)? [INFO] [stdout] 635 | | .write_len_u8() [INFO] [stdout] 636 | | .write_slice() [INFO] [stdout] 637 | | .end(); [INFO] [stdout] | |_______________^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `partial_client_hello` [INFO] [stdout] --> src/crypto.rs:53:28 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn finalize(&self, partial_client_hello: &[&[u8]]) -> FinalizedPskTranscriptHashes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_client_hello` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record_seq_num` [INFO] [stdout] --> src/crypto.rs:287:5 [INFO] [stdout] | [INFO] [stdout] 287 | record_seq_num: &u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `additional_data` [INFO] [stdout] --> src/crypto.rs:288:5 [INFO] [stdout] | [INFO] [stdout] 288 | additional_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `plaintext` [INFO] [stdout] --> src/crypto.rs:289:5 [INFO] [stdout] | [INFO] [stdout] 289 | plaintext: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plaintext` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record_seq_num` [INFO] [stdout] --> src/crypto.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | record_seq_num: &u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `additional_data` [INFO] [stdout] --> src/crypto.rs:318:5 [INFO] [stdout] | [INFO] [stdout] 318 | additional_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphertext` [INFO] [stdout] --> src/crypto.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 319 | ciphertext: &mut [u8], [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphertext` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `psk` [INFO] [stdout] --> src/crypto.rs:386:13 [INFO] [stdout] | [INFO] [stdout] 386 | let psk = if let Some(psk) = psk { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_psk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hashes` [INFO] [stdout] --> src/crypto.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | hashes: CryptoInformation, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ikm` [INFO] [stdout] --> src/crypto.rs:423:46 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn extract_new_hkdf_state(&mut self, ikm: Option<&[u8]>) -> Result<(), DtlsError> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ikm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/crypto.rs:437:41 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn derive_traffic_secret(&self, label: &str) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/crypto.rs:481:13 [INFO] [stdout] | [INFO] [stdout] 480 | (CipherDependentCryptoState::None, _) => panic!(), [INFO] [stdout] | ------------------------------------- matches all the relevant values [INFO] [stdout] 481 | (_, TrafficSecret::None) => panic!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:459:9 [INFO] [stdout] | [INFO] [stdout] 459 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/crypto.rs:509:13 [INFO] [stdout] | [INFO] [stdout] 508 | (CipherDependentCryptoState::None, _) => panic!(), [INFO] [stdout] | ------------------------------------- matches all the relevant values [INFO] [stdout] 509 | (_, TrafficSecret::None) => panic!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:487:9 [INFO] [stdout] | [INFO] [stdout] 487 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid` [INFO] [stdout] --> src/crypto.rs:614:9 [INFO] [stdout] | [INFO] [stdout] 614 | let valid = match psk.hash_function { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_valid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binder` [INFO] [stdout] --> src/crypto.rs:630:9 [INFO] [stdout] | [INFO] [stdout] 630 | let binder: &[u8] = match psk.hash_function { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:624:5 [INFO] [stdout] | [INFO] [stdout] 624 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/parsing.rs:393:20 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ---------------------------- any code following this expression is unreachable [INFO] [stdout] 393 | for psk in psks.iter().filter(|p| p.hash_function == hash_fn) { [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited [INFO] [stdout] --> src/parsing.rs:392:23 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transcript_hash` [INFO] [stdout] --> src/parsing.rs:391:13 [INFO] [stdout] | [INFO] [stdout] 391 | let transcript_hash = transcript_hash.psk_hash_mut()?.finalize(&[]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcript_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_fn` [INFO] [stdout] --> src/parsing.rs:392:13 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_fn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable definition [INFO] [stdout] --> src/parsing.rs:899:13 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | --------------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 899 | let mut selected_psk_index = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unreachable definition [INFO] [stdout] | [INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited [INFO] [stdout] --> src/parsing.rs:898:32 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_suite_hash_fn` [INFO] [stdout] --> src/parsing.rs:898:9 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_suite_hash_fn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `client_hello_start` [INFO] [stdout] --> src/parsing.rs:890:5 [INFO] [stdout] | [INFO] [stdout] 890 | client_hello_start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_hello_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parsing.rs:893:9 [INFO] [stdout] | [INFO] [stdout] 893 | let mut psk_ids_len_left = Parser::read_single_u16(buffer)? as usize; [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: function `generate_nonce` is never used [INFO] [stdout] --> src/crypto.rs:306:4 [INFO] [stdout] | [INFO] [stdout] 306 | fn generate_nonce(record_seq_num: &u64, iv: &[u8], nonce: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor_seq_num_aes128` is never used [INFO] [stdout] --> src/crypto.rs:360:4 [INFO] [stdout] | [INFO] [stdout] 360 | fn xor_seq_num_aes128(sn: &[u8], record_seq_num: &mut [u8], cipher_text: &[u8; 16]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HkdfExt` is never used [INFO] [stdout] --> src/crypto.rs:514:7 [INFO] [stdout] | [INFO] [stdout] 514 | trait HkdfExt { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hkdf_expand_label` is never used [INFO] [stdout] --> src/crypto.rs:528:4 [INFO] [stdout] | [INFO] [stdout] 528 | fn hkdf_expand_label( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_hello_retry_transcript_hash` is never used [INFO] [stdout] --> src/crypto.rs:554:4 [INFO] [stdout] | [INFO] [stdout] 554 | fn calculate_hello_retry_transcript_hash(client_hello_1_hash: &[u8]) -> H { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_verify_data` is never used [INFO] [stdout] --> src/crypto.rs:571:4 [INFO] [stdout] | [INFO] [stdout] 571 | fn encode_verify_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_verify_data` is never used [INFO] [stdout] --> src/crypto.rs:580:4 [INFO] [stdout] | [INFO] [stdout] 580 | fn check_verify_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_new_hkdf_state` is never used [INFO] [stdout] --> src/crypto.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn extract_new_hkdf_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_binder_value` is never used [INFO] [stdout] --> src/crypto.rs:641:4 [INFO] [stdout] | [INFO] [stdout] 641 | fn calculate_binder_value( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `empty_hash` is never used [INFO] [stdout] --> src/crypto.rs:657:4 [INFO] [stdout] | [INFO] [stdout] 657 | fn empty_hash() -> GenericArray::OutputSize> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_verify_data` is never used [INFO] [stdout] --> src/crypto.rs:663:8 [INFO] [stdout] | [INFO] [stdout] 663 | pub fn calculate_verify_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_in_place` is never used [INFO] [stdout] --> src/crypto.rs:677:4 [INFO] [stdout] | [INFO] [stdout] 677 | fn encrypt_in_place( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_in_place` is never used [INFO] [stdout] --> src/crypto.rs:693:4 [INFO] [stdout] | [INFO] [stdout] 693 | fn decrypt_in_place( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `derive_traffic_secret` is never used [INFO] [stdout] --> src/crypto.rs:711:4 [INFO] [stdout] | [INFO] [stdout] 711 | fn derive_traffic_secret< [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.24s [INFO] running `Command { std: "docker" "inspect" "ac567e3bfb4241ffccdd9742daff95e2e07a6762ab3320a521ffb6d1653f11cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ac567e3bfb4241ffccdd9742daff95e2e07a6762ab3320a521ffb6d1653f11cd", kill_on_drop: false }` [INFO] [stdout] ac567e3bfb4241ffccdd9742daff95e2e07a6762ab3320a521ffb6d1653f11cd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] b5e62f576a2e019c9f376c8ffae3a2d951b5dc54624c99bd28580f3d4ebe5cf3 [INFO] running `Command { std: "docker" "start" "-a" "b5e62f576a2e019c9f376c8ffae3a2d951b5dc54624c99bd28580f3d4ebe5cf3", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling value-bag v1.10.0 [INFO] [stderr] Compiling bitflags v2.8.0 [INFO] [stderr] Compiling syn v2.0.96 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling event-listener v5.4.0 [INFO] [stderr] Compiling futures-lite v2.6.0 [INFO] [stderr] Compiling log v0.4.25 [INFO] [stderr] Compiling tracing-core v0.1.33 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling event-listener-strategy v0.5.3 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Compiling piper v0.2.4 [INFO] [stderr] Compiling async-channel v2.3.1 [INFO] [stderr] Compiling async-lock v3.4.0 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling polling v2.8.0 [INFO] [stderr] Compiling embedded-io-async v0.6.1 [INFO] [stderr] Compiling rustix v0.37.28 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.3.1 [INFO] [stderr] Compiling async-executor v1.13.1 [INFO] [stderr] Compiling blocking v1.6.1 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling async-io v1.13.0 [INFO] [stderr] Compiling embedded-io v0.6.1 [INFO] [stderr] Compiling linux-raw-sys v0.3.8 [INFO] [stderr] Compiling once_cell v1.20.2 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling socket2 v0.4.10 [INFO] [stderr] Compiling socket2 v0.5.8 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling futures-lite v1.13.0 [INFO] [stderr] Compiling embedded-nal v0.9.0 [INFO] [stderr] Compiling num v0.3.1 [INFO] [stderr] Compiling async-channel v1.9.0 [INFO] [stderr] Compiling async-lock v2.8.0 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling dns-lookup v2.0.4 [INFO] [stderr] Compiling nix v0.27.1 [INFO] [stderr] Compiling embedded-time v0.12.1 [INFO] [stderr] Compiling embedded-nal-async v0.8.0 [INFO] [stderr] Compiling simple_logger v4.3.3 [INFO] [stderr] Compiling rusty-dtls v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 291 | / match secret { [INFO] [stdout] 292 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 293 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 294 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 301 | | TrafficSecret::None => panic!(), [INFO] [stdout] 302 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 303 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:333:5 [INFO] [stdout] | [INFO] [stdout] 321 | / match secret { [INFO] [stdout] 322 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 323 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 324 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 331 | | TrafficSecret::None => panic!(), [INFO] [stdout] 332 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 333 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:357:5 [INFO] [stdout] | [INFO] [stdout] 344 | / match secret { [INFO] [stdout] 345 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 346 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 347 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 355 | | TrafficSecret::None => panic!(), [INFO] [stdout] 356 | | }; [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 357 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:434:9 [INFO] [stdout] | [INFO] [stdout] 424 | / match self { [INFO] [stdout] 425 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 426 | | CipherDependentCryptoState::Aes128GcmSha256 { [INFO] [stdout] 427 | | transcript_hash: _, [INFO] [stdout] ... | [INFO] [stdout] 432 | | CipherDependentCryptoState::None => panic!(), [INFO] [stdout] 433 | | } [INFO] [stdout] | |_________- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 434 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:620:5 [INFO] [stdout] | [INFO] [stdout] 614 | let valid = match psk.hash_function { [INFO] [stdout] | _________________- [INFO] [stdout] 615 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 616 | | HashFunction::Sha256 => { [INFO] [stdout] 617 | | received_binder == calculate_binder_value::(psk, transcript_hash)?.as_slice() [INFO] [stdout] 618 | | } [INFO] [stdout] 619 | | }; [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 620 | Ok(valid) [INFO] [stdout] | ^^^^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/crypto.rs:634:5 [INFO] [stdout] | [INFO] [stdout] 630 | let binder: &[u8] = match psk.hash_function { [INFO] [stdout] | _________________________- [INFO] [stdout] 631 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 632 | | HashFunction::Sha256 => &calculate_binder_value::(psk, transcript_hash)?, [INFO] [stdout] 633 | | }; [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 634 | / Parser::new_mut_slice(buffer, binder)? [INFO] [stdout] 635 | | .write_len_u8() [INFO] [stdout] 636 | | .write_slice() [INFO] [stdout] 637 | | .end(); [INFO] [stdout] | |_______________^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `partial_client_hello` [INFO] [stdout] --> src/crypto.rs:53:28 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn finalize(&self, partial_client_hello: &[&[u8]]) -> FinalizedPskTranscriptHashes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_client_hello` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record_seq_num` [INFO] [stdout] --> src/crypto.rs:287:5 [INFO] [stdout] | [INFO] [stdout] 287 | record_seq_num: &u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `additional_data` [INFO] [stdout] --> src/crypto.rs:288:5 [INFO] [stdout] | [INFO] [stdout] 288 | additional_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `plaintext` [INFO] [stdout] --> src/crypto.rs:289:5 [INFO] [stdout] | [INFO] [stdout] 289 | plaintext: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plaintext` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record_seq_num` [INFO] [stdout] --> src/crypto.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | record_seq_num: &u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `additional_data` [INFO] [stdout] --> src/crypto.rs:318:5 [INFO] [stdout] | [INFO] [stdout] 318 | additional_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphertext` [INFO] [stdout] --> src/crypto.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 319 | ciphertext: &mut [u8], [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphertext` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `psk` [INFO] [stdout] --> src/crypto.rs:386:13 [INFO] [stdout] | [INFO] [stdout] 386 | let psk = if let Some(psk) = psk { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_psk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hashes` [INFO] [stdout] --> src/crypto.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | hashes: CryptoInformation, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ikm` [INFO] [stdout] --> src/crypto.rs:423:46 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn extract_new_hkdf_state(&mut self, ikm: Option<&[u8]>) -> Result<(), DtlsError> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ikm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/crypto.rs:437:41 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn derive_traffic_secret(&self, label: &str) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/crypto.rs:481:13 [INFO] [stdout] | [INFO] [stdout] 480 | (CipherDependentCryptoState::None, _) => panic!(), [INFO] [stdout] | ------------------------------------- matches all the relevant values [INFO] [stdout] 481 | (_, TrafficSecret::None) => panic!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:459:9 [INFO] [stdout] | [INFO] [stdout] 459 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/crypto.rs:509:13 [INFO] [stdout] | [INFO] [stdout] 508 | (CipherDependentCryptoState::None, _) => panic!(), [INFO] [stdout] | ------------------------------------- matches all the relevant values [INFO] [stdout] 509 | (_, TrafficSecret::None) => panic!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:487:9 [INFO] [stdout] | [INFO] [stdout] 487 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid` [INFO] [stdout] --> src/crypto.rs:614:9 [INFO] [stdout] | [INFO] [stdout] 614 | let valid = match psk.hash_function { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_valid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binder` [INFO] [stdout] --> src/crypto.rs:630:9 [INFO] [stdout] | [INFO] [stdout] 630 | let binder: &[u8] = match psk.hash_function { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:624:5 [INFO] [stdout] | [INFO] [stdout] 624 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/parsing.rs:393:20 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ---------------------------- any code following this expression is unreachable [INFO] [stdout] 393 | for psk in psks.iter().filter(|p| p.hash_function == hash_fn) { [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited [INFO] [stdout] --> src/parsing.rs:392:23 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transcript_hash` [INFO] [stdout] --> src/parsing.rs:391:13 [INFO] [stdout] | [INFO] [stdout] 391 | let transcript_hash = transcript_hash.psk_hash_mut()?.finalize(&[]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcript_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_fn` [INFO] [stdout] --> src/parsing.rs:392:13 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_fn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable definition [INFO] [stdout] --> src/parsing.rs:899:13 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | --------------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 899 | let mut selected_psk_index = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unreachable definition [INFO] [stdout] | [INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited [INFO] [stdout] --> src/parsing.rs:898:32 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_suite_hash_fn` [INFO] [stdout] --> src/parsing.rs:898:9 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_suite_hash_fn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `client_hello_start` [INFO] [stdout] --> src/parsing.rs:890:5 [INFO] [stdout] | [INFO] [stdout] 890 | client_hello_start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_hello_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parsing.rs:893:9 [INFO] [stdout] | [INFO] [stdout] 893 | let mut psk_ids_len_left = Parser::read_single_u16(buffer)? as usize; [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: function `generate_nonce` is never used [INFO] [stdout] --> src/crypto.rs:306:4 [INFO] [stdout] | [INFO] [stdout] 306 | fn generate_nonce(record_seq_num: &u64, iv: &[u8], nonce: &mut [u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor_seq_num_aes128` is never used [INFO] [stdout] --> src/crypto.rs:360:4 [INFO] [stdout] | [INFO] [stdout] 360 | fn xor_seq_num_aes128(sn: &[u8], record_seq_num: &mut [u8], cipher_text: &[u8; 16]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HkdfExt` is never used [INFO] [stdout] --> src/crypto.rs:514:7 [INFO] [stdout] | [INFO] [stdout] 514 | trait HkdfExt { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hkdf_expand_label` is never used [INFO] [stdout] --> src/crypto.rs:528:4 [INFO] [stdout] | [INFO] [stdout] 528 | fn hkdf_expand_label( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_hello_retry_transcript_hash` is never used [INFO] [stdout] --> src/crypto.rs:554:4 [INFO] [stdout] | [INFO] [stdout] 554 | fn calculate_hello_retry_transcript_hash(client_hello_1_hash: &[u8]) -> H { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_verify_data` is never used [INFO] [stdout] --> src/crypto.rs:571:4 [INFO] [stdout] | [INFO] [stdout] 571 | fn encode_verify_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_verify_data` is never used [INFO] [stdout] --> src/crypto.rs:580:4 [INFO] [stdout] | [INFO] [stdout] 580 | fn check_verify_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_new_hkdf_state` is never used [INFO] [stdout] --> src/crypto.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn extract_new_hkdf_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_binder_value` is never used [INFO] [stdout] --> src/crypto.rs:641:4 [INFO] [stdout] | [INFO] [stdout] 641 | fn calculate_binder_value( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `empty_hash` is never used [INFO] [stdout] --> src/crypto.rs:657:4 [INFO] [stdout] | [INFO] [stdout] 657 | fn empty_hash() -> GenericArray::OutputSize> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_verify_data` is never used [INFO] [stdout] --> src/crypto.rs:663:8 [INFO] [stdout] | [INFO] [stdout] 663 | pub fn calculate_verify_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_in_place` is never used [INFO] [stdout] --> src/crypto.rs:677:4 [INFO] [stdout] | [INFO] [stdout] 677 | fn encrypt_in_place( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_in_place` is never used [INFO] [stdout] --> src/crypto.rs:693:4 [INFO] [stdout] | [INFO] [stdout] 693 | fn decrypt_in_place( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `derive_traffic_secret` is never used [INFO] [stdout] --> src/crypto.rs:711:4 [INFO] [stdout] | [INFO] [stdout] 711 | fn derive_traffic_secret< [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling std-embedded-time v0.1.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling polling v3.7.4 [INFO] [stderr] Compiling tokio v1.43.0 [INFO] [stderr] Compiling async-io v2.4.0 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling async-global-executor v2.4.1 [INFO] [stderr] Compiling async-std v1.13.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling std-embedded-nal-async v0.3.0 [INFO] [stdout] warning: unused import: `record_parsing::parse_ciphertext_record` [INFO] [stdout] --> src/record_parsing.rs:316:40 [INFO] [stdout] | [INFO] [stdout] 316 | use crate::{crypto::TrafficSecret, record_parsing::parse_ciphertext_record, EpochState}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Sha256` found for enum `HashFunction` in the current scope [INFO] [stdout] --> tests/tests.rs:340:66 [INFO] [stdout] | [INFO] [stdout] 340 | let psks = [Psk::new(&[123], &[1, 2, 3, 4, 5], HashFunction::Sha256)]; [INFO] [stdout] | ^^^^^^ variant or associated item not found in `HashFunction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0599`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rusty-dtls` (test "tests") due to 1 previous error [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 291 | / match secret { [INFO] [stdout] 292 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 293 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 294 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 301 | | TrafficSecret::None => panic!(), [INFO] [stdout] 302 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 303 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:333:5 [INFO] [stdout] | [INFO] [stdout] 321 | / match secret { [INFO] [stdout] 322 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 323 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 324 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 331 | | TrafficSecret::None => panic!(), [INFO] [stdout] 332 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 333 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:357:5 [INFO] [stdout] | [INFO] [stdout] 344 | / match secret { [INFO] [stdout] 345 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 346 | | TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] 347 | | traffic_secret: _, [INFO] [stdout] ... | [INFO] [stdout] 355 | | TrafficSecret::None => panic!(), [INFO] [stdout] 356 | | }; [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 357 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:434:9 [INFO] [stdout] | [INFO] [stdout] 424 | / match self { [INFO] [stdout] 425 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 426 | | CipherDependentCryptoState::Aes128GcmSha256 { [INFO] [stdout] 427 | | transcript_hash: _, [INFO] [stdout] ... | [INFO] [stdout] 432 | | CipherDependentCryptoState::None => panic!(), [INFO] [stdout] 433 | | } [INFO] [stdout] | |_________- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 434 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/crypto.rs:620:5 [INFO] [stdout] | [INFO] [stdout] 614 | let valid = match psk.hash_function { [INFO] [stdout] | _________________- [INFO] [stdout] 615 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 616 | | HashFunction::Sha256 => { [INFO] [stdout] 617 | | received_binder == calculate_binder_value::(psk, transcript_hash)?.as_slice() [INFO] [stdout] 618 | | } [INFO] [stdout] 619 | | }; [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 620 | Ok(valid) [INFO] [stdout] | ^^^^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/crypto.rs:634:5 [INFO] [stdout] | [INFO] [stdout] 630 | let binder: &[u8] = match psk.hash_function { [INFO] [stdout] | _________________________- [INFO] [stdout] 631 | | #[cfg(feature = "aes128gcm_sha256")] [INFO] [stdout] 632 | | HashFunction::Sha256 => &calculate_binder_value::(psk, transcript_hash)?, [INFO] [stdout] 633 | | }; [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 634 | / Parser::new_mut_slice(buffer, binder)? [INFO] [stdout] 635 | | .write_len_u8() [INFO] [stdout] 636 | | .write_slice() [INFO] [stdout] 637 | | .end(); [INFO] [stdout] | |_______________^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant named `Aes128GcmSha256` found for enum `TrafficSecret` [INFO] [stdout] --> src/record_parsing.rs:336:49 [INFO] [stdout] | [INFO] [stdout] 336 | read_traffic_secret: TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ variant not found in `TrafficSecret` [INFO] [stdout] | [INFO] [stdout] ::: src/crypto.rs:261:1 [INFO] [stdout] | [INFO] [stdout] 261 | pub enum TrafficSecret { [INFO] [stdout] | ---------------------- variant `Aes128GcmSha256` not found here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant named `Aes128GcmSha256` found for enum `TrafficSecret` [INFO] [stdout] --> src/record_parsing.rs:342:50 [INFO] [stdout] | [INFO] [stdout] 342 | write_traffic_secret: TrafficSecret::Aes128GcmSha256 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ variant not found in `TrafficSecret` [INFO] [stdout] | [INFO] [stdout] ::: src/crypto.rs:261:1 [INFO] [stdout] | [INFO] [stdout] 261 | pub enum TrafficSecret { [INFO] [stdout] | ---------------------- variant `Aes128GcmSha256` not found here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `partial_client_hello` [INFO] [stdout] --> src/crypto.rs:53:28 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn finalize(&self, partial_client_hello: &[&[u8]]) -> FinalizedPskTranscriptHashes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_client_hello` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record_seq_num` [INFO] [stdout] --> src/crypto.rs:287:5 [INFO] [stdout] | [INFO] [stdout] 287 | record_seq_num: &u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `additional_data` [INFO] [stdout] --> src/crypto.rs:288:5 [INFO] [stdout] | [INFO] [stdout] 288 | additional_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `plaintext` [INFO] [stdout] --> src/crypto.rs:289:5 [INFO] [stdout] | [INFO] [stdout] 289 | plaintext: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plaintext` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record_seq_num` [INFO] [stdout] --> src/crypto.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | record_seq_num: &u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_seq_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `additional_data` [INFO] [stdout] --> src/crypto.rs:318:5 [INFO] [stdout] | [INFO] [stdout] 318 | additional_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_additional_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphertext` [INFO] [stdout] --> src/crypto.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 319 | ciphertext: &mut [u8], [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphertext` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `psk` [INFO] [stdout] --> src/crypto.rs:386:13 [INFO] [stdout] | [INFO] [stdout] 386 | let psk = if let Some(psk) = psk { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_psk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hashes` [INFO] [stdout] --> src/crypto.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | hashes: CryptoInformation, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ikm` [INFO] [stdout] --> src/crypto.rs:423:46 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn extract_new_hkdf_state(&mut self, ikm: Option<&[u8]>) -> Result<(), DtlsError> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ikm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/crypto.rs:437:41 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn derive_traffic_secret(&self, label: &str) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/crypto.rs:481:13 [INFO] [stdout] | [INFO] [stdout] 480 | (CipherDependentCryptoState::None, _) => panic!(), [INFO] [stdout] | ------------------------------------- matches all the relevant values [INFO] [stdout] 481 | (_, TrafficSecret::None) => panic!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:459:9 [INFO] [stdout] | [INFO] [stdout] 459 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/crypto.rs:509:13 [INFO] [stdout] | [INFO] [stdout] 508 | (CipherDependentCryptoState::None, _) => panic!(), [INFO] [stdout] | ------------------------------------- matches all the relevant values [INFO] [stdout] 509 | (_, TrafficSecret::None) => panic!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:487:9 [INFO] [stdout] | [INFO] [stdout] 487 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid` [INFO] [stdout] --> src/crypto.rs:614:9 [INFO] [stdout] | [INFO] [stdout] 614 | let valid = match psk.hash_function { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_valid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binder` [INFO] [stdout] --> src/crypto.rs:630:9 [INFO] [stdout] | [INFO] [stdout] 630 | let binder: &[u8] = match psk.hash_function { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/crypto.rs:624:5 [INFO] [stdout] | [INFO] [stdout] 624 | buffer: &mut ParseBuffer<'_>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/parsing.rs:393:20 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ---------------------------- any code following this expression is unreachable [INFO] [stdout] 393 | for psk in psks.iter().filter(|p| p.hash_function == hash_fn) { [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited [INFO] [stdout] --> src/parsing.rs:392:23 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `transcript_hash` [INFO] [stdout] --> src/parsing.rs:391:13 [INFO] [stdout] | [INFO] [stdout] 391 | let transcript_hash = transcript_hash.psk_hash_mut()?.finalize(&[]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcript_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_fn` [INFO] [stdout] --> src/parsing.rs:392:13 [INFO] [stdout] | [INFO] [stdout] 392 | let hash_fn = cipher_suite.hash_function(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_fn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable definition [INFO] [stdout] --> src/parsing.rs:899:13 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | --------------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 899 | let mut selected_psk_index = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unreachable definition [INFO] [stdout] | [INFO] [stdout] note: this expression has type `HashFunction`, which is uninhabited [INFO] [stdout] --> src/parsing.rs:898:32 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_suite_hash_fn` [INFO] [stdout] --> src/parsing.rs:898:9 [INFO] [stdout] | [INFO] [stdout] 898 | let cipher_suite_hash_fn = info.selected_cipher_suite.unwrap().hash_function(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_suite_hash_fn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `client_hello_start` [INFO] [stdout] --> src/parsing.rs:890:5 [INFO] [stdout] | [INFO] [stdout] 890 | client_hello_start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_hello_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parsing.rs:893:9 [INFO] [stdout] | [INFO] [stdout] 893 | let mut psk_ids_len_left = Parser::read_single_u16(buffer)? as usize; [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] For more information about this error, try `rustc --explain E0599`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rusty-dtls` (lib test) due to 2 previous errors; 32 warnings emitted [INFO] running `Command { std: "docker" "inspect" "b5e62f576a2e019c9f376c8ffae3a2d951b5dc54624c99bd28580f3d4ebe5cf3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b5e62f576a2e019c9f376c8ffae3a2d951b5dc54624c99bd28580f3d4ebe5cf3", kill_on_drop: false }` [INFO] [stdout] b5e62f576a2e019c9f376c8ffae3a2d951b5dc54624c99bd28580f3d4ebe5cf3