[INFO] updating cached repository https://github.com/docteurklein/inotify-sse [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] da1ec2459bfb1918295bd8fecc4d7ec38629a76b [INFO] testing docteurklein/inotify-sse against beta-2020-06-03 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdocteurklein%2Finotify-sse" "/workspace/builds/worker-1/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/docteurklein/inotify-sse on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/docteurklein/inotify-sse [INFO] finished tweaking git repo https://github.com/docteurklein/inotify-sse [INFO] tweaked toml for git repo https://github.com/docteurklein/inotify-sse written to /workspace/builds/worker-1/source/Cargo.toml [INFO] crate git repo https://github.com/docteurklein/inotify-sse already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stdout] 87fe2bc84d749b5fb38fda7d38c02807fbcb44955f6fe328ef84429fef31e7e7 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "87fe2bc84d749b5fb38fda7d38c02807fbcb44955f6fe328ef84429fef31e7e7"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Compiling cfg-if v0.1.9 [INFO] [stderr] Compiling byteorder v1.3.2 [INFO] [stderr] Compiling autocfg v0.1.6 [INFO] [stderr] Compiling futures v0.1.28 [INFO] [stderr] Compiling either v1.5.2 [INFO] [stderr] Compiling cc v1.0.41 [INFO] [stderr] Compiling memchr v2.2.1 [INFO] [stderr] Compiling fnv v1.0.6 [INFO] [stderr] Compiling stable_deref_trait v1.1.1 [INFO] [stderr] Compiling glob v0.3.0 [INFO] [stderr] Compiling smallvec v0.6.10 [INFO] [stderr] Compiling scopeguard v0.3.3 [INFO] [stderr] Compiling bitflags v1.1.0 [INFO] [stderr] Compiling arrayvec v0.4.11 [INFO] [stderr] Compiling nodrop v0.1.13 [INFO] [stderr] Compiling unicode-width v0.1.6 [INFO] [stderr] Compiling regex-syntax v0.6.11 [INFO] [stderr] Compiling scopeguard v1.0.0 [INFO] [stderr] Compiling quick-error v1.2.2 [INFO] [stderr] Compiling bindgen v0.51.0 [INFO] [stderr] Compiling termcolor v1.0.5 [INFO] [stderr] Compiling shlex v0.1.1 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling proc-macro2 v1.0.1 [INFO] [stderr] Compiling itoa v0.4.4 [INFO] [stderr] Compiling serde v1.0.99 [INFO] [stderr] Compiling syn v1.0.5 [INFO] [stderr] Compiling ryu v1.0.0 [INFO] [stderr] Compiling indexmap v1.1.0 [INFO] [stderr] Compiling safemem v0.3.2 [INFO] [stderr] Compiling same-file v1.0.5 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling thread_local v0.3.6 [INFO] [stderr] Compiling nom v4.2.3 [INFO] [stderr] Compiling crossbeam-utils v0.6.6 [INFO] [stderr] Compiling owning_ref v0.4.0 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling humantime v1.2.0 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling walkdir v2.2.9 [INFO] [stderr] Compiling parking_lot_core v0.4.0 [INFO] [stderr] Compiling memoffset v0.5.1 [INFO] [stderr] Compiling hyper v0.12.33 [INFO] [stderr] Compiling lock_api v0.1.5 [INFO] [stderr] Compiling clang-sys v0.28.1 [INFO] [stderr] Compiling crossbeam-queue v0.1.2 [INFO] [stderr] Compiling crossbeam-epoch v0.7.2 [INFO] [stderr] Compiling fxhash v0.2.1 [INFO] [stderr] Compiling base64 v0.9.3 [INFO] [stderr] Compiling aho-corasick v0.7.6 [INFO] [stderr] Compiling backtrace-sys v0.1.31 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling iovec v0.1.2 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling num_cpus v1.10.1 [INFO] [stderr] Compiling net2 v0.2.33 [INFO] [stderr] Compiling atty v0.2.13 [INFO] [stderr] Compiling time v0.1.42 [INFO] [stderr] Compiling inotify-sys v0.1.3 [INFO] [stderr] Compiling clap v2.33.0 [INFO] [stderr] Compiling crossbeam-deque v0.7.1 [INFO] [stderr] Compiling bytes v0.4.12 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Compiling tokio-executor v0.1.8 [INFO] [stderr] Compiling tokio-sync v0.1.6 [INFO] [stderr] Compiling want v0.2.0 [INFO] [stderr] Compiling futures-cpupool v0.1.8 [INFO] [stderr] Compiling mio v0.6.19 [INFO] [stderr] Compiling tokio-timer v0.2.11 [INFO] [stderr] Compiling tokio-current-thread v0.1.6 [INFO] [stderr] Compiling tokio-io v0.1.12 [INFO] [stderr] Compiling http v0.1.18 [INFO] [stderr] Compiling string v0.2.1 [INFO] [stderr] Compiling tokio-buf v0.1.1 [INFO] [stderr] Compiling cexpr v0.3.5 [INFO] [stderr] Compiling backtrace v0.3.35 [INFO] [stderr] Compiling tokio-codec v0.1.1 [INFO] [stderr] Compiling tokio-threadpool v0.1.15 [INFO] [stderr] Compiling failure v0.1.5 [INFO] [stderr] Compiling mio-uds v0.6.7 [INFO] [stderr] Compiling regex v1.2.1 [INFO] [stderr] Compiling parking_lot v0.7.1 [INFO] [stderr] Compiling which v2.0.1 [INFO] [stderr] Compiling tokio-reactor v0.1.9 [INFO] [stderr] Compiling tokio-fs v0.1.6 [INFO] [stderr] Compiling tokio-tcp v0.1.3 [INFO] [stderr] Compiling tokio-udp v0.1.4 [INFO] [stderr] Compiling tokio-uds v0.2.5 [INFO] [stderr] Compiling tokio v0.1.22 [INFO] [stderr] Compiling env_logger v0.6.2 [INFO] [stderr] Compiling http-body v0.1.0 [INFO] [stderr] Compiling h2 v0.1.26 [INFO] [stderr] Compiling inotify v0.7.0 [INFO] [stderr] Compiling serde_derive v1.0.99 [INFO] [stderr] Compiling serde_json v1.0.40 [INFO] [stderr] Compiling libhydrogen-sys v0.7.3 [INFO] [stderr] error[E0277]: arrays only have std trait implementations for lengths 0..=32 [INFO] [stderr] --> /opt/rustwide/target/debug/build/libhydrogen-sys-84ae6716f7dd42f9/out/bindings.rs:3:6448 [INFO] [stderr] | [INFO] [stderr] 3 | pub const HYDRO_VERSION_MAJOR : u32 = 1 ; pub const HYDRO_VERSION_MINOR : u32 = 0 ; pub const hydro_random_SEEDBYTES : u32 = 32 ; pub const hydro_hash_BYTES : u32 = 32 ; pub const hydro_hash_BYTES_MAX : u32 = 65535 ; pub const hydro_hash_BYTES_MIN : u32 = 16 ; pub const hydro_hash_CONTEXTBYTES : u32 = 8 ; pub const hydro_hash_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_CONTEXTBYTES : u32 = 8 ; pub const hydro_secretbox_HEADERBYTES : u32 = 36 ; pub const hydro_secretbox_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_PROBEBYTES : u32 = 16 ; pub const hydro_kdf_CONTEXTBYTES : u32 = 8 ; pub const hydro_kdf_KEYBYTES : u32 = 32 ; pub const hydro_kdf_BYTES_MAX : u32 = 65535 ; pub const hydro_kdf_BYTES_MIN : u32 = 16 ; pub const hydro_sign_BYTES : u32 = 64 ; pub const hydro_sign_CONTEXTBYTES : u32 = 8 ; pub const hydro_sign_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_sign_SECRETKEYBYTES : u32 = 64 ; pub const hydro_sign_SEEDBYTES : u32 = 32 ; pub const hydro_kx_SESSIONKEYBYTES : u32 = 32 ; pub const hydro_kx_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_kx_SECRETKEYBYTES : u32 = 32 ; pub const hydro_kx_PSKBYTES : u32 = 32 ; pub const hydro_kx_SEEDBYTES : u32 = 32 ; pub const hydro_kx_N_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET2BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET2BYTES : u32 = 80 ; pub const hydro_kx_XX_PACKET3BYTES : u32 = 48 ; pub const hydro_pwhash_CONTEXTBYTES : u32 = 8 ; pub const hydro_pwhash_MASTERKEYBYTES : u32 = 32 ; pub const hydro_pwhash_STOREDBYTES : u32 = 128 ; pub const HYDRO_HWTYPE_ATMEGA328 : u32 = 1 ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; extern "C" { pub fn hydro_init ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_random_u32 ( ) -> u32 ; } extern "C" { pub fn hydro_random_uniform ( upper_bound : u32 ) -> u32 ; } extern "C" { pub fn hydro_random_buf ( out : * mut :: std :: os :: raw :: c_void , out_len : usize ) ; } extern "C" { pub fn hydro_random_buf_deterministic ( out : * mut :: std :: os :: raw :: c_void , out_len : usize , seed : * const u8 ) ; } extern "C" { pub fn hydro_random_ratchet ( ) ; } extern "C" { pub fn hydro_random_reseed ( ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_hash_state { pub state : [ u32 ; 12usize ] , pub buf_off : u8 , pub align : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_hydro_hash_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_hash_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_hash_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . state as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . buf_off as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( buf_off ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . align as * const _ as usize } , 49usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( align ) ) ) ; } extern "C" { pub fn hydro_hash_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_hash_init ( state : * mut hydro_hash_state , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_update ( state : * mut hydro_hash_state , in_ : * const :: std :: os :: raw :: c_void , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_final ( state : * mut hydro_hash_state , out : * mut u8 , out_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_hash ( out : * mut u8 , out_len : usize , in_ : * const :: std :: os :: raw :: c_void , in_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_secretbox_encrypt ( c : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_decrypt ( m_ : * mut :: std :: os :: raw :: c_void , c : * const u8 , clen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_probe_create ( probe : * mut u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) ; } extern "C" { pub fn hydro_secretbox_probe_verify ( probe : * const u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kdf_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_kdf_derive_from_key ( subkey : * mut u8 , subkey_len : usize , subkey_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_state { pub hash_st : hydro_hash_state , } # [ test ] fn bindgen_test_layout_hydro_sign_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_state > ( ) ) ) . hash_st as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_state ) , "::" , stringify ! ( hash_st ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 64usize ] , } # [ test ] fn bindgen_test_layout_hydro_sign_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_keypair > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( sk ) ) ) ; } extern "C" { pub fn hydro_sign_keygen ( kp : * mut hydro_sign_keypair ) ; } extern "C" { pub fn hydro_sign_keygen_deterministic ( kp : * mut hydro_sign_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_sign_init ( state : * mut hydro_sign_state , ctx : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_update ( state : * mut hydro_sign_state , m_ : * const :: std :: os :: raw :: c_void , mlen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_create ( state : * mut hydro_sign_state , csig : * mut u8 , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_verify ( state : * mut hydro_sign_state , csig : * const u8 , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_create ( csig : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_verify ( csig : * const u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( sk ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_session_keypair { pub rx : [ u8 ; 32usize ] , pub tx : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_session_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_session_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_session_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . rx as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( rx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . tx as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( tx ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_state { pub eph_kp : hydro_kx_keypair , pub h : [ u8 ; 32usize ] , pub ck : [ u8 ; 32usize ] , pub k : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_state > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_state > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . eph_kp as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( eph_kp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . h as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . ck as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( ck ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . k as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( k ) ) ) ; } extern "C" { pub fn hydro_kx_keygen ( static_kp : * mut hydro_kx_keypair ) ; } extern "C" { pub fn hydro_kx_keygen_deterministic ( static_kp : * mut hydro_kx_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_kx_n_1 ( kp : * mut hydro_kx_session_keypair , packet1 : * mut u8 , psk : * const u8 , peer_static_pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_n_2 ( kp : * mut hydro_kx_session_keypair , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_2 ( kp : * mut hydro_kx_session_keypair , packet2 : * mut u8 , packet1 : * const u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet2 : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_2 ( state : * mut hydro_kx_state , packet2 : * mut u8 , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet3 : * mut u8 , peer_static_pk : * mut u8 , packet2 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_4 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , peer_static_pk : * mut u8 , packet3 : * const u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_keygen ( master_key : * mut u8 ) ; } extern "C" { pub fn hydro_pwhash_deterministic ( h : * mut u8 , h_len : usize , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_create ( stored : * mut u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_verify ( stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_derive_static_key ( static_key : * mut u8 , static_key_len : usize , stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_reencrypt ( stored : * mut u8 , master_key : * const u8 , new_master_key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_upgrade ( stored : * mut u8 , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_memzero ( pnt : * mut :: std :: os :: raw :: c_void , len : usize ) ; } extern "C" { pub fn hydro_increment ( n : * mut u8 , len : usize ) ; } extern "C" { pub fn hydro_equal ( b1_ : * const :: std :: os :: raw :: c_void , b2_ : * const :: std :: os :: raw :: c_void , len : usize ) -> bool ; } extern "C" { pub fn hydro_compare ( b1_ : * const u8 , b2_ : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_bin2hex ( hex : * mut :: std :: os :: raw :: c_char , hex_maxlen : usize , bin : * const u8 , bin_len : usize ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn hydro_hex2bin ( bin : * mut u8 , bin_maxlen : usize , hex : * const :: std :: os :: raw :: c_char , hex_len : usize , ignore : * const :: std :: os :: raw :: c_char , hex_end_p : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pad ( buf : * mut :: std :: os :: raw :: c_uchar , unpadded_buflen : usize , blocksize : usize , max_buflen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_unpad ( buf : * const :: std :: os :: raw :: c_uchar , padded_buflen : usize , blocksize : usize ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[u8; 64]` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::fmt::Debug` for `[u8; 64]` [INFO] [stderr] = note: required because of the requirements on the impl of `std::fmt::Debug` for `&[u8; 64]` [INFO] [stderr] = note: required for the cast to the object type `dyn std::fmt::Debug` [INFO] [stderr] = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `[u8; 64]: std::default::Default` is not satisfied [INFO] [stderr] --> /opt/rustwide/target/debug/build/libhydrogen-sys-84ae6716f7dd42f9/out/bindings.rs:3:6448 [INFO] [stderr] | [INFO] [stderr] 3 | pub const HYDRO_VERSION_MAJOR : u32 = 1 ; pub const HYDRO_VERSION_MINOR : u32 = 0 ; pub const hydro_random_SEEDBYTES : u32 = 32 ; pub const hydro_hash_BYTES : u32 = 32 ; pub const hydro_hash_BYTES_MAX : u32 = 65535 ; pub const hydro_hash_BYTES_MIN : u32 = 16 ; pub const hydro_hash_CONTEXTBYTES : u32 = 8 ; pub const hydro_hash_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_CONTEXTBYTES : u32 = 8 ; pub const hydro_secretbox_HEADERBYTES : u32 = 36 ; pub const hydro_secretbox_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_PROBEBYTES : u32 = 16 ; pub const hydro_kdf_CONTEXTBYTES : u32 = 8 ; pub const hydro_kdf_KEYBYTES : u32 = 32 ; pub const hydro_kdf_BYTES_MAX : u32 = 65535 ; pub const hydro_kdf_BYTES_MIN : u32 = 16 ; pub const hydro_sign_BYTES : u32 = 64 ; pub const hydro_sign_CONTEXTBYTES : u32 = 8 ; pub const hydro_sign_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_sign_SECRETKEYBYTES : u32 = 64 ; pub const hydro_sign_SEEDBYTES : u32 = 32 ; pub const hydro_kx_SESSIONKEYBYTES : u32 = 32 ; pub const hydro_kx_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_kx_SECRETKEYBYTES : u32 = 32 ; pub const hydro_kx_PSKBYTES : u32 = 32 ; pub const hydro_kx_SEEDBYTES : u32 = 32 ; pub const hydro_kx_N_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET2BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET2BYTES : u32 = 80 ; pub const hydro_kx_XX_PACKET3BYTES : u32 = 48 ; pub const hydro_pwhash_CONTEXTBYTES : u32 = 8 ; pub const hydro_pwhash_MASTERKEYBYTES : u32 = 32 ; pub const hydro_pwhash_STOREDBYTES : u32 = 128 ; pub const HYDRO_HWTYPE_ATMEGA328 : u32 = 1 ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; extern "C" { pub fn hydro_init ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_random_u32 ( ) -> u32 ; } extern "C" { pub fn hydro_random_uniform ( upper_bound : u32 ) -> u32 ; } extern "C" { pub fn hydro_random_buf ( out : * mut :: std :: os :: raw :: c_void , out_len : usize ) ; } extern "C" { pub fn hydro_random_buf_deterministic ( out : * mut :: std :: os :: raw :: c_void , out_len : usize , seed : * const u8 ) ; } extern "C" { pub fn hydro_random_ratchet ( ) ; } extern "C" { pub fn hydro_random_reseed ( ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_hash_state { pub state : [ u32 ; 12usize ] , pub buf_off : u8 , pub align : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_hydro_hash_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_hash_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_hash_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . state as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . buf_off as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( buf_off ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . align as * const _ as usize } , 49usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( align ) ) ) ; } extern "C" { pub fn hydro_hash_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_hash_init ( state : * mut hydro_hash_state , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_update ( state : * mut hydro_hash_state , in_ : * const :: std :: os :: raw :: c_void , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_final ( state : * mut hydro_hash_state , out : * mut u8 , out_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_hash ( out : * mut u8 , out_len : usize , in_ : * const :: std :: os :: raw :: c_void , in_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_secretbox_encrypt ( c : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_decrypt ( m_ : * mut :: std :: os :: raw :: c_void , c : * const u8 , clen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_probe_create ( probe : * mut u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) ; } extern "C" { pub fn hydro_secretbox_probe_verify ( probe : * const u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kdf_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_kdf_derive_from_key ( subkey : * mut u8 , subkey_len : usize , subkey_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_state { pub hash_st : hydro_hash_state , } # [ test ] fn bindgen_test_layout_hydro_sign_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_state > ( ) ) ) . hash_st as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_state ) , "::" , stringify ! ( hash_st ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 64usize ] , } # [ test ] fn bindgen_test_layout_hydro_sign_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_keypair > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( sk ) ) ) ; } extern "C" { pub fn hydro_sign_keygen ( kp : * mut hydro_sign_keypair ) ; } extern "C" { pub fn hydro_sign_keygen_deterministic ( kp : * mut hydro_sign_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_sign_init ( state : * mut hydro_sign_state , ctx : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_update ( state : * mut hydro_sign_state , m_ : * const :: std :: os :: raw :: c_void , mlen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_create ( state : * mut hydro_sign_state , csig : * mut u8 , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_verify ( state : * mut hydro_sign_state , csig : * const u8 , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_create ( csig : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_verify ( csig : * const u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( sk ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_session_keypair { pub rx : [ u8 ; 32usize ] , pub tx : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_session_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_session_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_session_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . rx as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( rx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . tx as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( tx ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_state { pub eph_kp : hydro_kx_keypair , pub h : [ u8 ; 32usize ] , pub ck : [ u8 ; 32usize ] , pub k : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_state > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_state > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . eph_kp as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( eph_kp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . h as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . ck as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( ck ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . k as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( k ) ) ) ; } extern "C" { pub fn hydro_kx_keygen ( static_kp : * mut hydro_kx_keypair ) ; } extern "C" { pub fn hydro_kx_keygen_deterministic ( static_kp : * mut hydro_kx_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_kx_n_1 ( kp : * mut hydro_kx_session_keypair , packet1 : * mut u8 , psk : * const u8 , peer_static_pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_n_2 ( kp : * mut hydro_kx_session_keypair , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_2 ( kp : * mut hydro_kx_session_keypair , packet2 : * mut u8 , packet1 : * const u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet2 : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_2 ( state : * mut hydro_kx_state , packet2 : * mut u8 , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet3 : * mut u8 , peer_static_pk : * mut u8 , packet2 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_4 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , peer_static_pk : * mut u8 , packet3 : * const u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_keygen ( master_key : * mut u8 ) ; } extern "C" { pub fn hydro_pwhash_deterministic ( h : * mut u8 , h_len : usize , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_create ( stored : * mut u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_verify ( stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_derive_static_key ( static_key : * mut u8 , static_key_len : usize , stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_reencrypt ( stored : * mut u8 , master_key : * const u8 , new_master_key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_upgrade ( stored : * mut u8 , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_memzero ( pnt : * mut :: std :: os :: raw :: c_void , len : usize ) ; } extern "C" { pub fn hydro_increment ( n : * mut u8 , len : usize ) ; } extern "C" { pub fn hydro_equal ( b1_ : * const :: std :: os :: raw :: c_void , b2_ : * const :: std :: os :: raw :: c_void , len : usize ) -> bool ; } extern "C" { pub fn hydro_compare ( b1_ : * const u8 , b2_ : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_bin2hex ( hex : * mut :: std :: os :: raw :: c_char , hex_maxlen : usize , bin : * const u8 , bin_len : usize ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn hydro_hex2bin ( bin : * mut u8 , bin_maxlen : usize , hex : * const :: std :: os :: raw :: c_char , hex_len : usize , ignore : * const :: std :: os :: raw :: c_char , hex_end_p : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pad ( buf : * mut :: std :: os :: raw :: c_uchar , unpadded_buflen : usize , blocksize : usize , max_buflen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_unpad ( buf : * const :: std :: os :: raw :: c_uchar , padded_buflen : usize , blocksize : usize ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::default::Default` is not implemented for `[u8; 64]` [INFO] [stderr] | [INFO] [stderr] = help: the following implementations were found: [INFO] [stderr] <&[T] as std::default::Default> [INFO] [stderr] <&mut [T] as std::default::Default> [INFO] [stderr] <[T; 0] as std::default::Default> [INFO] [stderr] <[T; 10] as std::default::Default> [INFO] [stderr] and 31 others [INFO] [stderr] = note: required by `std::default::Default::default` [INFO] [stderr] = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `==` cannot be applied to type `[u8; 64]` [INFO] [stderr] --> /opt/rustwide/target/debug/build/libhydrogen-sys-84ae6716f7dd42f9/out/bindings.rs:3:6448 [INFO] [stderr] | [INFO] [stderr] 3 | pub const HYDRO_VERSION_MAJOR : u32 = 1 ; pub const HYDRO_VERSION_MINOR : u32 = 0 ; pub const hydro_random_SEEDBYTES : u32 = 32 ; pub const hydro_hash_BYTES : u32 = 32 ; pub const hydro_hash_BYTES_MAX : u32 = 65535 ; pub const hydro_hash_BYTES_MIN : u32 = 16 ; pub const hydro_hash_CONTEXTBYTES : u32 = 8 ; pub const hydro_hash_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_CONTEXTBYTES : u32 = 8 ; pub const hydro_secretbox_HEADERBYTES : u32 = 36 ; pub const hydro_secretbox_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_PROBEBYTES : u32 = 16 ; pub const hydro_kdf_CONTEXTBYTES : u32 = 8 ; pub const hydro_kdf_KEYBYTES : u32 = 32 ; pub const hydro_kdf_BYTES_MAX : u32 = 65535 ; pub const hydro_kdf_BYTES_MIN : u32 = 16 ; pub const hydro_sign_BYTES : u32 = 64 ; pub const hydro_sign_CONTEXTBYTES : u32 = 8 ; pub const hydro_sign_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_sign_SECRETKEYBYTES : u32 = 64 ; pub const hydro_sign_SEEDBYTES : u32 = 32 ; pub const hydro_kx_SESSIONKEYBYTES : u32 = 32 ; pub const hydro_kx_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_kx_SECRETKEYBYTES : u32 = 32 ; pub const hydro_kx_PSKBYTES : u32 = 32 ; pub const hydro_kx_SEEDBYTES : u32 = 32 ; pub const hydro_kx_N_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET2BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET2BYTES : u32 = 80 ; pub const hydro_kx_XX_PACKET3BYTES : u32 = 48 ; pub const hydro_pwhash_CONTEXTBYTES : u32 = 8 ; pub const hydro_pwhash_MASTERKEYBYTES : u32 = 32 ; pub const hydro_pwhash_STOREDBYTES : u32 = 128 ; pub const HYDRO_HWTYPE_ATMEGA328 : u32 = 1 ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; extern "C" { pub fn hydro_init ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_random_u32 ( ) -> u32 ; } extern "C" { pub fn hydro_random_uniform ( upper_bound : u32 ) -> u32 ; } extern "C" { pub fn hydro_random_buf ( out : * mut :: std :: os :: raw :: c_void , out_len : usize ) ; } extern "C" { pub fn hydro_random_buf_deterministic ( out : * mut :: std :: os :: raw :: c_void , out_len : usize , seed : * const u8 ) ; } extern "C" { pub fn hydro_random_ratchet ( ) ; } extern "C" { pub fn hydro_random_reseed ( ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_hash_state { pub state : [ u32 ; 12usize ] , pub buf_off : u8 , pub align : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_hydro_hash_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_hash_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_hash_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . state as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . buf_off as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( buf_off ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . align as * const _ as usize } , 49usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( align ) ) ) ; } extern "C" { pub fn hydro_hash_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_hash_init ( state : * mut hydro_hash_state , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_update ( state : * mut hydro_hash_state , in_ : * const :: std :: os :: raw :: c_void , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_final ( state : * mut hydro_hash_state , out : * mut u8 , out_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_hash ( out : * mut u8 , out_len : usize , in_ : * const :: std :: os :: raw :: c_void , in_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_secretbox_encrypt ( c : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_decrypt ( m_ : * mut :: std :: os :: raw :: c_void , c : * const u8 , clen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_probe_create ( probe : * mut u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) ; } extern "C" { pub fn hydro_secretbox_probe_verify ( probe : * const u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kdf_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_kdf_derive_from_key ( subkey : * mut u8 , subkey_len : usize , subkey_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_state { pub hash_st : hydro_hash_state , } # [ test ] fn bindgen_test_layout_hydro_sign_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_state > ( ) ) ) . hash_st as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_state ) , "::" , stringify ! ( hash_st ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 64usize ] , } # [ test ] fn bindgen_test_layout_hydro_sign_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_keypair > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( sk ) ) ) ; } extern "C" { pub fn hydro_sign_keygen ( kp : * mut hydro_sign_keypair ) ; } extern "C" { pub fn hydro_sign_keygen_deterministic ( kp : * mut hydro_sign_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_sign_init ( state : * mut hydro_sign_state , ctx : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_update ( state : * mut hydro_sign_state , m_ : * const :: std :: os :: raw :: c_void , mlen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_create ( state : * mut hydro_sign_state , csig : * mut u8 , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_verify ( state : * mut hydro_sign_state , csig : * const u8 , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_create ( csig : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_verify ( csig : * const u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( sk ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_session_keypair { pub rx : [ u8 ; 32usize ] , pub tx : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_session_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_session_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_session_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . rx as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( rx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . tx as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( tx ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_state { pub eph_kp : hydro_kx_keypair , pub h : [ u8 ; 32usize ] , pub ck : [ u8 ; 32usize ] , pub k : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_state > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_state > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . eph_kp as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( eph_kp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . h as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . ck as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( ck ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . k as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( k ) ) ) ; } extern "C" { pub fn hydro_kx_keygen ( static_kp : * mut hydro_kx_keypair ) ; } extern "C" { pub fn hydro_kx_keygen_deterministic ( static_kp : * mut hydro_kx_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_kx_n_1 ( kp : * mut hydro_kx_session_keypair , packet1 : * mut u8 , psk : * const u8 , peer_static_pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_n_2 ( kp : * mut hydro_kx_session_keypair , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_2 ( kp : * mut hydro_kx_session_keypair , packet2 : * mut u8 , packet1 : * const u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet2 : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_2 ( state : * mut hydro_kx_state , packet2 : * mut u8 , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet3 : * mut u8 , peer_static_pk : * mut u8 , packet2 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_4 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , peer_static_pk : * mut u8 , packet3 : * const u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_keygen ( master_key : * mut u8 ) ; } extern "C" { pub fn hydro_pwhash_deterministic ( h : * mut u8 , h_len : usize , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_create ( stored : * mut u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_verify ( stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_derive_static_key ( static_key : * mut u8 , static_key_len : usize , stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_reencrypt ( stored : * mut u8 , master_key : * const u8 , new_master_key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_upgrade ( stored : * mut u8 , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_memzero ( pnt : * mut :: std :: os :: raw :: c_void , len : usize ) ; } extern "C" { pub fn hydro_increment ( n : * mut u8 , len : usize ) ; } extern "C" { pub fn hydro_equal ( b1_ : * const :: std :: os :: raw :: c_void , b2_ : * const :: std :: os :: raw :: c_void , len : usize ) -> bool ; } extern "C" { pub fn hydro_compare ( b1_ : * const u8 , b2_ : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_bin2hex ( hex : * mut :: std :: os :: raw :: c_char , hex_maxlen : usize , bin : * const u8 , bin_len : usize ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn hydro_hex2bin ( bin : * mut u8 , bin_maxlen : usize , hex : * const :: std :: os :: raw :: c_char , hex_len : usize , ignore : * const :: std :: os :: raw :: c_char , hex_end_p : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pad ( buf : * mut :: std :: os :: raw :: c_uchar , unpadded_buflen : usize , blocksize : usize , max_buflen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_unpad ( buf : * const :: std :: os :: raw :: c_uchar , padded_buflen : usize , blocksize : usize ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `!=` cannot be applied to type `[u8; 64]` [INFO] [stderr] --> /opt/rustwide/target/debug/build/libhydrogen-sys-84ae6716f7dd42f9/out/bindings.rs:3:6448 [INFO] [stderr] | [INFO] [stderr] 3 | pub const HYDRO_VERSION_MAJOR : u32 = 1 ; pub const HYDRO_VERSION_MINOR : u32 = 0 ; pub const hydro_random_SEEDBYTES : u32 = 32 ; pub const hydro_hash_BYTES : u32 = 32 ; pub const hydro_hash_BYTES_MAX : u32 = 65535 ; pub const hydro_hash_BYTES_MIN : u32 = 16 ; pub const hydro_hash_CONTEXTBYTES : u32 = 8 ; pub const hydro_hash_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_CONTEXTBYTES : u32 = 8 ; pub const hydro_secretbox_HEADERBYTES : u32 = 36 ; pub const hydro_secretbox_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_PROBEBYTES : u32 = 16 ; pub const hydro_kdf_CONTEXTBYTES : u32 = 8 ; pub const hydro_kdf_KEYBYTES : u32 = 32 ; pub const hydro_kdf_BYTES_MAX : u32 = 65535 ; pub const hydro_kdf_BYTES_MIN : u32 = 16 ; pub const hydro_sign_BYTES : u32 = 64 ; pub const hydro_sign_CONTEXTBYTES : u32 = 8 ; pub const hydro_sign_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_sign_SECRETKEYBYTES : u32 = 64 ; pub const hydro_sign_SEEDBYTES : u32 = 32 ; pub const hydro_kx_SESSIONKEYBYTES : u32 = 32 ; pub const hydro_kx_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_kx_SECRETKEYBYTES : u32 = 32 ; pub const hydro_kx_PSKBYTES : u32 = 32 ; pub const hydro_kx_SEEDBYTES : u32 = 32 ; pub const hydro_kx_N_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET2BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET2BYTES : u32 = 80 ; pub const hydro_kx_XX_PACKET3BYTES : u32 = 48 ; pub const hydro_pwhash_CONTEXTBYTES : u32 = 8 ; pub const hydro_pwhash_MASTERKEYBYTES : u32 = 32 ; pub const hydro_pwhash_STOREDBYTES : u32 = 128 ; pub const HYDRO_HWTYPE_ATMEGA328 : u32 = 1 ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; extern "C" { pub fn hydro_init ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_random_u32 ( ) -> u32 ; } extern "C" { pub fn hydro_random_uniform ( upper_bound : u32 ) -> u32 ; } extern "C" { pub fn hydro_random_buf ( out : * mut :: std :: os :: raw :: c_void , out_len : usize ) ; } extern "C" { pub fn hydro_random_buf_deterministic ( out : * mut :: std :: os :: raw :: c_void , out_len : usize , seed : * const u8 ) ; } extern "C" { pub fn hydro_random_ratchet ( ) ; } extern "C" { pub fn hydro_random_reseed ( ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_hash_state { pub state : [ u32 ; 12usize ] , pub buf_off : u8 , pub align : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_hydro_hash_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_hash_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_hash_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . state as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . buf_off as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( buf_off ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . align as * const _ as usize } , 49usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( align ) ) ) ; } extern "C" { pub fn hydro_hash_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_hash_init ( state : * mut hydro_hash_state , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_update ( state : * mut hydro_hash_state , in_ : * const :: std :: os :: raw :: c_void , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_final ( state : * mut hydro_hash_state , out : * mut u8 , out_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_hash ( out : * mut u8 , out_len : usize , in_ : * const :: std :: os :: raw :: c_void , in_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_secretbox_encrypt ( c : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_decrypt ( m_ : * mut :: std :: os :: raw :: c_void , c : * const u8 , clen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_probe_create ( probe : * mut u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) ; } extern "C" { pub fn hydro_secretbox_probe_verify ( probe : * const u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kdf_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_kdf_derive_from_key ( subkey : * mut u8 , subkey_len : usize , subkey_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_state { pub hash_st : hydro_hash_state , } # [ test ] fn bindgen_test_layout_hydro_sign_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_state > ( ) ) ) . hash_st as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_state ) , "::" , stringify ! ( hash_st ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 64usize ] , } # [ test ] fn bindgen_test_layout_hydro_sign_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_keypair > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( sk ) ) ) ; } extern "C" { pub fn hydro_sign_keygen ( kp : * mut hydro_sign_keypair ) ; } extern "C" { pub fn hydro_sign_keygen_deterministic ( kp : * mut hydro_sign_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_sign_init ( state : * mut hydro_sign_state , ctx : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_update ( state : * mut hydro_sign_state , m_ : * const :: std :: os :: raw :: c_void , mlen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_create ( state : * mut hydro_sign_state , csig : * mut u8 , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_verify ( state : * mut hydro_sign_state , csig : * const u8 , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_create ( csig : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_verify ( csig : * const u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( sk ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_session_keypair { pub rx : [ u8 ; 32usize ] , pub tx : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_session_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_session_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_session_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . rx as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( rx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . tx as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( tx ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_state { pub eph_kp : hydro_kx_keypair , pub h : [ u8 ; 32usize ] , pub ck : [ u8 ; 32usize ] , pub k : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_state > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_state > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . eph_kp as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( eph_kp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . h as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . ck as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( ck ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . k as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( k ) ) ) ; } extern "C" { pub fn hydro_kx_keygen ( static_kp : * mut hydro_kx_keypair ) ; } extern "C" { pub fn hydro_kx_keygen_deterministic ( static_kp : * mut hydro_kx_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_kx_n_1 ( kp : * mut hydro_kx_session_keypair , packet1 : * mut u8 , psk : * const u8 , peer_static_pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_n_2 ( kp : * mut hydro_kx_session_keypair , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_2 ( kp : * mut hydro_kx_session_keypair , packet2 : * mut u8 , packet1 : * const u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet2 : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_2 ( state : * mut hydro_kx_state , packet2 : * mut u8 , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet3 : * mut u8 , peer_static_pk : * mut u8 , packet2 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_4 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , peer_static_pk : * mut u8 , packet3 : * const u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_keygen ( master_key : * mut u8 ) ; } extern "C" { pub fn hydro_pwhash_deterministic ( h : * mut u8 , h_len : usize , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_create ( stored : * mut u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_verify ( stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_derive_static_key ( static_key : * mut u8 , static_key_len : usize , stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_reencrypt ( stored : * mut u8 , master_key : * const u8 , new_master_key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_upgrade ( stored : * mut u8 , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_memzero ( pnt : * mut :: std :: os :: raw :: c_void , len : usize ) ; } extern "C" { pub fn hydro_increment ( n : * mut u8 , len : usize ) ; } extern "C" { pub fn hydro_equal ( b1_ : * const :: std :: os :: raw :: c_void , b2_ : * const :: std :: os :: raw :: c_void , len : usize ) -> bool ; } extern "C" { pub fn hydro_compare ( b1_ : * const u8 , b2_ : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_bin2hex ( hex : * mut :: std :: os :: raw :: c_char , hex_maxlen : usize , bin : * const u8 , bin_len : usize ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn hydro_hex2bin ( bin : * mut u8 , bin_maxlen : usize , hex : * const :: std :: os :: raw :: c_char , hex_len : usize , ignore : * const :: std :: os :: raw :: c_char , hex_end_p : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pad ( buf : * mut :: std :: os :: raw :: c_uchar , unpadded_buflen : usize , blocksize : usize , max_buflen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_unpad ( buf : * const :: std :: os :: raw :: c_uchar , padded_buflen : usize , blocksize : usize ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0277]: arrays only have std trait implementations for lengths 0..=32 [INFO] [stderr] --> /opt/rustwide/target/debug/build/libhydrogen-sys-84ae6716f7dd42f9/out/bindings.rs:3:6448 [INFO] [stderr] | [INFO] [stderr] 3 | pub const HYDRO_VERSION_MAJOR : u32 = 1 ; pub const HYDRO_VERSION_MINOR : u32 = 0 ; pub const hydro_random_SEEDBYTES : u32 = 32 ; pub const hydro_hash_BYTES : u32 = 32 ; pub const hydro_hash_BYTES_MAX : u32 = 65535 ; pub const hydro_hash_BYTES_MIN : u32 = 16 ; pub const hydro_hash_CONTEXTBYTES : u32 = 8 ; pub const hydro_hash_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_CONTEXTBYTES : u32 = 8 ; pub const hydro_secretbox_HEADERBYTES : u32 = 36 ; pub const hydro_secretbox_KEYBYTES : u32 = 32 ; pub const hydro_secretbox_PROBEBYTES : u32 = 16 ; pub const hydro_kdf_CONTEXTBYTES : u32 = 8 ; pub const hydro_kdf_KEYBYTES : u32 = 32 ; pub const hydro_kdf_BYTES_MAX : u32 = 65535 ; pub const hydro_kdf_BYTES_MIN : u32 = 16 ; pub const hydro_sign_BYTES : u32 = 64 ; pub const hydro_sign_CONTEXTBYTES : u32 = 8 ; pub const hydro_sign_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_sign_SECRETKEYBYTES : u32 = 64 ; pub const hydro_sign_SEEDBYTES : u32 = 32 ; pub const hydro_kx_SESSIONKEYBYTES : u32 = 32 ; pub const hydro_kx_PUBLICKEYBYTES : u32 = 32 ; pub const hydro_kx_SECRETKEYBYTES : u32 = 32 ; pub const hydro_kx_PSKBYTES : u32 = 32 ; pub const hydro_kx_SEEDBYTES : u32 = 32 ; pub const hydro_kx_N_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_KK_PACKET2BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET1BYTES : u32 = 32 ; pub const hydro_kx_XX_PACKET2BYTES : u32 = 80 ; pub const hydro_kx_XX_PACKET3BYTES : u32 = 48 ; pub const hydro_pwhash_CONTEXTBYTES : u32 = 8 ; pub const hydro_pwhash_MASTERKEYBYTES : u32 = 32 ; pub const hydro_pwhash_STOREDBYTES : u32 = 128 ; pub const HYDRO_HWTYPE_ATMEGA328 : u32 = 1 ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; extern "C" { pub fn hydro_init ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_random_u32 ( ) -> u32 ; } extern "C" { pub fn hydro_random_uniform ( upper_bound : u32 ) -> u32 ; } extern "C" { pub fn hydro_random_buf ( out : * mut :: std :: os :: raw :: c_void , out_len : usize ) ; } extern "C" { pub fn hydro_random_buf_deterministic ( out : * mut :: std :: os :: raw :: c_void , out_len : usize , seed : * const u8 ) ; } extern "C" { pub fn hydro_random_ratchet ( ) ; } extern "C" { pub fn hydro_random_reseed ( ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_hash_state { pub state : [ u32 ; 12usize ] , pub buf_off : u8 , pub align : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_hydro_hash_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_hash_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_hash_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_hash_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . state as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . buf_off as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( buf_off ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_hash_state > ( ) ) ) . align as * const _ as usize } , 49usize , concat ! ( "Offset of field: " , stringify ! ( hydro_hash_state ) , "::" , stringify ! ( align ) ) ) ; } extern "C" { pub fn hydro_hash_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_hash_init ( state : * mut hydro_hash_state , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_update ( state : * mut hydro_hash_state , in_ : * const :: std :: os :: raw :: c_void , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_final ( state : * mut hydro_hash_state , out : * mut u8 , out_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_hash_hash ( out : * mut u8 , out_len : usize , in_ : * const :: std :: os :: raw :: c_void , in_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_secretbox_encrypt ( c : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_decrypt ( m_ : * mut :: std :: os :: raw :: c_void , c : * const u8 , clen : usize , msg_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_secretbox_probe_create ( probe : * mut u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) ; } extern "C" { pub fn hydro_secretbox_probe_verify ( probe : * const u8 , c : * const u8 , c_len : usize , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kdf_keygen ( key : * mut u8 ) ; } extern "C" { pub fn hydro_kdf_derive_from_key ( subkey : * mut u8 , subkey_len : usize , subkey_id : u64 , ctx : * const :: std :: os :: raw :: c_char , key : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_state { pub hash_st : hydro_hash_state , } # [ test ] fn bindgen_test_layout_hydro_sign_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_state > ( ) , 52usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_state > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_state > ( ) ) ) . hash_st as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_state ) , "::" , stringify ! ( hash_st ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_sign_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 64usize ] , } # [ test ] fn bindgen_test_layout_hydro_sign_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_sign_keypair > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_sign_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_sign_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_sign_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_sign_keypair ) , "::" , stringify ! ( sk ) ) ) ; } extern "C" { pub fn hydro_sign_keygen ( kp : * mut hydro_sign_keypair ) ; } extern "C" { pub fn hydro_sign_keygen_deterministic ( kp : * mut hydro_sign_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_sign_init ( state : * mut hydro_sign_state , ctx : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_update ( state : * mut hydro_sign_state , m_ : * const :: std :: os :: raw :: c_void , mlen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_create ( state : * mut hydro_sign_state , csig : * mut u8 , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_final_verify ( state : * mut hydro_sign_state , csig : * const u8 , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_create ( csig : * mut u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , sk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_sign_verify ( csig : * const u8 , m_ : * const :: std :: os :: raw :: c_void , mlen : usize , ctx : * const :: std :: os :: raw :: c_char , pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_keypair { pub pk : [ u8 ; 32usize ] , pub sk : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . pk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( pk ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_keypair > ( ) ) ) . sk as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_keypair ) , "::" , stringify ! ( sk ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_session_keypair { pub rx : [ u8 ; 32usize ] , pub tx : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_session_keypair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_session_keypair > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_session_keypair > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_session_keypair ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . rx as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( rx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_session_keypair > ( ) ) ) . tx as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_session_keypair ) , "::" , stringify ! ( tx ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Default , Copy , Clone , PartialEq , Eq ) ] pub struct hydro_kx_state { pub eph_kp : hydro_kx_keypair , pub h : [ u8 ; 32usize ] , pub ck : [ u8 ; 32usize ] , pub k : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_hydro_kx_state ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hydro_kx_state > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hydro_kx_state > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( hydro_kx_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . eph_kp as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( eph_kp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . h as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . ck as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( ck ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hydro_kx_state > ( ) ) ) . k as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( hydro_kx_state ) , "::" , stringify ! ( k ) ) ) ; } extern "C" { pub fn hydro_kx_keygen ( static_kp : * mut hydro_kx_keypair ) ; } extern "C" { pub fn hydro_kx_keygen_deterministic ( static_kp : * mut hydro_kx_keypair , seed : * const u8 ) ; } extern "C" { pub fn hydro_kx_n_1 ( kp : * mut hydro_kx_session_keypair , packet1 : * mut u8 , psk : * const u8 , peer_static_pk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_n_2 ( kp : * mut hydro_kx_session_keypair , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_2 ( kp : * mut hydro_kx_session_keypair , packet2 : * mut u8 , packet1 : * const u8 , peer_static_pk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_kk_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet2 : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_1 ( state : * mut hydro_kx_state , packet1 : * mut u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_2 ( state : * mut hydro_kx_state , packet2 : * mut u8 , packet1 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_3 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , packet3 : * mut u8 , peer_static_pk : * mut u8 , packet2 : * const u8 , psk : * const u8 , static_kp : * const hydro_kx_keypair ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_kx_xx_4 ( state : * mut hydro_kx_state , kp : * mut hydro_kx_session_keypair , peer_static_pk : * mut u8 , packet3 : * const u8 , psk : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_keygen ( master_key : * mut u8 ) ; } extern "C" { pub fn hydro_pwhash_deterministic ( h : * mut u8 , h_len : usize , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_create ( stored : * mut u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_verify ( stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_derive_static_key ( static_key : * mut u8 , static_key_len : usize , stored : * const u8 , passwd : * const :: std :: os :: raw :: c_char , passwd_len : usize , ctx : * const :: std :: os :: raw :: c_char , master_key : * const u8 , opslimit_max : u64 , memlimit_max : usize , threads_max : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_reencrypt ( stored : * mut u8 , master_key : * const u8 , new_master_key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pwhash_upgrade ( stored : * mut u8 , master_key : * const u8 , opslimit : u64 , memlimit : usize , threads : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_memzero ( pnt : * mut :: std :: os :: raw :: c_void , len : usize ) ; } extern "C" { pub fn hydro_increment ( n : * mut u8 , len : usize ) ; } extern "C" { pub fn hydro_equal ( b1_ : * const :: std :: os :: raw :: c_void , b2_ : * const :: std :: os :: raw :: c_void , len : usize ) -> bool ; } extern "C" { pub fn hydro_compare ( b1_ : * const u8 , b2_ : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_bin2hex ( hex : * mut :: std :: os :: raw :: c_char , hex_maxlen : usize , bin : * const u8 , bin_len : usize ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn hydro_hex2bin ( bin : * mut u8 , bin_maxlen : usize , hex : * const :: std :: os :: raw :: c_char , hex_len : usize , ignore : * const :: std :: os :: raw :: c_char , hex_end_p : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_pad ( buf : * mut :: std :: os :: raw :: c_uchar , unpadded_buflen : usize , blocksize : usize , max_buflen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn hydro_unpad ( buf : * const :: std :: os :: raw :: c_uchar , padded_buflen : usize , blocksize : usize ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[u8; 64]` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::cmp::Eq` for `[u8; 64]` [INFO] [stderr] = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0369. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: could not compile `libhydrogen-sys`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "87fe2bc84d749b5fb38fda7d38c02807fbcb44955f6fe328ef84429fef31e7e7"` [INFO] running `"docker" "rm" "-f" "87fe2bc84d749b5fb38fda7d38c02807fbcb44955f6fe328ef84429fef31e7e7"` [INFO] [stdout] 87fe2bc84d749b5fb38fda7d38c02807fbcb44955f6fe328ef84429fef31e7e7