[INFO] crate openssl 0.10.15 is already in cache [INFO] extracting crate openssl 0.10.15 into work/ex/clippy-test-run/sources/stable/reg/openssl/0.10.15 [INFO] extracting crate openssl 0.10.15 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/openssl/0.10.15 [INFO] validating manifest of openssl-0.10.15 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of openssl-0.10.15 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing openssl-0.10.15 [INFO] finished frobbing openssl-0.10.15 [INFO] frobbed toml for openssl-0.10.15 written to work/ex/clippy-test-run/sources/stable/reg/openssl/0.10.15/Cargo.toml [INFO] started frobbing openssl-0.10.15 [INFO] finished frobbing openssl-0.10.15 [INFO] frobbed toml for openssl-0.10.15 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/openssl/0.10.15/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting openssl-0.10.15 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/openssl/0.10.15:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 24fcf7e8f93eaf929e3e0b008454379a8da008e62d39e504e310df4c6582c8cd [INFO] running `"docker" "start" "-a" "24fcf7e8f93eaf929e3e0b008454379a8da008e62d39e504e310df4c6582c8cd"` [INFO] [stderr] Compiling openssl v0.10.15 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hash.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | ctx: ctx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hash.rs:200:17 [INFO] [stderr] | [INFO] [stderr] 200 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hash.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | ctx: ctx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ocsp.rs:194:21 [INFO] [stderr] | [INFO] [stderr] 194 | revocation_time: revocation_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `revocation_time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs12.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | pkey: pkey, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pkey` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs12.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | cert: cert, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs12.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | chain: chain, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `chain` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs5.rs:77:24 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(KeyIvPair { key: key, iv: iv }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs5.rs:77:34 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(KeyIvPair { key: key, iv: iv }) [INFO] [stderr] | ^^^^^^ help: replace it with: `iv` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/rsa.rs:571:9 [INFO] [stderr] | [INFO] [stderr] 571 | q: BigNum, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ssl/bio.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | stream: stream, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hash.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | ctx: ctx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hash.rs:200:17 [INFO] [stderr] | [INFO] [stderr] 200 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hash.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | ctx: ctx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ocsp.rs:194:21 [INFO] [stderr] | [INFO] [stderr] 194 | revocation_time: revocation_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `revocation_time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs12.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | pkey: pkey, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pkey` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs12.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | cert: cert, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cert` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs12.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | chain: chain, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `chain` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs5.rs:77:24 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(KeyIvPair { key: key, iv: iv }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/pkcs5.rs:77:34 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(KeyIvPair { key: key, iv: iv }) [INFO] [stderr] | ^^^^^^ help: replace it with: `iv` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/symm.rs:345:17 [INFO] [stderr] | [INFO] [stderr] 345 | ctx: ctx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/rsa.rs:571:9 [INFO] [stderr] | [INFO] [stderr] 571 | q: BigNum, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ssl/bio.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | stream: stream, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/symm.rs:345:17 [INFO] [stderr] | [INFO] [stderr] 345 | ctx: ctx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ssl/bio.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | return Ok((bio, method)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((bio, method))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ssl/bio.rs:199:21 [INFO] [stderr] | [INFO] [stderr] 199 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/ssl/connector.rs:32:29 [INFO] [stderr] | [INFO] [stderr] 32 | if version::number() >= 0x1_00_01_08_0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0x1000_1080` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bn.rs:1356:35 [INFO] [stderr] | [INFO] [stderr] 1356 | let v0 = BigNum::from_u32(10203004).unwrap(); [INFO] [stderr] | ^^^^^^^^ help: consider: `10_203_004` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bn.rs:1365:34 [INFO] [stderr] | [INFO] [stderr] 1365 | let a = BigNum::from_u32(909829283).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: consider: `909_829_283` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bn.rs:1373:34 [INFO] [stderr] | [INFO] [stderr] 1373 | let a = BigNum::from_u32(909829283).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: consider: `909_829_283` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bn.rs:1381:38 [INFO] [stderr] | [INFO] [stderr] 1381 | let range = BigNum::from_u32(909829283).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: consider: `909_829_283` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bn.rs:1389:38 [INFO] [stderr] | [INFO] [stderr] 1389 | let range = BigNum::from_u32(909829283).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: consider: `909_829_283` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bn.rs:1397:34 [INFO] [stderr] | [INFO] [stderr] 1397 | let a = BigNum::from_u32(19029017).unwrap(); [INFO] [stderr] | ^^^^^^^^ help: consider: `19_029_017` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/hash.rs:321:25 [INFO] [stderr] | [INFO] [stderr] 321 | const md5_tests: [(&'static str, &'static str); 13] = [ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/hash.rs:321:39 [INFO] [stderr] | [INFO] [stderr] 321 | const md5_tests: [(&'static str, &'static str); 13] = [ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/sign.rs:514:19 [INFO] [stderr] | [INFO] [stderr] 514 | const INPUT: &'static str = [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/sign.rs:519:23 [INFO] [stderr] | [INFO] [stderr] 519 | const SIGNATURE: &'static str = [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ssl/bio.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | return Ok((bio, method)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((bio, method))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ssl/bio.rs:199:21 [INFO] [stderr] | [INFO] [stderr] 199 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/ssl/connector.rs:32:29 [INFO] [stderr] | [INFO] [stderr] 32 | if version::number() >= 0x1_00_01_08_0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0x1000_1080` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/ssl/test.rs:1712:20 [INFO] [stderr] | [INFO] [stderr] 1712 | const CIPHER: &'static str = "PSK-AES128-CBC-SHA"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/asn1.rs:119:31 [INFO] [stderr] | [INFO] [stderr] 119 | Asn1Time::from_period(days as c_long * 60 * 60 * 24) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(days)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: item `asn1::Asn1StringRef` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/asn1.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | / impl Asn1StringRef { [INFO] [stderr] 141 | | /// Converts the ASN.1 underlying format to UTF8 [INFO] [stderr] 142 | | /// [INFO] [stderr] 143 | | /// ASN.1 strings may utilize UTF-16, ASCII, BMP, or UTF8. This is important to [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/asn1.rs:221:61 [INFO] [stderr] | [INFO] [stderr] 221 | unsafe { cvt(::ffi::ASN1_INTEGER_set(self.as_ptr(), value as c_long)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: item `asn1::Asn1BitStringRef` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/asn1.rs:241:1 [INFO] [stderr] | [INFO] [stderr] 241 | / impl Asn1BitStringRef { [INFO] [stderr] 242 | | /// Returns the Asn1BitString as a slice [INFO] [stderr] 243 | | pub fn as_slice(&self) -> &[u8] { [INFO] [stderr] 244 | | unsafe { slice::from_raw_parts(ASN1_STRING_get0_data(self.as_ptr() as *mut _), self.len()) } [INFO] [stderr] ... | [INFO] [stderr] 249 | | } [INFO] [stderr] 250 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:168:54 [INFO] [stderr] | [INFO] [stderr] 168 | unsafe { cvt(ffi::BN_add_word(self.as_ptr(), w as ffi::BN_ULONG)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:177:54 [INFO] [stderr] | [INFO] [stderr] 177 | unsafe { cvt(ffi::BN_sub_word(self.as_ptr(), w as ffi::BN_ULONG)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:186:54 [INFO] [stderr] | [INFO] [stderr] 186 | unsafe { cvt(ffi::BN_mul_word(self.as_ptr(), w as ffi::BN_ULONG)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:200:20 [INFO] [stderr] | [INFO] [stderr] 200 | Ok(r.into()) [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `r` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:216:20 [INFO] [stderr] | [INFO] [stderr] 216 | Ok(r.into()) [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:248:53 [INFO] [stderr] | [INFO] [stderr] 248 | unsafe { cvt(ffi::BN_set_bit(self.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:259:55 [INFO] [stderr] | [INFO] [stderr] 259 | unsafe { cvt(ffi::BN_clear_bit(self.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:268:52 [INFO] [stderr] | [INFO] [stderr] 268 | unsafe { ffi::BN_is_bit_set(self.as_ptr(), n.into()) == 1 } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:279:55 [INFO] [stderr] | [INFO] [stderr] 279 | unsafe { cvt(ffi::BN_mask_bits(self.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:326:64 [INFO] [stderr] | [INFO] [stderr] 326 | unsafe { cvt(ffi::BN_lshift(self.as_ptr(), a.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:335:64 [INFO] [stderr] | [INFO] [stderr] 335 | unsafe { cvt(ffi::BN_rshift(self.as_ptr(), a.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:423:17 [INFO] [stderr] | [INFO] [stderr] 423 | bits.into(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:439:17 [INFO] [stderr] | [INFO] [stderr] 439 | bits.into(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:803:17 [INFO] [stderr] | [INFO] [stderr] 803 | checks.into(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `checks` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:832:17 [INFO] [stderr] | [INFO] [stderr] 832 | checks.into(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `checks` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:918:46 [INFO] [stderr] | [INFO] [stderr] 918 | cvt(ffi::BN_set_word(v.as_ptr(), n as ffi::BN_ULONG)).map(|_| v) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/cms.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | flags.into(), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `flags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: item `derive::Deriver<'a>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/derive.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | / impl<'a> Deriver<'a> { [INFO] [stderr] 18 | | /// Creates a new `Deriver` using the provided private key. [INFO] [stderr] 19 | | /// [INFO] [stderr] 20 | | /// This corresponds to [`EVP_PKEY_derive_init`]. [INFO] [stderr] ... | [INFO] [stderr] 91 | | } [INFO] [stderr] 92 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/error.rs:168:26 [INFO] [stderr] | [INFO] [stderr] 168 | *ptr.offset(data.len() as isize) = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(data.len())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ex_data.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hash.rs:71:19 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn as_ptr(&self) -> *const ffi::EVP_MD { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hash.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/hash.rs:163:59 [INFO] [stderr] | [INFO] [stderr] 163 | cvt(ffi::EVP_DigestInit_ex(self.ctx, self.md, 0 as *mut _))?; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:65:33 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn signature_algorithms(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:84:22 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn long_name(&self) -> Result<&'static str, ErrorStack> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:95:23 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn short_name(&self) -> Result<&'static str, ErrorStack> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ocsp.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ocsp.rs:65:19 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ocsp.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ocsp.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | nsec as c_long, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(nsec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ocsp.rs:132:32 [INFO] [stderr] | [INFO] [stderr] 132 | maxsec.map(|n| n as c_long).unwrap_or(-1), [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/pkcs5.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | count.into(), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/pkey.rs:84:19 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/pkey.rs:374:25 [INFO] [stderr] | [INFO] [stderr] 374 | pub fn cmac(cipher: &::symm::Cipher, key: &[u8]) -> Result, ErrorStack> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `::symm::Cipher` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rsa.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/rsa.rs:566:5 [INFO] [stderr] | [INFO] [stderr] 566 | / pub fn from_private_components( [INFO] [stderr] 567 | | n: BigNum, [INFO] [stderr] 568 | | e: BigNum, [INFO] [stderr] 569 | | d: BigNum, [INFO] [stderr] ... | [INFO] [stderr] 579 | | .build()) [INFO] [stderr] 580 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha1` [INFO] [stderr] --> src/sha.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / pub fn new() -> Sha1 { [INFO] [stderr] 119 | | unsafe { [INFO] [stderr] 120 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 121 | | ffi::SHA1_Init(&mut ctx); [INFO] [stderr] 122 | | Sha1(ctx) [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 115 | impl Default for sha::Sha1 { [INFO] [stderr] 116 | fn default() -> Self { [INFO] [stderr] 117 | Self::new() [INFO] [stderr] 118 | } [INFO] [stderr] 119 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha224` [INFO] [stderr] --> src/sha.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | / pub fn new() -> Sha224 { [INFO] [stderr] 154 | | unsafe { [INFO] [stderr] 155 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 156 | | ffi::SHA224_Init(&mut ctx); [INFO] [stderr] 157 | | Sha224(ctx) [INFO] [stderr] 158 | | } [INFO] [stderr] 159 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 150 | impl Default for sha::Sha224 { [INFO] [stderr] 151 | fn default() -> Self { [INFO] [stderr] 152 | Self::new() [INFO] [stderr] 153 | } [INFO] [stderr] 154 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha256` [INFO] [stderr] --> src/sha.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 188 | / pub fn new() -> Sha256 { [INFO] [stderr] 189 | | unsafe { [INFO] [stderr] 190 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 191 | | ffi::SHA256_Init(&mut ctx); [INFO] [stderr] 192 | | Sha256(ctx) [INFO] [stderr] 193 | | } [INFO] [stderr] 194 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 185 | impl Default for sha::Sha256 { [INFO] [stderr] 186 | fn default() -> Self { [INFO] [stderr] 187 | Self::new() [INFO] [stderr] 188 | } [INFO] [stderr] 189 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha384` [INFO] [stderr] --> src/sha.rs:223:5 [INFO] [stderr] | [INFO] [stderr] 223 | / pub fn new() -> Sha384 { [INFO] [stderr] 224 | | unsafe { [INFO] [stderr] 225 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 226 | | ffi::SHA384_Init(&mut ctx); [INFO] [stderr] 227 | | Sha384(ctx) [INFO] [stderr] 228 | | } [INFO] [stderr] 229 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 220 | impl Default for sha::Sha384 { [INFO] [stderr] 221 | fn default() -> Self { [INFO] [stderr] 222 | Self::new() [INFO] [stderr] 223 | } [INFO] [stderr] 224 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha512` [INFO] [stderr] --> src/sha.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | / pub fn new() -> Sha512 { [INFO] [stderr] 259 | | unsafe { [INFO] [stderr] 260 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 261 | | ffi::SHA512_Init(&mut ctx); [INFO] [stderr] 262 | | Sha512(ctx) [INFO] [stderr] 263 | | } [INFO] [stderr] 264 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 255 | impl Default for sha::Sha512 { [INFO] [stderr] 256 | fn default() -> Self { [INFO] [stderr] 257 | Self::new() [INFO] [stderr] 258 | } [INFO] [stderr] 259 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `sign::Signer<'a>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/sign.rs:126:1 [INFO] [stderr] | [INFO] [stderr] 126 | / impl<'a> Signer<'a> { [INFO] [stderr] 127 | | /// Creates a new `Signer`. [INFO] [stderr] 128 | | /// [INFO] [stderr] 129 | | /// OpenSSL documentation at [`EVP_DigestSignInit`]. [INFO] [stderr] ... | [INFO] [stderr] 311 | | } [INFO] [stderr] 312 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/srtp.rs:47:19 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn as_raw(&self) -> c_ulong { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&'a ssl::bio::StreamState`) [INFO] [stderr] --> src/ssl/bio.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | let state: &'a StreamState = mem::transmute(BIO_get_data(bio)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(BIO_get_data(bio) as *const ssl::bio::StreamState)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/ssl/callbacks.rs:116:27 [INFO] [stderr] | [INFO] [stderr] 116 | let identity = if identity != ptr::null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/error.rs:21:19 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:306:19 [INFO] [stderr] | [INFO] [stderr] 306 | pub fn as_ptr(&self) -> *const ffi::SSL_METHOD { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:413:19 [INFO] [stderr] | [INFO] [stderr] 413 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:439:19 [INFO] [stderr] | [INFO] [stderr] 439 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:458:19 [INFO] [stderr] | [INFO] [stderr] 458 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ssl/mod.rs:1901:25 [INFO] [stderr] | [INFO] [stderr] 1901 | secret: secret_bits.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `secret_bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ssl/mod.rs:1902:28 [INFO] [stderr] | [INFO] [stderr] 1902 | algorithm: algo_bits.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `algo_bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/ssl/mod.rs:2631:16 [INFO] [stderr] | [INFO] [stderr] 2631 | if name == ptr::null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ssl/mod.rs:3216:12 [INFO] [stderr] | [INFO] [stderr] 3216 | if buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ssl/mod.rs:3238:12 [INFO] [stderr] | [INFO] [stderr] 3238 | if buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: item `stack::StackRef` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/stack.rs:176:1 [INFO] [stderr] | [INFO] [stderr] 176 | / impl StackRef { [INFO] [stderr] 177 | | fn as_stack(&self) -> *mut OPENSSL_STACK { [INFO] [stderr] 178 | | self.as_ptr() as *mut _ [INFO] [stderr] 179 | | } [INFO] [stderr] ... | [INFO] [stderr] 247 | | } [INFO] [stderr] 248 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:217:19 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn as_ptr(&self) -> *const ffi::EVP_CIPHER { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:222:20 [INFO] [stderr] | [INFO] [stderr] 222 | pub fn key_len(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:228:19 [INFO] [stderr] | [INFO] [stderr] 228 | pub fn iv_len(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:244:23 [INFO] [stderr] | [INFO] [stderr] 244 | pub fn block_size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:249:15 [INFO] [stderr] | [INFO] [stderr] 249 | fn is_ccm(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/symm.rs:710:5 [INFO] [stderr] | [INFO] [stderr] 710 | / let mut rest = 0; [INFO] [stderr] 711 | | [INFO] [stderr] 712 | | if !t.is_ccm() { [INFO] [stderr] 713 | | c.set_tag(tag)?; [INFO] [stderr] 714 | | rest = c.finalize(&mut out[count..])?; [INFO] [stderr] 715 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let rest = if !t.is_ccm() { ..; c.finalize(&mut out[count..])? } else { 0 };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::BasicConstraints` [INFO] [stderr] --> src/x509/extension.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / pub fn new() -> BasicConstraints { [INFO] [stderr] 39 | | BasicConstraints { [INFO] [stderr] 40 | | critical: false, [INFO] [stderr] 41 | | ca: false, [INFO] [stderr] 42 | | pathlen: None, [INFO] [stderr] 43 | | } [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 30 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::KeyUsage` [INFO] [stderr] --> src/x509/extension.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | / pub fn new() -> KeyUsage { [INFO] [stderr] 101 | | KeyUsage { [INFO] [stderr] 102 | | critical: false, [INFO] [stderr] 103 | | digital_signature: false, [INFO] [stderr] ... | [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 85 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::ExtendedKeyUsage` [INFO] [stderr] --> src/x509/extension.rs:233:5 [INFO] [stderr] | [INFO] [stderr] 233 | / pub fn new() -> ExtendedKeyUsage { [INFO] [stderr] 234 | | ExtendedKeyUsage { [INFO] [stderr] 235 | | critical: false, [INFO] [stderr] 236 | | server_auth: false, [INFO] [stderr] ... | [INFO] [stderr] 248 | | } [INFO] [stderr] 249 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::SubjectKeyIdentifier` [INFO] [stderr] --> src/x509/extension.rs:359:5 [INFO] [stderr] | [INFO] [stderr] 359 | / pub fn new() -> SubjectKeyIdentifier { [INFO] [stderr] 360 | | SubjectKeyIdentifier { critical: false } [INFO] [stderr] 361 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 353 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::AuthorityKeyIdentifier` [INFO] [stderr] --> src/x509/extension.rs:389:5 [INFO] [stderr] | [INFO] [stderr] 389 | / pub fn new() -> AuthorityKeyIdentifier { [INFO] [stderr] 390 | | AuthorityKeyIdentifier { [INFO] [stderr] 391 | | critical: false, [INFO] [stderr] 392 | | keyid: None, [INFO] [stderr] 393 | | issuer: None, [INFO] [stderr] 394 | | } [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 381 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::SubjectAlternativeName` [INFO] [stderr] --> src/x509/extension.rs:443:5 [INFO] [stderr] | [INFO] [stderr] 443 | / pub fn new() -> SubjectAlternativeName { [INFO] [stderr] 444 | | SubjectAlternativeName { [INFO] [stderr] 445 | | critical: false, [INFO] [stderr] 446 | | names: vec![], [INFO] [stderr] 447 | | } [INFO] [stderr] 448 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 436 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/x509/mod.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | cvt_p(ffi::X509_STORE_CTX_new()).map(|p| X509StoreContext(p)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `X509StoreContext` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/x509/mod.rs:820:5 [INFO] [stderr] | [INFO] [stderr] 820 | / pub fn entries_by_nid<'a>(&'a self, nid: Nid) -> X509NameEntries<'a> { [INFO] [stderr] 821 | | X509NameEntries { [INFO] [stderr] 822 | | name: self, [INFO] [stderr] 823 | | nid: Some(nid), [INFO] [stderr] 824 | | loc: -1, [INFO] [stderr] 825 | | } [INFO] [stderr] 826 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/x509/mod.rs:829:5 [INFO] [stderr] | [INFO] [stderr] 829 | / pub fn entries<'a>(&'a self) -> X509NameEntries<'a> { [INFO] [stderr] 830 | | X509NameEntries { [INFO] [stderr] 831 | | name: self, [INFO] [stderr] 832 | | nid: None, [INFO] [stderr] 833 | | loc: -1 [INFO] [stderr] 834 | | } [INFO] [stderr] 835 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/x509/mod.rs:1171:19 [INFO] [stderr] | [INFO] [stderr] 1171 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/x509/mod.rs:1180:25 [INFO] [stderr] | [INFO] [stderr] 1180 | pub fn error_string(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/x509/mod.rs:1184:56 [INFO] [stderr] | [INFO] [stderr] 1184 | let s = ffi::X509_verify_cert_error_string(self.0 as c_long); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/asn1.rs:119:31 [INFO] [stderr] | [INFO] [stderr] 119 | Asn1Time::from_period(days as c_long * 60 * 60 * 24) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(days)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: item `asn1::Asn1StringRef` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/asn1.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | / impl Asn1StringRef { [INFO] [stderr] 141 | | /// Converts the ASN.1 underlying format to UTF8 [INFO] [stderr] 142 | | /// [INFO] [stderr] 143 | | /// ASN.1 strings may utilize UTF-16, ASCII, BMP, or UTF8. This is important to [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/asn1.rs:221:61 [INFO] [stderr] | [INFO] [stderr] 221 | unsafe { cvt(::ffi::ASN1_INTEGER_set(self.as_ptr(), value as c_long)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: item `asn1::Asn1BitStringRef` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/asn1.rs:241:1 [INFO] [stderr] | [INFO] [stderr] 241 | / impl Asn1BitStringRef { [INFO] [stderr] 242 | | /// Returns the Asn1BitString as a slice [INFO] [stderr] 243 | | pub fn as_slice(&self) -> &[u8] { [INFO] [stderr] 244 | | unsafe { slice::from_raw_parts(ASN1_STRING_get0_data(self.as_ptr() as *mut _), self.len()) } [INFO] [stderr] ... | [INFO] [stderr] 249 | | } [INFO] [stderr] 250 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:168:54 [INFO] [stderr] | [INFO] [stderr] 168 | unsafe { cvt(ffi::BN_add_word(self.as_ptr(), w as ffi::BN_ULONG)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:177:54 [INFO] [stderr] | [INFO] [stderr] 177 | unsafe { cvt(ffi::BN_sub_word(self.as_ptr(), w as ffi::BN_ULONG)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:186:54 [INFO] [stderr] | [INFO] [stderr] 186 | unsafe { cvt(ffi::BN_mul_word(self.as_ptr(), w as ffi::BN_ULONG)).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:200:20 [INFO] [stderr] | [INFO] [stderr] 200 | Ok(r.into()) [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `r` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:216:20 [INFO] [stderr] | [INFO] [stderr] 216 | Ok(r.into()) [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:248:53 [INFO] [stderr] | [INFO] [stderr] 248 | unsafe { cvt(ffi::BN_set_bit(self.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:259:55 [INFO] [stderr] | [INFO] [stderr] 259 | unsafe { cvt(ffi::BN_clear_bit(self.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:268:52 [INFO] [stderr] | [INFO] [stderr] 268 | unsafe { ffi::BN_is_bit_set(self.as_ptr(), n.into()) == 1 } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:279:55 [INFO] [stderr] | [INFO] [stderr] 279 | unsafe { cvt(ffi::BN_mask_bits(self.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:326:64 [INFO] [stderr] | [INFO] [stderr] 326 | unsafe { cvt(ffi::BN_lshift(self.as_ptr(), a.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:335:64 [INFO] [stderr] | [INFO] [stderr] 335 | unsafe { cvt(ffi::BN_rshift(self.as_ptr(), a.as_ptr(), n.into())).map(|_| ()) } [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:423:17 [INFO] [stderr] | [INFO] [stderr] 423 | bits.into(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:439:17 [INFO] [stderr] | [INFO] [stderr] 439 | bits.into(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:803:17 [INFO] [stderr] | [INFO] [stderr] 803 | checks.into(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `checks` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bn.rs:832:17 [INFO] [stderr] | [INFO] [stderr] 832 | checks.into(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `checks` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/bn.rs:918:46 [INFO] [stderr] | [INFO] [stderr] 918 | cvt(ffi::BN_set_word(v.as_ptr(), n as ffi::BN_ULONG)).map(|_| v) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/cms.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | flags.into(), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `flags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: item `derive::Deriver<'a>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/derive.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | / impl<'a> Deriver<'a> { [INFO] [stderr] 18 | | /// Creates a new `Deriver` using the provided private key. [INFO] [stderr] 19 | | /// [INFO] [stderr] 20 | | /// This corresponds to [`EVP_PKEY_derive_init`]. [INFO] [stderr] ... | [INFO] [stderr] 91 | | } [INFO] [stderr] 92 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: The function/method `mul_generator` doesn't need a mutable reference [INFO] [stderr] --> src/ec.rs:855:55 [INFO] [stderr] | [INFO] [stderr] 855 | .mul_generator(&group, key.private_key(), &mut ctx) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let res =` [INFO] [stderr] --> src/ec.rs:883:9 [INFO] [stderr] | [INFO] [stderr] 883 | let res = dup_key.check_key().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] error: ==-comparison of unit values detected. This will always be true [INFO] [stderr] --> src/ec.rs:885:17 [INFO] [stderr] | [INFO] [stderr] 885 | assert!(res == ()); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unit_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_cmp [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ec.rs:893:21 [INFO] [stderr] | [INFO] [stderr] 893 | .decode("MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4".as_bytes()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ec.rs:896:21 [INFO] [stderr] | [INFO] [stderr] 896 | .decode("4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM".as_bytes()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ec.rs:910:21 [INFO] [stderr] | [INFO] [stderr] 910 | .decode("MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4".as_bytes()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ec.rs:913:21 [INFO] [stderr] | [INFO] [stderr] 913 | .decode("4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM".as_bytes()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/ecdsa.rs:190:17 [INFO] [stderr] | [INFO] [stderr] 190 | assert!(verification2 == false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!verification2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/ecdsa.rs:194:17 [INFO] [stderr] | [INFO] [stderr] 194 | assert!(verification3 == false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!verification3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/error.rs:168:26 [INFO] [stderr] | [INFO] [stderr] 168 | *ptr.offset(data.len() as isize) = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(data.len())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ex_data.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hash.rs:71:19 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn as_ptr(&self) -> *const ffi::EVP_MD { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hash.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/hash.rs:163:59 [INFO] [stderr] | [INFO] [stderr] 163 | cvt(ffi::EVP_DigestInit_ex(self.ctx, self.md, 0 as *mut _))?; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/hash.rs:314:9 [INFO] [stderr] | [INFO] [stderr] 314 | let _ = h.write_all(&Vec::from_hex(hashtest.0).unwrap()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:65:33 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn signature_algorithms(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:84:22 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn long_name(&self) -> Result<&'static str, ErrorStack> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/nid.rs:95:23 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn short_name(&self) -> Result<&'static str, ErrorStack> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ocsp.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ocsp.rs:65:19 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ocsp.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ocsp.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | nsec as c_long, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(nsec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/ocsp.rs:132:32 [INFO] [stderr] | [INFO] [stderr] 132 | maxsec.map(|n| n as c_long).unwrap_or(-1), [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/pkcs5.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | count.into(), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/pkey.rs:84:19 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/pkey.rs:374:25 [INFO] [stderr] | [INFO] [stderr] 374 | pub fn cmac(cipher: &::symm::Cipher, key: &[u8]) -> Result, ErrorStack> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `::symm::Cipher` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rsa.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/rsa.rs:566:5 [INFO] [stderr] | [INFO] [stderr] 566 | / pub fn from_private_components( [INFO] [stderr] 567 | | n: BigNum, [INFO] [stderr] 568 | | e: BigNum, [INFO] [stderr] 569 | | d: BigNum, [INFO] [stderr] ... | [INFO] [stderr] 579 | | .build()) [INFO] [stderr] 580 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/rsa.rs:867:19 [INFO] [stderr] | [INFO] [stderr] 867 | let msg = "Hello, world!".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Hello, world!"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/rsa.rs:887:19 [INFO] [stderr] | [INFO] [stderr] 887 | let msg = "foo".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"foo"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha1` [INFO] [stderr] --> src/sha.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / pub fn new() -> Sha1 { [INFO] [stderr] 119 | | unsafe { [INFO] [stderr] 120 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 121 | | ffi::SHA1_Init(&mut ctx); [INFO] [stderr] 122 | | Sha1(ctx) [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 115 | impl Default for sha::Sha1 { [INFO] [stderr] 116 | fn default() -> Self { [INFO] [stderr] 117 | Self::new() [INFO] [stderr] 118 | } [INFO] [stderr] 119 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha224` [INFO] [stderr] --> src/sha.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | / pub fn new() -> Sha224 { [INFO] [stderr] 154 | | unsafe { [INFO] [stderr] 155 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 156 | | ffi::SHA224_Init(&mut ctx); [INFO] [stderr] 157 | | Sha224(ctx) [INFO] [stderr] 158 | | } [INFO] [stderr] 159 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 150 | impl Default for sha::Sha224 { [INFO] [stderr] 151 | fn default() -> Self { [INFO] [stderr] 152 | Self::new() [INFO] [stderr] 153 | } [INFO] [stderr] 154 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha256` [INFO] [stderr] --> src/sha.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 188 | / pub fn new() -> Sha256 { [INFO] [stderr] 189 | | unsafe { [INFO] [stderr] 190 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 191 | | ffi::SHA256_Init(&mut ctx); [INFO] [stderr] 192 | | Sha256(ctx) [INFO] [stderr] 193 | | } [INFO] [stderr] 194 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 185 | impl Default for sha::Sha256 { [INFO] [stderr] 186 | fn default() -> Self { [INFO] [stderr] 187 | Self::new() [INFO] [stderr] 188 | } [INFO] [stderr] 189 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha384` [INFO] [stderr] --> src/sha.rs:223:5 [INFO] [stderr] | [INFO] [stderr] 223 | / pub fn new() -> Sha384 { [INFO] [stderr] 224 | | unsafe { [INFO] [stderr] 225 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 226 | | ffi::SHA384_Init(&mut ctx); [INFO] [stderr] 227 | | Sha384(ctx) [INFO] [stderr] 228 | | } [INFO] [stderr] 229 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 220 | impl Default for sha::Sha384 { [INFO] [stderr] 221 | fn default() -> Self { [INFO] [stderr] 222 | Self::new() [INFO] [stderr] 223 | } [INFO] [stderr] 224 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sha::Sha512` [INFO] [stderr] --> src/sha.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | / pub fn new() -> Sha512 { [INFO] [stderr] 259 | | unsafe { [INFO] [stderr] 260 | | let mut ctx = mem::uninitialized(); [INFO] [stderr] 261 | | ffi::SHA512_Init(&mut ctx); [INFO] [stderr] 262 | | Sha512(ctx) [INFO] [stderr] 263 | | } [INFO] [stderr] 264 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 255 | impl Default for sha::Sha512 { [INFO] [stderr] 256 | fn default() -> Self { [INFO] [stderr] 257 | Self::new() [INFO] [stderr] 258 | } [INFO] [stderr] 259 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `sign::Signer<'a>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/sign.rs:126:1 [INFO] [stderr] | [INFO] [stderr] 126 | / impl<'a> Signer<'a> { [INFO] [stderr] 127 | | /// Creates a new `Signer`. [INFO] [stderr] 128 | | /// [INFO] [stderr] 129 | | /// OpenSSL documentation at [`EVP_DigestSignInit`]. [INFO] [stderr] ... | [INFO] [stderr] 311 | | } [INFO] [stderr] 312 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/srtp.rs:47:19 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn as_raw(&self) -> c_ulong { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&'a ssl::bio::StreamState`) [INFO] [stderr] --> src/ssl/bio.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | let state: &'a StreamState = mem::transmute(BIO_get_data(bio)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(BIO_get_data(bio) as *const ssl::bio::StreamState)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/ssl/callbacks.rs:116:27 [INFO] [stderr] | [INFO] [stderr] 116 | let identity = if identity != ptr::null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/error.rs:21:19 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ssl/test.rs:409:22 [INFO] [stderr] | [INFO] [stderr] 409 | stream.write_all("hello".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"hello"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/ssl/test.rs:411:22 [INFO] [stderr] | [INFO] [stderr] 411 | stream.write_all(" there".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b" there"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/ssl/test.rs:442:5 [INFO] [stderr] | [INFO] [stderr] 442 | / io::copy(&mut stream, &mut io::sink()) [INFO] [stderr] 443 | | .ok() [INFO] [stderr] 444 | | .expect("read error"); [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/ssl/test.rs:457:5 [INFO] [stderr] | [INFO] [stderr] 457 | stream.read(&mut buf[..1]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/ssl/test.rs:464:5 [INFO] [stderr] | [INFO] [stderr] 464 | stream.read(&mut buf[..1]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ssl/test.rs:626:16 [INFO] [stderr] | [INFO] [stderr] 626 | if profilenames.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!profilenames.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:306:19 [INFO] [stderr] | [INFO] [stderr] 306 | pub fn as_ptr(&self) -> *const ffi::SSL_METHOD { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:413:19 [INFO] [stderr] | [INFO] [stderr] 413 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:439:19 [INFO] [stderr] | [INFO] [stderr] 439 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ssl/mod.rs:458:19 [INFO] [stderr] | [INFO] [stderr] 458 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ssl/mod.rs:1901:25 [INFO] [stderr] | [INFO] [stderr] 1901 | secret: secret_bits.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `secret_bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ssl/mod.rs:1902:28 [INFO] [stderr] | [INFO] [stderr] 1902 | algorithm: algo_bits.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `algo_bits` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/ssl/mod.rs:2631:16 [INFO] [stderr] | [INFO] [stderr] 2631 | if name == ptr::null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ssl/mod.rs:3216:12 [INFO] [stderr] | [INFO] [stderr] 3216 | if buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ssl/mod.rs:3238:12 [INFO] [stderr] | [INFO] [stderr] 3238 | if buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: item `stack::StackRef` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/stack.rs:176:1 [INFO] [stderr] | [INFO] [stderr] 176 | / impl StackRef { [INFO] [stderr] 177 | | fn as_stack(&self) -> *mut OPENSSL_STACK { [INFO] [stderr] 178 | | self.as_ptr() as *mut _ [INFO] [stderr] 179 | | } [INFO] [stderr] ... | [INFO] [stderr] 247 | | } [INFO] [stderr] 248 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:217:19 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn as_ptr(&self) -> *const ffi::EVP_CIPHER { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:222:20 [INFO] [stderr] | [INFO] [stderr] 222 | pub fn key_len(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:228:19 [INFO] [stderr] | [INFO] [stderr] 228 | pub fn iv_len(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:244:23 [INFO] [stderr] | [INFO] [stderr] 244 | pub fn block_size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/symm.rs:249:15 [INFO] [stderr] | [INFO] [stderr] 249 | fn is_ccm(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/symm.rs:710:5 [INFO] [stderr] | [INFO] [stderr] 710 | / let mut rest = 0; [INFO] [stderr] 711 | | [INFO] [stderr] 712 | | if !t.is_ccm() { [INFO] [stderr] 713 | | c.set_tag(tag)?; [INFO] [stderr] 714 | | rest = c.finalize(&mut out[count..])?; [INFO] [stderr] 715 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let rest = if !t.is_ccm() { ..; c.finalize(&mut out[count..])? } else { 0 };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::BasicConstraints` [INFO] [stderr] --> src/x509/extension.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / pub fn new() -> BasicConstraints { [INFO] [stderr] 39 | | BasicConstraints { [INFO] [stderr] 40 | | critical: false, [INFO] [stderr] 41 | | ca: false, [INFO] [stderr] 42 | | pathlen: None, [INFO] [stderr] 43 | | } [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 30 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::KeyUsage` [INFO] [stderr] --> src/x509/extension.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | / pub fn new() -> KeyUsage { [INFO] [stderr] 101 | | KeyUsage { [INFO] [stderr] 102 | | critical: false, [INFO] [stderr] 103 | | digital_signature: false, [INFO] [stderr] ... | [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 85 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::ExtendedKeyUsage` [INFO] [stderr] --> src/x509/extension.rs:233:5 [INFO] [stderr] | [INFO] [stderr] 233 | / pub fn new() -> ExtendedKeyUsage { [INFO] [stderr] 234 | | ExtendedKeyUsage { [INFO] [stderr] 235 | | critical: false, [INFO] [stderr] 236 | | server_auth: false, [INFO] [stderr] ... | [INFO] [stderr] 248 | | } [INFO] [stderr] 249 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::SubjectKeyIdentifier` [INFO] [stderr] --> src/x509/extension.rs:359:5 [INFO] [stderr] | [INFO] [stderr] 359 | / pub fn new() -> SubjectKeyIdentifier { [INFO] [stderr] 360 | | SubjectKeyIdentifier { critical: false } [INFO] [stderr] 361 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 353 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::AuthorityKeyIdentifier` [INFO] [stderr] --> src/x509/extension.rs:389:5 [INFO] [stderr] | [INFO] [stderr] 389 | / pub fn new() -> AuthorityKeyIdentifier { [INFO] [stderr] 390 | | AuthorityKeyIdentifier { [INFO] [stderr] 391 | | critical: false, [INFO] [stderr] 392 | | keyid: None, [INFO] [stderr] 393 | | issuer: None, [INFO] [stderr] 394 | | } [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 381 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `x509::extension::SubjectAlternativeName` [INFO] [stderr] --> src/x509/extension.rs:443:5 [INFO] [stderr] | [INFO] [stderr] 443 | / pub fn new() -> SubjectAlternativeName { [INFO] [stderr] 444 | | SubjectAlternativeName { [INFO] [stderr] 445 | | critical: false, [INFO] [stderr] 446 | | names: vec![], [INFO] [stderr] 447 | | } [INFO] [stderr] 448 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 436 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/x509/tests.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | let cert = X509::from_pem(cert).ok().expect("Failed to load PEM"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/x509/tests.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | let cert = X509::from_pem(cert).ok().expect("Failed to load PEM"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/x509/tests.rs:48:16 [INFO] [stderr] | [INFO] [stderr] 48 | let cert = X509::from_pem(cert).ok().expect("Failed to load PEM"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/x509/tests.rs:101:12 [INFO] [stderr] | [INFO] [stderr] 101 | if let Some(_) = all_entries.next() { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 102 | | assert!(false); [INFO] [stderr] 103 | | } [INFO] [stderr] | |_____- help: try this: `if all_entries.next().is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/x509/tests.rs:136:16 [INFO] [stderr] | [INFO] [stderr] 136 | let cert = X509::from_pem(cert).ok().expect("Failed to load PEM"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/x509/tests.rs:231:16 [INFO] [stderr] | [INFO] [stderr] 231 | assert_eq!("foobar.com".as_bytes(), cn.data().as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"foobar.com"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/x509/mod.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | cvt_p(ffi::X509_STORE_CTX_new()).map(|p| X509StoreContext(p)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `X509StoreContext` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/x509/mod.rs:820:5 [INFO] [stderr] | [INFO] [stderr] 820 | / pub fn entries_by_nid<'a>(&'a self, nid: Nid) -> X509NameEntries<'a> { [INFO] [stderr] 821 | | X509NameEntries { [INFO] [stderr] 822 | | name: self, [INFO] [stderr] 823 | | nid: Some(nid), [INFO] [stderr] 824 | | loc: -1, [INFO] [stderr] 825 | | } [INFO] [stderr] 826 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/x509/mod.rs:829:5 [INFO] [stderr] | [INFO] [stderr] 829 | / pub fn entries<'a>(&'a self) -> X509NameEntries<'a> { [INFO] [stderr] 830 | | X509NameEntries { [INFO] [stderr] 831 | | name: self, [INFO] [stderr] 832 | | nid: None, [INFO] [stderr] 833 | | loc: -1 [INFO] [stderr] 834 | | } [INFO] [stderr] 835 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/x509/mod.rs:1171:19 [INFO] [stderr] | [INFO] [stderr] 1171 | pub fn as_raw(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/x509/mod.rs:1180:25 [INFO] [stderr] | [INFO] [stderr] 1180 | pub fn error_string(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/x509/mod.rs:1184:56 [INFO] [stderr] | [INFO] [stderr] 1184 | let s = ffi::X509_verify_cert_error_string(self.0 as c_long); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `openssl`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "24fcf7e8f93eaf929e3e0b008454379a8da008e62d39e504e310df4c6582c8cd"` [INFO] running `"docker" "rm" "-f" "24fcf7e8f93eaf929e3e0b008454379a8da008e62d39e504e310df4c6582c8cd"` [INFO] [stdout] 24fcf7e8f93eaf929e3e0b008454379a8da008e62d39e504e310df4c6582c8cd