[INFO] fetching crate mc-sgx-tcrypto-sys 0.11.0... [INFO] checking mc-sgx-tcrypto-sys-0.11.0 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate mc-sgx-tcrypto-sys 0.11.0 into /workspace/builds/worker-5-tc2/source [INFO] validating manifest of crates.io crate mc-sgx-tcrypto-sys 0.11.0 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate mc-sgx-tcrypto-sys 0.11.0 [INFO] finished tweaking crates.io crate mc-sgx-tcrypto-sys 0.11.0 [INFO] tweaked toml for crates.io crate mc-sgx-tcrypto-sys 0.11.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 65 packages to latest compatible versions [INFO] [stderr] Adding bindgen v0.66.1 (available: v0.70.1) [INFO] [stderr] Adding generic-array v0.14.7 (available: v1.1.0) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (available: v0.6.5) [INFO] [stderr] Adding peeking_take_while v0.1.2 (available: v1.0.0) [INFO] [stderr] Adding rustc-hash v1.1.0 (available: v2.0.0) [INFO] [stderr] Adding which v4.4.2 (available: v6.0.3) [INFO] [stderr] Adding windows-sys v0.52.0 (available: v0.59.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0e3a21e1b6afa506c38bcbf2683559009a20d8087b6d8245fe23adbcdce645b6 [INFO] running `Command { std: "docker" "start" "-a" "0e3a21e1b6afa506c38bcbf2683559009a20d8087b6d8245fe23adbcdce645b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0e3a21e1b6afa506c38bcbf2683559009a20d8087b6d8245fe23adbcdce645b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0e3a21e1b6afa506c38bcbf2683559009a20d8087b6d8245fe23adbcdce645b6", kill_on_drop: false }` [INFO] [stdout] 0e3a21e1b6afa506c38bcbf2683559009a20d8087b6d8245fe23adbcdce645b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 94af39844e3becae736c009b69e10abcfeaee8401d5ab3c8ed49791e54986769 [INFO] running `Command { std: "docker" "start" "-a" "94af39844e3becae736c009b69e10abcfeaee8401d5ab3c8ed49791e54986769", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Compiling prettyplease v0.2.22 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling libc v0.2.159 [INFO] [stderr] Compiling linux-raw-sys v0.4.14 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Compiling libloading v0.8.5 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling bindgen v0.66.1 [INFO] [stderr] Compiling home v0.5.9 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling cargo-emit v0.2.1 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Checking cpufeatures v0.2.14 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling serde_with_macros v3.9.0 [INFO] [stderr] Checking serde_with v3.9.0 [INFO] [stderr] Compiling mc-sgx-core-build v0.11.0 [INFO] [stderr] Compiling mc-sgx-core-sys-types v0.11.0 [INFO] [stderr] Compiling mc-sgx-tcrypto-sys-types v0.11.0 [INFO] [stderr] Compiling mc-sgx-tcrypto-sys v0.11.0 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Fixed /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs (53 fixes) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.18s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling mc-sgx-tcrypto-sys v0.11.0 (/tmp/fixit) [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | extern "C" { # [doc = " SHA Hashing functions - NOTE: ONLY 256/160-bit is supported.\n\n NOTE: Use sgx_sha#_msg if the src pointer contains the complete msg to perform hash (Option 1)\n Else use the Init, Update, Update, ..., Final procedure (Option 2)\n Option 1: If the complete dataset is available for hashing, sgx_sha#_msg\n is a single API call for generating the 256/160-bit hash for the given dataset.\n Return: If source pointer or hash pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n Option 2: If the hash is to be performed over multiple data sets, then use:\n A. sgx_sha#_init - to create the context - context memory is allocated by this function.\n Return: If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If context creation fails then SGX_ERROR_UNEXPECTED is returned.\n B. sgx_sha#_update - updates hash based on input source data\n This function should be called for each chunk of data to be\n included in the hash including the 1st and final chunks.\n Return: If source pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n C. sgx_sha#_get_hash - function obtains the hash value\n Return: If hash pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the function fails then SGX_ERROR_UNEXPECTED is returned.\n D. sgx_sha#_close - SHOULD BE CALLED to FREE context memory\n Upon completing the process of computing a hash over a set of data\n or sets of data, this function is used to free the context.\n Return: If context pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_src - Pointer to the input stream to be hashed\n uint32_t src_len - Length of the input stream to be hashed\n Output: sgx_sha#_hash_t *p_hash - Resultant hash from operation"] pub fn sgx_sha384_msg (p_src : * const u8 , src_len : u32 , p_hash : * mut sgx_sha384_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2310 [INFO] [stdout] | [INFO] [stdout] 3 | ...; } extern "C" { pub fn sgx_sha256_msg (p_src : * const u8 , src_len : u32 , p_hash : * mut sgx_sha256_hash_t) -> sgx_status_t ; } ext... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2437 [INFO] [stdout] | [INFO] [stdout] 3 | ...t ; } extern "C" { pub fn sgx_sha1_msg (p_src : * const u8 , src_len : u32 , p_hash : * mut sgx_sha1_hash_t) -> sgx_status_t ; } exter... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2560 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Allocates and initializes sha state\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Output: sgx_sha_state_handle_t *p_sha_handle - Pointer to the handle of the SHA state"] pub fn sgx_sha384_init (p_sha_handle : * mut sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | extern "C" { # [doc = " SHA Hashing functions - NOTE: ONLY 256/160-bit is supported.\n\n NOTE: Use sgx_sha#_msg if the src pointer contains the complete msg to perform hash (Option 1)\n Else use the Init, Update, Update, ..., Final procedure (Option 2)\n Option 1: If the complete dataset is available for hashing, sgx_sha#_msg\n is a single API call for generating the 256/160-bit hash for the given dataset.\n Return: If source pointer or hash pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n Option 2: If the hash is to be performed over multiple data sets, then use:\n A. sgx_sha#_init - to create the context - context memory is allocated by this function.\n Return: If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If context creation fails then SGX_ERROR_UNEXPECTED is returned.\n B. sgx_sha#_update - updates hash based on input source data\n This function should be called for each chunk of data to be\n included in the hash including the 1st and final chunks.\n Return: If source pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n C. sgx_sha#_get_hash - function obtains the hash value\n Return: If hash pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the function fails then SGX_ERROR_UNEXPECTED is returned.\n D. sgx_sha#_close - SHOULD BE CALLED to FREE context memory\n Upon completing the process of computing a hash over a set of data\n or sets of data, this function is used to free the context.\n Return: If context pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_src - Pointer to the input stream to be hashed\n uint32_t src_len - Length of the input stream to be hashed\n Output: sgx_sha#_hash_t *p_hash - Resultant hash from operation"] pub fn sgx_sha384_msg (p_src : * const u8 , src_len : u32 , p_hash : * mut sgx_sha384_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2894 [INFO] [stdout] | [INFO] [stdout] 3 | ...gx_status_t ; } extern "C" { pub fn sgx_sha256_init (p_sha_handle : * mut sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { pub... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2310 [INFO] [stdout] | [INFO] [stdout] 3 | ...; } extern "C" { pub fn sgx_sha256_msg (p_src : * const u8 , src_len : u32 , p_hash : * mut sgx_sha256_hash_t) -> sgx_status_t ; } ext... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2437 [INFO] [stdout] | [INFO] [stdout] 3 | ...t ; } extern "C" { pub fn sgx_sha1_msg (p_src : * const u8 , src_len : u32 , p_hash : * mut sgx_sha1_hash_t) -> sgx_status_t ; } exter... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2996 [INFO] [stdout] | [INFO] [stdout] 3 | ...sgx_status_t ; } extern "C" { pub fn sgx_sha1_init (p_sha_handle : * mut sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { # [d... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2560 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Allocates and initializes sha state\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Output: sgx_sha_state_handle_t *p_sha_handle - Pointer to the handle of the SHA state"] pub fn sgx_sha384_init (p_sha_handle : * mut sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3096 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Updates sha calculation based on the input message\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_sha_state_handle_t sha_handle - Handle to the SHA state\n uint8_t *p_src - Pointer to the input stream to be hashed\n uint32_t src_len - Length of the input stream to be hashed"] pub fn sgx_sha384_update (p_src : * const u8 , src_len : u32 , sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2894 [INFO] [stdout] | [INFO] [stdout] 3 | ...gx_status_t ; } extern "C" { pub fn sgx_sha256_init (p_sha_handle : * mut sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { pub... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3599 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha256_update (p_src : * const u8 , src_len : u32 , sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:2996 [INFO] [stdout] | [INFO] [stdout] 3 | ...sgx_status_t ; } extern "C" { pub fn sgx_sha1_init (p_sha_handle : * mut sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { # [d... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3732 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha1_update (p_src : * const u8 , src_len : usize , sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3096 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Updates sha calculation based on the input message\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_sha_state_handle_t sha_handle - Handle to the SHA state\n uint8_t *p_src - Pointer to the input stream to be hashed\n uint32_t src_len - Length of the input stream to be hashed"] pub fn sgx_sha384_update (p_src : * const u8 , src_len : u32 , sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3865 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Returns Hash calculation\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_sha_state_handle_t sha_handle - Handle to the SHA state\n Output: sgx_sha#_hash_t *p_hash - Resultant hash from operation"] pub fn sgx_sha384_get_hash (sha_handle : sgx_sha_state_handle_t , p_hash : * mut sgx_sha384_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4269 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha256_get_hash (sha_handle : sgx_sha_state_handle_t , p_hash : * mut sgx_sha256_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3599 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha256_update (p_src : * const u8 , src_len : u32 , sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4402 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha1_get_hash (sha_handle : sgx_sha_state_handle_t , p_hash : * mut sgx_sha1_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3732 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha1_update (p_src : * const u8 , src_len : usize , sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4531 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Cleans up SHA state\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_sha_state_handle_t sha_handle - Handle to the SHA state"] pub fn sgx_sha384_close (sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:3865 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Returns Hash calculation\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_sha_state_handle_t sha_handle - Handle to the SHA state\n Output: sgx_sha#_hash_t *p_hash - Resultant hash from operation"] pub fn sgx_sha384_get_hash (sha_handle : sgx_sha_state_handle_t , p_hash : * mut sgx_sha384_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4824 [INFO] [stdout] | [INFO] [stdout] 3 | ...-> sgx_status_t ; } extern "C" { pub fn sgx_sha256_close (sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { pub fn... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4919 [INFO] [stdout] | [INFO] [stdout] 3 | ... -> sgx_status_t ; } extern "C" { pub fn sgx_sha1_close (sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { # [doc ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4269 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha256_get_hash (sha_handle : sgx_sha_state_handle_t , p_hash : * mut sgx_sha256_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4402 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_sha1_get_hash (sha_handle : sgx_sha_state_handle_t , p_hash : * mut sgx_sha1_hash_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:5012 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = "Rijndael AES-GCM - Only 128-bit key AES-GCM Encryption/Decryption is supported\n\n The Galois/Counter Mode (GCM) is a mode of operation of the AES algorithm.\n GCM [NIST SP 800-38D] uses a variation of the Counter mode of operation for encryption.\n GCM assures authenticity of the confidential data (of up to about 64 GB per invocation)\n using a universal hash function defined over a binary finite field (the Galois field).\n\n GCM can also provide authentication assurance for additional data\n (of practically unlimited length per invocation) that is not encrypted.\n GCM provides stronger authentication assurance than a (non-cryptographic) checksum or\n error detecting code. In particular, GCM can detect both accidental modifications of\n the data and intentional, unauthorized modifications.\n\n sgx_rijndael128GCM_encrypt:\n Return: If key, source, destination, MAC, or IV pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If AAD size is > 0 and the AAD pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the Source Length is < 1, SGX_ERROR_INVALID_PARAMETER is returned.\n IV Length must = 12 (bytes) or SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory then SGX_ERROR_OUT_OF_MEMORY is returned.\n If the encryption process fails then SGX_ERROR_UNEXPECTED is returned.\n\n sgx_rijndael128GCM_decrypt:\n Return: If key, source, destination, MAC, or IV pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If AAD size is > 0 and the AAD pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the Source Length is < 1, SGX_ERROR_INVALID_PARAMETER is returned.\n IV Length must = 12 (bytes) or SGX_ERROR_INVALID_PARAMETER is returned.\n If the decryption process fails then SGX_ERROR_UNEXPECTED is returned.\n If the input MAC does not match the calculated MAC, SGX_ERROR_MAC_MISMATCH is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_aes_gcm_128bit_key_t *p_key - Pointer to the key used in encryption/decryption operation\n Size MUST BE 128-bits\n uint8_t *p_src - Pointer to the input stream to be encrypted/decrypted\n uint32_t src_len - Length of the input stream to be encrypted/decrypted\n uint8_t *p_iv - Pointer to the initialization vector\n uint32_t iv_len - Length of the initialization vector - MUST BE 12 (bytes)\n NIST AES-GCM recommended IV size = 96 bits\n uint8_t *p_aad - Pointer to the input stream of additional authentication data\n uint32_t aad_len - Length of the additional authentication data stream\n sgx_aes_gcm_128bit_tag_t *p_in_mac - Pointer to the expected MAC in decryption process\n Output: uint8_t *p_dst - Pointer to the cipher text for encryption or clear text for decryption. Size of buffer should be >= src_len.\n sgx_aes_gcm_128bit_tag_t *p_out_mac - Pointer to the MAC generated from encryption process\n NOTE: Wrapper is responsible for confirming decryption tag matches encryption tag"] pub fn sgx_rijndael128GCM_encrypt (p_key : * const sgx_aes_gcm_128bit_key_t , p_src : * const u8 , src_len : u32 , p_dst : * mut u8 , p_iv : * const u8 , iv_len : u32 , p_aad : * const u8 , aad_len : u32 , p_out_mac : * mut sgx_aes_gcm_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4531 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Cleans up SHA state\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_sha_state_handle_t sha_handle - Handle to the SHA state"] pub fn sgx_sha384_close (sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:8504 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_rijndael128GCM_decrypt (p_key : * const sgx_aes_gcm_128bit_key_t , p_src : * const u8 , src_len : u32 , p_dst : * mut u8 , p_iv : * const u8 , iv_len : u32 , p_aad : * const u8 , aad_len : u32 , p_in_mac : * const sgx_aes_gcm_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4824 [INFO] [stdout] | [INFO] [stdout] 3 | ...-> sgx_status_t ; } extern "C" { pub fn sgx_sha256_close (sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { pub fn... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:4919 [INFO] [stdout] | [INFO] [stdout] 3 | ... -> sgx_status_t ; } extern "C" { pub fn sgx_sha1_close (sha_handle : sgx_sha_state_handle_t) -> sgx_status_t ; } extern "C" { # [doc ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:8788 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Message Authentication Rijndael 128 CMAC - Only 128-bit key size is supported.\n NOTE: Use sgx_rijndael128_cmac_msg if the src ptr contains the complete msg to perform hash (Option 1)\n Else use the Init, Update, Update, ..., Final, Close procedure (Option 2)\n Option 1: If the complete dataset is available for hashing, sgx_rijndael128_cmac_msg\n is a single API call for generating the 128-bit hash for the given dataset.\n Return: If source, key, or MAC pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n Option 2: If the hash is to be performed over multiple data sets, then use:\n A. sgx_cmac128_init - to create the context - context memory is allocated by this function.\n Return: If key pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If context creation fails then SGX_ERROR_UNEXPECTED is returned.\n B. sgx_cmac128_update - updates hash based on input source data\n This function should be called for each chunk of data to be\n included in the hash including the 1st and final chunks.\n Return: If source pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n C. sgx_cmac128_final - function obtains the hash value\n Upon completing the process of computing a hash over a set of data or sets of data,\n this function populates the hash value.\n Return: If hash pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the function fails then SGX_ERROR_UNEXPECTED is returned.\n D. sgx_cmac128_close - SHOULD BE CALLED to clean up the CMAC state\n Upon populating the hash value over a set of data or sets of data,\n this function is used to free the CMAC state.\n Return: If CMAC state pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_cmac_128bit_key_t *p_key - Pointer to the key used in encryption/decryption operation\n uint8_t *p_src - Pointer to the input stream to be MAC'd\n uint32_t src_len - Length of the input stream to be MAC'd\n Output: sgx_cmac_gcm_128bit_tag_t *p_mac - Pointer to the resultant MAC"] pub fn sgx_rijndael128_cmac_msg (p_key : * const sgx_cmac_128bit_key_t , p_src : * const u8 , src_len : u32 , p_mac : * mut sgx_cmac_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:5012 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = "Rijndael AES-GCM - Only 128-bit key AES-GCM Encryption/Decryption is supported\n\n The Galois/Counter Mode (GCM) is a mode of operation of the AES algorithm.\n GCM [NIST SP 800-38D] uses a variation of the Counter mode of operation for encryption.\n GCM assures authenticity of the confidential data (of up to about 64 GB per invocation)\n using a universal hash function defined over a binary finite field (the Galois field).\n\n GCM can also provide authentication assurance for additional data\n (of practically unlimited length per invocation) that is not encrypted.\n GCM provides stronger authentication assurance than a (non-cryptographic) checksum or\n error detecting code. In particular, GCM can detect both accidental modifications of\n the data and intentional, unauthorized modifications.\n\n sgx_rijndael128GCM_encrypt:\n Return: If key, source, destination, MAC, or IV pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If AAD size is > 0 and the AAD pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the Source Length is < 1, SGX_ERROR_INVALID_PARAMETER is returned.\n IV Length must = 12 (bytes) or SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory then SGX_ERROR_OUT_OF_MEMORY is returned.\n If the encryption process fails then SGX_ERROR_UNEXPECTED is returned.\n\n sgx_rijndael128GCM_decrypt:\n Return: If key, source, destination, MAC, or IV pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If AAD size is > 0 and the AAD pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the Source Length is < 1, SGX_ERROR_INVALID_PARAMETER is returned.\n IV Length must = 12 (bytes) or SGX_ERROR_INVALID_PARAMETER is returned.\n If the decryption process fails then SGX_ERROR_UNEXPECTED is returned.\n If the input MAC does not match the calculated MAC, SGX_ERROR_MAC_MISMATCH is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_aes_gcm_128bit_key_t *p_key - Pointer to the key used in encryption/decryption operation\n Size MUST BE 128-bits\n uint8_t *p_src - Pointer to the input stream to be encrypted/decrypted\n uint32_t src_len - Length of the input stream to be encrypted/decrypted\n uint8_t *p_iv - Pointer to the initialization vector\n uint32_t iv_len - Length of the initialization vector - MUST BE 12 (bytes)\n NIST AES-GCM recommended IV size = 96 bits\n uint8_t *p_aad - Pointer to the input stream of additional authentication data\n uint32_t aad_len - Length of the additional authentication data stream\n sgx_aes_gcm_128bit_tag_t *p_in_mac - Pointer to the expected MAC in decryption process\n Output: uint8_t *p_dst - Pointer to the cipher text for encryption or clear text for decryption. Size of buffer should be >= src_len.\n sgx_aes_gcm_128bit_tag_t *p_out_mac - Pointer to the MAC generated from encryption process\n NOTE: Wrapper is responsible for confirming decryption tag matches encryption tag"] pub fn sgx_rijndael128GCM_encrypt (p_key : * const sgx_aes_gcm_128bit_key_t , p_src : * const u8 , src_len : u32 , p_dst : * mut u8 , p_iv : * const u8 , iv_len : u32 , p_aad : * const u8 , aad_len : u32 , p_out_mac : * mut sgx_aes_gcm_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:11607 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Allocates and initializes CMAC state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_cmac_128bit_key_t *p_key - Pointer to the key used in encryption/decryption operation\n Output: sgx_cmac_state_handle_t *p_cmac_handle - Pointer to the handle of the CMAC state"] pub fn sgx_cmac128_init (p_key : * const sgx_cmac_128bit_key_t , p_cmac_handle : * mut sgx_cmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:8504 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_rijndael128GCM_decrypt (p_key : * const sgx_aes_gcm_128bit_key_t , p_src : * const u8 , src_len : u32 , p_dst : * mut u8 , p_iv : * const u8 , iv_len : u32 , p_aad : * const u8 , aad_len : u32 , p_in_mac : * const sgx_aes_gcm_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:12091 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Updates CMAC has calculation based on the input message.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_cmac_state_handle_t cmac_handle - Handle to the CMAC state\n uint8_t *p_src - Pointer to the input stream to be hashed\n uint32_t src_len - Length of the input stream to be hashed"] pub fn sgx_cmac128_update (p_src : * const u8 , src_len : u32 , cmac_handle : sgx_cmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:8788 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Message Authentication Rijndael 128 CMAC - Only 128-bit key size is supported.\n NOTE: Use sgx_rijndael128_cmac_msg if the src ptr contains the complete msg to perform hash (Option 1)\n Else use the Init, Update, Update, ..., Final, Close procedure (Option 2)\n Option 1: If the complete dataset is available for hashing, sgx_rijndael128_cmac_msg\n is a single API call for generating the 128-bit hash for the given dataset.\n Return: If source, key, or MAC pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n Option 2: If the hash is to be performed over multiple data sets, then use:\n A. sgx_cmac128_init - to create the context - context memory is allocated by this function.\n Return: If key pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If context creation fails then SGX_ERROR_UNEXPECTED is returned.\n B. sgx_cmac128_update - updates hash based on input source data\n This function should be called for each chunk of data to be\n included in the hash including the 1st and final chunks.\n Return: If source pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If hash function fails then SGX_ERROR_UNEXPECTED is returned.\n C. sgx_cmac128_final - function obtains the hash value\n Upon completing the process of computing a hash over a set of data or sets of data,\n this function populates the hash value.\n Return: If hash pointer or context pointer are NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n If the function fails then SGX_ERROR_UNEXPECTED is returned.\n D. sgx_cmac128_close - SHOULD BE CALLED to clean up the CMAC state\n Upon populating the hash value over a set of data or sets of data,\n this function is used to free the CMAC state.\n Return: If CMAC state pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_cmac_128bit_key_t *p_key - Pointer to the key used in encryption/decryption operation\n uint8_t *p_src - Pointer to the input stream to be MAC'd\n uint32_t src_len - Length of the input stream to be MAC'd\n Output: sgx_cmac_gcm_128bit_tag_t *p_mac - Pointer to the resultant MAC"] pub fn sgx_rijndael128_cmac_msg (p_key : * const sgx_cmac_128bit_key_t , p_src : * const u8 , src_len : u32 , p_mac : * mut sgx_cmac_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:12606 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Returns Hash calculation and clean up CMAC state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_cmac_state_handle_t cmac_handle - Handle to the CMAC state\n Output: sgx_cmac_128bit_tag_t *p_hash - Resultant hash from operation"] pub fn sgx_cmac128_final (cmac_handle : sgx_cmac_state_handle_t , p_hash : * mut sgx_cmac_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:11607 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Allocates and initializes CMAC state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_cmac_128bit_key_t *p_key - Pointer to the key used in encryption/decryption operation\n Output: sgx_cmac_state_handle_t *p_cmac_handle - Pointer to the handle of the CMAC state"] pub fn sgx_cmac128_init (p_key : * const sgx_cmac_128bit_key_t , p_cmac_handle : * mut sgx_cmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13048 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Clean up the CMAC state\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_cmac_state_handle_t cmac_handle - Handle to the CMAC state"] pub fn sgx_cmac128_close (cmac_handle : sgx_cmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:12091 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Updates CMAC has calculation based on the input message.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_cmac_state_handle_t cmac_handle - Handle to the CMAC state\n uint8_t *p_src - Pointer to the input stream to be hashed\n uint32_t src_len - Length of the input stream to be hashed"] pub fn sgx_cmac128_update (p_src : * const u8 , src_len : u32 , cmac_handle : sgx_cmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13351 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac_sha256_msg (p_src : * const core :: ffi :: c_uchar , src_len : core :: ffi :: c_int , p_key : * const core :: ffi :: c_uchar , key_len : core :: ffi :: c_int , p_mac : * mut core :: ffi :: c_uchar , mac_len : core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:12606 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Returns Hash calculation and clean up CMAC state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_cmac_state_handle_t cmac_handle - Handle to the CMAC state\n Output: sgx_cmac_128bit_tag_t *p_hash - Resultant hash from operation"] pub fn sgx_cmac128_final (cmac_handle : sgx_cmac_state_handle_t , p_hash : * mut sgx_cmac_128bit_tag_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13631 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac256_init (p_key : * const core :: ffi :: c_uchar , key_len : core :: ffi :: c_int , p_hmac_handle : * mut sgx_hmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13048 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Clean up the CMAC state\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: sgx_cmac_state_handle_t cmac_handle - Handle to the CMAC state"] pub fn sgx_cmac128_close (cmac_handle : sgx_cmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13810 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac256_update (p_src : * const u8 , src_len : core :: ffi :: c_int , hmac_handle : sgx_hmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13351 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac_sha256_msg (p_src : * const core :: ffi :: c_uchar , src_len : core :: ffi :: c_int , p_key : * const core :: ffi :: c_uchar , key_len : core :: ffi :: c_int , p_mac : * mut core :: ffi :: c_uchar , mac_len : core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13963 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac256_final (p_hash : * mut core :: ffi :: c_uchar , hash_len : core :: ffi :: c_int , hmac_handle : sgx_hmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13631 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac256_init (p_key : * const core :: ffi :: c_uchar , key_len : core :: ffi :: c_int , p_hmac_handle : * mut sgx_hmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:14135 [INFO] [stdout] | [INFO] [stdout] 3 | ... sgx_status_t ; } extern "C" { pub fn sgx_hmac256_close (hmac_handle : sgx_hmac_state_handle_t) -> sgx_status_t ; } extern "C" { # [do... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13810 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac256_update (p_src : * const u8 , src_len : core :: ffi :: c_int , hmac_handle : sgx_hmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:14233 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " AES-CTR 128-bit - Only 128-bit key size is supported.\n\n These functions encrypt/decrypt the input data stream of a variable length according\n to the CTR mode as specified in [NIST SP 800-38A]. The counter can be thought of as\n an IV which increments on successive encryption or decryption calls. For a given\n dataset or data stream the incremented counter block should be used on successive\n calls of the encryption/decryption process for that given stream. However for\n new or different datasets/streams, the same counter should not be reused, instead\n initialize the counter for the new data set.\n Note: SGXSSL based version doesn't support user given ctr_inc_bits. It use OpenSSL's implementation\n which divide the counter block into two parts ([IV][counter])\n\n sgx_aes_ctr_encrypt\n Return: If source, key, counter, or destination pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If the encryption process fails then SGX_ERROR_UNEXPECTED is returned.\n sgx_aes_ctr_decrypt\n Return: If source, key, counter, or destination pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If the decryption process fails then SGX_ERROR_UNEXPECTED is returned.\n\n Parameters:\n Return:\n sgx_status_t - SGX_SUCCESS or failure as defined\n in sgx_error.h\n Inputs:\n sgx_aes_128bit_key_t *p_key - Pointer to the key used in\n encryption/decryption operation\n uint8_t *p_src - Pointer to the input stream to be\n encrypted/decrypted\n uint32_t src_len - Length of the input stream to be\n encrypted/decrypted\n uint8_t *p_ctr - Pointer to the counter block\n uint32_t ctr_inc_bits - Number of bits in counter to be\n incremented\n Output:\n uint8_t *p_dst - Pointer to the cipher text.\n Size of buffer should be >= src_len."] pub fn sgx_aes_ctr_encrypt (p_key : * const sgx_aes_ctr_128bit_key_t , p_src : * const u8 , src_len : u32 , p_ctr : * mut u8 , ctr_inc_bits : u32 , p_dst : * mut u8) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:13963 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_hmac256_final (p_hash : * mut core :: ffi :: c_uchar , hash_len : core :: ffi :: c_int , hmac_handle : sgx_hmac_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:16622 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_aes_ctr_decrypt (p_key : * const sgx_aes_ctr_128bit_key_t , p_src : * const u8 , src_len : u32 , p_ctr : * mut u8 , ctr_inc_bits : u32 , p_dst : * mut u8) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:14135 [INFO] [stdout] | [INFO] [stdout] 3 | ... sgx_status_t ; } extern "C" { pub fn sgx_hmac256_close (hmac_handle : sgx_hmac_state_handle_t) -> sgx_status_t ; } extern "C" { # [do... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:16821 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Elliptic Curve Cryptography based on GF(p), 256 bit.\n\n Elliptic curve cryptosystems (ECCs) implement a different way of creating public keys.\n Because elliptic curve calculation is based on the addition of the rational points in\n the (x,y) plane and it is difficult to solve a discrete logarithm from these points,\n a higher level of security is achieved through the cryptographic schemes that use the\n elliptic curves. The cryptographic systems that encrypt messages by using the properties\n of elliptic curves are hard to attack due to the extreme complexity of deciphering the\n private key.\n\n Use of elliptic curves allows for shorter public key length and encourage cryptographers\n to create cryptosystems with the same or higher encryption strength as the RSA or DSA\n cryptosystems. Because of the relatively short key length, ECCs do encryption and decryption\n faster on the hardware that requires less computation processing volumes. For example, with\n a key length of 150-350 bits, ECCs provide the same encryption strength as the cryptosystems\n who have to use 600 -1400 bits.\n\n ECCP stands for Elliptic Curve Cryptography Prime and these functions include operations\n over a prime finite field GF(p).\n\n/\n/** Allocates and initializes ecc context.\n The function initializes the context of the elliptic curve cryptosystem over the\n prime finite field GF(p). This function allocates and initializes the ecc context.\n Return: If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If context creation fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Output: sgx_ecc_state_handle_t *p_ecc_handle - Pointer to the handle of the ECC crypto system"] pub fn sgx_ecc256_open_context (p_ecc_handle : * mut sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:14233 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " AES-CTR 128-bit - Only 128-bit key size is supported.\n\n These functions encrypt/decrypt the input data stream of a variable length according\n to the CTR mode as specified in [NIST SP 800-38A]. The counter can be thought of as\n an IV which increments on successive encryption or decryption calls. For a given\n dataset or data stream the incremented counter block should be used on successive\n calls of the encryption/decryption process for that given stream. However for\n new or different datasets/streams, the same counter should not be reused, instead\n initialize the counter for the new data set.\n Note: SGXSSL based version doesn't support user given ctr_inc_bits. It use OpenSSL's implementation\n which divide the counter block into two parts ([IV][counter])\n\n sgx_aes_ctr_encrypt\n Return: If source, key, counter, or destination pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If the encryption process fails then SGX_ERROR_UNEXPECTED is returned.\n sgx_aes_ctr_decrypt\n Return: If source, key, counter, or destination pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If the decryption process fails then SGX_ERROR_UNEXPECTED is returned.\n\n Parameters:\n Return:\n sgx_status_t - SGX_SUCCESS or failure as defined\n in sgx_error.h\n Inputs:\n sgx_aes_128bit_key_t *p_key - Pointer to the key used in\n encryption/decryption operation\n uint8_t *p_src - Pointer to the input stream to be\n encrypted/decrypted\n uint32_t src_len - Length of the input stream to be\n encrypted/decrypted\n uint8_t *p_ctr - Pointer to the counter block\n uint32_t ctr_inc_bits - Number of bits in counter to be\n incremented\n Output:\n uint8_t *p_dst - Pointer to the cipher text.\n Size of buffer should be >= src_len."] pub fn sgx_aes_ctr_encrypt (p_key : * const sgx_aes_ctr_128bit_key_t , p_src : * const u8 , src_len : u32 , p_ctr : * mut u8 , ctr_inc_bits : u32 , p_dst : * mut u8) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:18738 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Cleans up ecc context.\n Return: If context pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Output: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system"] pub fn sgx_ecc256_close_context (ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:16622 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn sgx_aes_ctr_decrypt (p_key : * const sgx_aes_ctr_128bit_key_t , p_src : * const u8 , src_len : u32 , p_ctr : * mut u8 , ctr_inc_bits : u32 , p_dst : * mut u8) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:19132 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Populates private/public key pair.\n NOTE: Caller code allocates memory for Private & Public key pointers to be populated\n\n The function generates a private key p_private and computes a public key p_public of the\n elliptic cryptosystem over a finite field GF(p).\n\n The private key p_private is a number that lies in the range of [1, n-1] where n is\n the order of the elliptic curve base point.\n\n The public key p_public is an elliptic curve point such that p_public = p_private *G,\n where G is the base point of the elliptic curve.\n\n The context of the point p_public as an elliptic curve point must be created by using\n the function sgx_ecc256_open_context.\n\n Return: If context, public key, or private key pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the key creation process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n Outputs: sgx_ec256_private_t *p_private - Pointer to the private key - LITTLE ENDIAN\n sgx_ec256_public_t *p_public - Pointer to the public key - LITTLE ENDIAN"] pub fn sgx_ecc256_create_key_pair (p_private : * mut sgx_ec256_private_t , p_public : * mut sgx_ec256_public_t , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:16821 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Elliptic Curve Cryptography based on GF(p), 256 bit.\n\n Elliptic curve cryptosystems (ECCs) implement a different way of creating public keys.\n Because elliptic curve calculation is based on the addition of the rational points in\n the (x,y) plane and it is difficult to solve a discrete logarithm from these points,\n a higher level of security is achieved through the cryptographic schemes that use the\n elliptic curves. The cryptographic systems that encrypt messages by using the properties\n of elliptic curves are hard to attack due to the extreme complexity of deciphering the\n private key.\n\n Use of elliptic curves allows for shorter public key length and encourage cryptographers\n to create cryptosystems with the same or higher encryption strength as the RSA or DSA\n cryptosystems. Because of the relatively short key length, ECCs do encryption and decryption\n faster on the hardware that requires less computation processing volumes. For example, with\n a key length of 150-350 bits, ECCs provide the same encryption strength as the cryptosystems\n who have to use 600 -1400 bits.\n\n ECCP stands for Elliptic Curve Cryptography Prime and these functions include operations\n over a prime finite field GF(p).\n\n/\n/** Allocates and initializes ecc context.\n The function initializes the context of the elliptic curve cryptosystem over the\n prime finite field GF(p). This function allocates and initializes the ecc context.\n Return: If out of enclave memory, SGX_ERROR_OUT_OF_MEMORY is returned.\n If context creation fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Output: sgx_ecc_state_handle_t *p_ecc_handle - Pointer to the handle of the ECC crypto system"] pub fn sgx_ecc256_open_context (p_ecc_handle : * mut sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:20566 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Checks whether the input point is a valid point on the given elliptic curve.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to ECC crypto system\n sgx_ec256_public_t *p_point - Pointer to perform validity check on - LITTLE ENDIAN\n Output: int *p_valid - Return 0 if the point is an invalid point on ECC curve"] pub fn sgx_ecc256_check_point (p_point : * const sgx_ec256_public_t , ecc_handle : sgx_ecc_state_handle_t , p_valid : * mut core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:18738 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Cleans up ecc context.\n Return: If context pointer is NULL, SGX_ERROR_INVALID_PARAMETER is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Output: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system"] pub fn sgx_ecc256_close_context (ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:21171 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes DH shared key based on own (local) private key and remote public Ga Key.\n NOTE: Caller code allocates memory for Shared key pointer to be populated\n\n The function computes a secret number bnShare, which is a secret key shared between\n two participants of the cryptosystem.\n\n In cryptography, metasyntactic names such as Alice as Bob are normally used as examples\n and in discussions and stand for participant A and participant B.\n\n Both participants (Alice and Bob) use the cryptosystem for receiving a common secret point\n on the elliptic curve called a secret key. To receive a secret key, participants apply the\n Diffie-Hellman key-agreement scheme involving public key exchange. The value of the secret\n key entirely depends on participants.\n\n According to the scheme, Alice and Bob perform the following operations:\n 1. Alice calculates her own public key pubKeyA by using her private key\n privKeyA: pubKeyA = privKeyA *G, where G is the base point of the elliptic curve.\n 2. Alice passes the public key to Bob.\n 3. Bob calculates his own public key pubKeyB by using his private key\n privKeyB: pubKeyB = privKeyB *G, where G is a base point of the elliptic curve.\n 4. Bob passes the public key to Alice.\n 5. Alice gets Bob's public key and calculates the secret point shareA. When calculating,\n she uses her own private key and Bob's public key and applies the following formula:\n shareA = privKeyA *pubKeyB = privKeyA *privKeyB *G.\n 6. Bob gets Alice's public key and calculates the secret point shareB. When calculating,\n he uses his own private key and Alice's public key and applies the following formula:\n shareB = privKeyB *pubKeyA = privKeyB *privKeyA *G.\n\n Because the following equation is true privKeyA *privKeyB *G = privKeyB *privKeyA *G,\n the result of both calculations is the same, that is, the equation shareA = shareB is true.\n The secret point serves as a secret key.\n\n Shared secret bnShare is an x-coordinate of the secret point on the elliptic curve. The elliptic\n curve domain parameters must be hitherto defined by the function: sgx_ecc256_open_context.\n\n Return: If context, public key, private key, or shared key pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the remote public key is not a valid point on the elliptic curve,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the key creation process fails then SGX_ERROR_UNEXPECTED is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_private_t *p_private_b - Pointer to the local private key - LITTLE ENDIAN\n sgx_ec256_public_t *p_public_ga - Pointer to the remote public key - LITTLE ENDIAN\n Output: sgx_ec256_dh_shared_t *p_shared_key - Pointer to the shared DH key - LITTLE ENDIAN"] pub fn sgx_ecc256_compute_shared_dhkey (p_private_b : * const sgx_ec256_private_t , p_public_ga : * const sgx_ec256_public_t , p_shared_key : * mut sgx_ec256_dh_shared_t , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:19132 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Populates private/public key pair.\n NOTE: Caller code allocates memory for Private & Public key pointers to be populated\n\n The function generates a private key p_private and computes a public key p_public of the\n elliptic cryptosystem over a finite field GF(p).\n\n The private key p_private is a number that lies in the range of [1, n-1] where n is\n the order of the elliptic curve base point.\n\n The public key p_public is an elliptic curve point such that p_public = p_private *G,\n where G is the base point of the elliptic curve.\n\n The context of the point p_public as an elliptic curve point must be created by using\n the function sgx_ecc256_open_context.\n\n Return: If context, public key, or private key pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the key creation process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n Outputs: sgx_ec256_private_t *p_private - Pointer to the private key - LITTLE ENDIAN\n sgx_ec256_public_t *p_public - Pointer to the public key - LITTLE ENDIAN"] pub fn sgx_ecc256_create_key_pair (p_private : * mut sgx_ec256_private_t , p_public : * mut sgx_ec256_public_t , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:24408 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes signature for data based on private key.\n\n A message digest is a fixed size number derived from the original message with\n an applied hash function over the binary code of the message. (SHA256 in this case)\n The signer's private key and the message digest are used to create a signature.\n\n A digital signature over a message consists of a pair of large numbers, 256-bits each,\n which the given function computes.\n\n The scheme used for computing a digital signature is of the ECDSA scheme,\n an elliptic curve of the DSA scheme.\n\n The keys can be generated and set up by the function: sgx_ecc256_create_key_pair.\n\n The elliptic curve domain parameters must be created by function:\n sgx_ecc256_open_context\n\n Return: If context, private key, signature or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the signature creation process fails then SGX_ERROR_UNEXPECTED is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_private_t *p_private - Pointer to the private key - LITTLE ENDIAN\n uint8_t *p_data - Pointer to the data to be signed\n uint32_t data_size - Size of the data to be signed\n Output: ec256_signature_t *p_signature - Pointer to the signature - LITTLE ENDIAN"] pub fn sgx_ecdsa_sign (p_data : * const u8 , data_size : u32 , p_private : * const sgx_ec256_private_t , p_signature : * mut sgx_ec256_signature_t , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:20566 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Checks whether the input point is a valid point on the given elliptic curve.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to ECC crypto system\n sgx_ec256_public_t *p_point - Pointer to perform validity check on - LITTLE ENDIAN\n Output: int *p_valid - Return 0 if the point is an invalid point on ECC curve"] pub fn sgx_ecc256_check_point (p_point : * const sgx_ec256_public_t , ecc_handle : sgx_ecc_state_handle_t , p_valid : * mut core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:26070 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Verifies the signature for the given data based on the public key.\n This API verifies the hash of input data `verify(SHA256(p_data))`. First it'll calculate SHA256 hash for given data\n and then verify the signature for this hash.\n\n A digital signature over a message consists of a pair of large numbers, 256-bits each,\n which could be created by function: sgx_ecdsa_sign. The scheme used for computing a\n digital signature is of the ECDSA scheme, an elliptic curve of the DSA scheme.\n\n The typical result of the digital signature verification is one of the two values:\n SGX_Generic_ECValid - Digital signature is valid\n SGX_Generic_ECInvalidSignature - Digital signature is not valid\n\n The elliptic curve domain parameters must be created by function:\n sgx_ecc256_open_context\n\n Return: If context, public key, signature, result or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the verification process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_public_t *p_public - Pointer to the public key\n uint8_t *p_data - Pointer to the data to be verified\n uint32_t data_size - Size of the data to be verified\n sgx_ec256_signature_t *p_signature - Pointer to the signature\n Output: uint8_t *p_result - Pointer to the result of verification check"] pub fn sgx_ecdsa_verify (p_data : * const u8 , data_size : u32 , p_public : * const sgx_ec256_public_t , p_signature : * const sgx_ec256_signature_t , p_result : * mut u8 , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:21171 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes DH shared key based on own (local) private key and remote public Ga Key.\n NOTE: Caller code allocates memory for Shared key pointer to be populated\n\n The function computes a secret number bnShare, which is a secret key shared between\n two participants of the cryptosystem.\n\n In cryptography, metasyntactic names such as Alice as Bob are normally used as examples\n and in discussions and stand for participant A and participant B.\n\n Both participants (Alice and Bob) use the cryptosystem for receiving a common secret point\n on the elliptic curve called a secret key. To receive a secret key, participants apply the\n Diffie-Hellman key-agreement scheme involving public key exchange. The value of the secret\n key entirely depends on participants.\n\n According to the scheme, Alice and Bob perform the following operations:\n 1. Alice calculates her own public key pubKeyA by using her private key\n privKeyA: pubKeyA = privKeyA *G, where G is the base point of the elliptic curve.\n 2. Alice passes the public key to Bob.\n 3. Bob calculates his own public key pubKeyB by using his private key\n privKeyB: pubKeyB = privKeyB *G, where G is a base point of the elliptic curve.\n 4. Bob passes the public key to Alice.\n 5. Alice gets Bob's public key and calculates the secret point shareA. When calculating,\n she uses her own private key and Bob's public key and applies the following formula:\n shareA = privKeyA *pubKeyB = privKeyA *privKeyB *G.\n 6. Bob gets Alice's public key and calculates the secret point shareB. When calculating,\n he uses his own private key and Alice's public key and applies the following formula:\n shareB = privKeyB *pubKeyA = privKeyB *privKeyA *G.\n\n Because the following equation is true privKeyA *privKeyB *G = privKeyB *privKeyA *G,\n the result of both calculations is the same, that is, the equation shareA = shareB is true.\n The secret point serves as a secret key.\n\n Shared secret bnShare is an x-coordinate of the secret point on the elliptic curve. The elliptic\n curve domain parameters must be hitherto defined by the function: sgx_ecc256_open_context.\n\n Return: If context, public key, private key, or shared key pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the remote public key is not a valid point on the elliptic curve,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the key creation process fails then SGX_ERROR_UNEXPECTED is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_private_t *p_private_b - Pointer to the local private key - LITTLE ENDIAN\n sgx_ec256_public_t *p_public_ga - Pointer to the remote public key - LITTLE ENDIAN\n Output: sgx_ec256_dh_shared_t *p_shared_key - Pointer to the shared DH key - LITTLE ENDIAN"] pub fn sgx_ecc256_compute_shared_dhkey (p_private_b : * const sgx_ec256_private_t , p_public_ga : * const sgx_ec256_public_t , p_shared_key : * mut sgx_ec256_dh_shared_t , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:27873 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Directly verify the signature for the given data based on the public key. (Without calculating data's hash) see sgx_ecdsa_verify.\n\n A digital signature over a message consists of a pair of large numbers, 256-bits each,\n which could be created by function: sgx_ecdsa_sign. The scheme used for computing a\n digital signature is of the ECDSA scheme, an elliptic curve of the DSA scheme.\n\n The typical result of the digital signature verification is one of the two values:\n SGX_Generic_ECValid - Digital signature is valid\n SGX_Generic_ECInvalidSignature - Digital signature is not valid\n\n The elliptic curve domain parameters must be created by function:\n sgx_ecc256_open_context\n\n Return: If context, public key, signature, result or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the verification process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_public_t *p_public - Pointer to the public key\n uint8_t *p_data - Pointer to the data to be verified\n sgx_ec256_signature_t *p_signature - Pointer to the signature\n Output: uint8_t *p_result - Pointer to the result of verification check"] pub fn sgx_ecdsa_verify_hash (p_data : * const u8 , p_public : * const sgx_ec256_public_t , p_signature : * const sgx_ec256_signature_t , p_result : * mut u8 , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:24408 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes signature for data based on private key.\n\n A message digest is a fixed size number derived from the original message with\n an applied hash function over the binary code of the message. (SHA256 in this case)\n The signer's private key and the message digest are used to create a signature.\n\n A digital signature over a message consists of a pair of large numbers, 256-bits each,\n which the given function computes.\n\n The scheme used for computing a digital signature is of the ECDSA scheme,\n an elliptic curve of the DSA scheme.\n\n The keys can be generated and set up by the function: sgx_ecc256_create_key_pair.\n\n The elliptic curve domain parameters must be created by function:\n sgx_ecc256_open_context\n\n Return: If context, private key, signature or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the signature creation process fails then SGX_ERROR_UNEXPECTED is returned.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_private_t *p_private - Pointer to the private key - LITTLE ENDIAN\n uint8_t *p_data - Pointer to the data to be signed\n uint32_t data_size - Size of the data to be signed\n Output: ec256_signature_t *p_signature - Pointer to the signature - LITTLE ENDIAN"] pub fn sgx_ecdsa_sign (p_data : * const u8 , data_size : u32 , p_private : * const sgx_ec256_private_t , p_signature : * mut sgx_ec256_signature_t , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:29496 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes signature for a given data based on RSA 3072 private key\n\n A digital signature over a message consists of a 3072 bit number.\n\n Return: If private key, signature or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the signing process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_data - Pointer to the data to be signed\n uint32_t data_size - Size of the data to be signed\n sgx_rsa3072_key_t *p_key - Pointer to the RSA key.\n\t\t\t\tNote: In IPP based version p_key->e is unused, hence it can be NULL.\n Output: sgx_rsa3072_signature_t *p_signature - Pointer to the signature output"] pub fn sgx_rsa3072_sign (p_data : * const u8 , data_size : u32 , p_key : * const sgx_rsa3072_key_t , p_signature : * mut sgx_rsa3072_signature_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:26070 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Verifies the signature for the given data based on the public key.\n This API verifies the hash of input data `verify(SHA256(p_data))`. First it'll calculate SHA256 hash for given data\n and then verify the signature for this hash.\n\n A digital signature over a message consists of a pair of large numbers, 256-bits each,\n which could be created by function: sgx_ecdsa_sign. The scheme used for computing a\n digital signature is of the ECDSA scheme, an elliptic curve of the DSA scheme.\n\n The typical result of the digital signature verification is one of the two values:\n SGX_Generic_ECValid - Digital signature is valid\n SGX_Generic_ECInvalidSignature - Digital signature is not valid\n\n The elliptic curve domain parameters must be created by function:\n sgx_ecc256_open_context\n\n Return: If context, public key, signature, result or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the verification process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_public_t *p_public - Pointer to the public key\n uint8_t *p_data - Pointer to the data to be verified\n uint32_t data_size - Size of the data to be verified\n sgx_ec256_signature_t *p_signature - Pointer to the signature\n Output: uint8_t *p_result - Pointer to the result of verification check"] pub fn sgx_ecdsa_verify (p_data : * const u8 , data_size : u32 , p_public : * const sgx_ec256_public_t , p_signature : * const sgx_ec256_signature_t , p_result : * mut u8 , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:30468 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes signature for a given data based on RSA 3072 private key and optional\n corresponding public key.\n\n A digital signature over a message consists of a 3072 bit number.\n\n Return: If private key, signature or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the signing process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_data - Pointer to the data to be signed\n uint32_t data_size - Size of the data to be signed\n sgx_rsa3072_key_t *p_key - Pointer to the RSA key.\n\t\t\t\tNote: In IPP based version p_key->e is unused, hence it can be NULL.\n sgx_rsa3072_public_key_t *p_public - Pointer to the public key(optional).\n Output: sgx_rsa3072_signature_t *p_signature - Pointer to the signature output"] pub fn sgx_rsa3072_sign_ex (p_data : * const u8 , data_size : u32 , p_key : * const sgx_rsa3072_key_t , p_public : * const sgx_rsa3072_public_key_t , p_signature : * mut sgx_rsa3072_signature_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:27873 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Directly verify the signature for the given data based on the public key. (Without calculating data's hash) see sgx_ecdsa_verify.\n\n A digital signature over a message consists of a pair of large numbers, 256-bits each,\n which could be created by function: sgx_ecdsa_sign. The scheme used for computing a\n digital signature is of the ECDSA scheme, an elliptic curve of the DSA scheme.\n\n The typical result of the digital signature verification is one of the two values:\n SGX_Generic_ECValid - Digital signature is valid\n SGX_Generic_ECInvalidSignature - Digital signature is not valid\n\n The elliptic curve domain parameters must be created by function:\n sgx_ecc256_open_context\n\n Return: If context, public key, signature, result or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the verification process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system\n sgx_ec256_public_t *p_public - Pointer to the public key\n uint8_t *p_data - Pointer to the data to be verified\n sgx_ec256_signature_t *p_signature - Pointer to the signature\n Output: uint8_t *p_result - Pointer to the result of verification check"] pub fn sgx_ecdsa_verify_hash (p_data : * const u8 , p_public : * const sgx_ec256_public_t , p_signature : * const sgx_ec256_signature_t , p_result : * mut u8 , ecc_handle : sgx_ecc_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:31616 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Verifies the signature for the given data based on the RSA 3072 public key.\n\n A digital signature over a message consists of a 3072 bit number.\n\n The typical result of the digital signature verification is one of the two values:\n SGX_Generic_ECValid - Digital signature is valid\n SGX_Generic_ECInvalidSignature - Digital signature is not valid\n\n Return: If public key, signature, result or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the verification process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_data - Pointer to the data to be verified\n uint32_t data_size - Size of the data to be verified\n sgx_rsa3072_public_key_t *p_public - Pointer to the public key\n sgx_rsa3072_signature_t *p_signature - Pointer to the signature\n Output: sgx_rsa_result_t *p_result - Pointer to the result of verification check"] pub fn sgx_rsa3072_verify (p_data : * const u8 , data_size : u32 , p_public : * const sgx_rsa3072_public_key_t , p_signature : * const sgx_rsa3072_signature_t , p_result : * mut sgx_rsa_result_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:29496 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes signature for a given data based on RSA 3072 private key\n\n A digital signature over a message consists of a 3072 bit number.\n\n Return: If private key, signature or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the signing process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_data - Pointer to the data to be signed\n uint32_t data_size - Size of the data to be signed\n sgx_rsa3072_key_t *p_key - Pointer to the RSA key.\n\t\t\t\tNote: In IPP based version p_key->e is unused, hence it can be NULL.\n Output: sgx_rsa3072_signature_t *p_signature - Pointer to the signature output"] pub fn sgx_rsa3072_sign (p_data : * const u8 , data_size : u32 , p_key : * const sgx_rsa3072_key_t , p_signature : * mut sgx_rsa3072_signature_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:32889 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA key pair with key size and public exponent.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: p_e [In/Out] Pointer to the public exponent e.\n n_byte_size [In] Size in bytes of the key modulus.\n e_byte_size\t[In] Size in bytes of the key public exponent.\n Output: p_*\t\t\t[Out] Pointer to the matching key parameter/factor buffer."] pub fn sgx_create_rsa_key_pair (n_byte_size : core :: ffi :: c_int , e_byte_size : core :: ffi :: c_int , p_n : * mut core :: ffi :: c_uchar , p_d : * mut core :: ffi :: c_uchar , p_e : * mut core :: ffi :: c_uchar , p_p : * mut core :: ffi :: c_uchar , p_q : * mut core :: ffi :: c_uchar , p_dmp1 : * mut core :: ffi :: c_uchar , p_dmq1 : * mut core :: ffi :: c_uchar , p_iqmp : * mut core :: ffi :: c_uchar) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:30468 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Computes signature for a given data based on RSA 3072 private key and optional\n corresponding public key.\n\n A digital signature over a message consists of a 3072 bit number.\n\n Return: If private key, signature or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the signing process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_data - Pointer to the data to be signed\n uint32_t data_size - Size of the data to be signed\n sgx_rsa3072_key_t *p_key - Pointer to the RSA key.\n\t\t\t\tNote: In IPP based version p_key->e is unused, hence it can be NULL.\n sgx_rsa3072_public_key_t *p_public - Pointer to the public key(optional).\n Output: sgx_rsa3072_signature_t *p_signature - Pointer to the signature output"] pub fn sgx_rsa3072_sign_ex (p_data : * const u8 , data_size : u32 , p_key : * const sgx_rsa3072_key_t , p_public : * const sgx_rsa3072_public_key_t , p_signature : * mut sgx_rsa3072_signature_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:33795 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Decrypt ciphertext [pin_data] using RSA private key, with OAEP SHA-256\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: rsa_key\t- Pointer to the RSA private key.\n pin_data - Pointer to the input ciphertext buffer.\n pin_len - Ciphertext buffer size.\n pout_len[In/Out] - Pointer to the length of output buffer.\n Output: pout_data - Pointer to the output buffer.\n pout_len - Pointer to amount of data written.\n"] pub fn sgx_rsa_priv_decrypt_sha256 (rsa_key : * const core :: ffi :: c_void , pout_data : * mut core :: ffi :: c_uchar , pout_len : * mut usize , pin_data : * const core :: ffi :: c_uchar , pin_len : usize) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:34561 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Encrypt input data [pin_data] using RSA public key, with OAEP SHA-256\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: rsa_key - Pointer to the RSA public key.\n pin_data - Pointer to the input data buffer.\n pin_len - Input buffer size.\n pout_len[In/Out] - Pointer to the length of output buffer.\n Output: pout_data - Pointer to the output buffer.\n pout_len - Pointer to amount of data (ciphertext) written.\n"] pub fn sgx_rsa_pub_encrypt_sha256 (rsa_key : * const core :: ffi :: c_void , pout_data : * mut core :: ffi :: c_uchar , pout_len : * mut usize , pin_data : * const core :: ffi :: c_uchar , pin_len : usize) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:31616 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Verifies the signature for the given data based on the RSA 3072 public key.\n\n A digital signature over a message consists of a 3072 bit number.\n\n The typical result of the digital signature verification is one of the two values:\n SGX_Generic_ECValid - Digital signature is valid\n SGX_Generic_ECInvalidSignature - Digital signature is not valid\n\n Return: If public key, signature, result or data pointer is NULL,\n SGX_ERROR_INVALID_PARAMETER is returned.\n If the verification process fails then SGX_ERROR_UNEXPECTED is returned.\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: uint8_t *p_data - Pointer to the data to be verified\n uint32_t data_size - Size of the data to be verified\n sgx_rsa3072_public_key_t *p_public - Pointer to the public key\n sgx_rsa3072_signature_t *p_signature - Pointer to the signature\n Output: sgx_rsa_result_t *p_result - Pointer to the result of verification check"] pub fn sgx_rsa3072_verify (p_data : * const u8 , data_size : u32 , p_public : * const sgx_rsa3072_public_key_t , p_signature : * const sgx_rsa3072_signature_t , p_result : * mut sgx_rsa_result_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:32889 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA key pair with key size and public exponent.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: p_e [In/Out] Pointer to the public exponent e.\n n_byte_size [In] Size in bytes of the key modulus.\n e_byte_size\t[In] Size in bytes of the key public exponent.\n Output: p_*\t\t\t[Out] Pointer to the matching key parameter/factor buffer."] pub fn sgx_create_rsa_key_pair (n_byte_size : core :: ffi :: c_int , e_byte_size : core :: ffi :: c_int , p_n : * mut core :: ffi :: c_uchar , p_d : * mut core :: ffi :: c_uchar , p_e : * mut core :: ffi :: c_uchar , p_p : * mut core :: ffi :: c_uchar , p_q : * mut core :: ffi :: c_uchar , p_dmp1 : * mut core :: ffi :: c_uchar , p_dmq1 : * mut core :: ffi :: c_uchar , p_iqmp : * mut core :: ffi :: c_uchar) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:35325 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA private key using input buffer factors in little endian.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: mod_size - Size in bytes of the key modulus.\n exp_size - Size in bytes of the public exponent e.\n p_rsa_key_e\t- Pointer to the public exponent e buffer.\n p_rsa_key_p\t- Pointer to the prime number p.\n p_rsa_key_q\t- Pointer to the prime number q.\n p_rsa_key_dmp1 - Pointer to dmp1 [d mod (p-1)].\n p_rsa_key_dmq1 - Pointer to dmq1 [d mod (q-1)].\n p_rsa_key_iqmp - Pointer to iqmp [q^-1 mod p].\n Output: new_pri_key2 - Pointer to the generated private key.\n"] pub fn sgx_create_rsa_priv2_key (mod_size : core :: ffi :: c_int , exp_size : core :: ffi :: c_int , p_rsa_key_e : * const core :: ffi :: c_uchar , p_rsa_key_p : * const core :: ffi :: c_uchar , p_rsa_key_q : * const core :: ffi :: c_uchar , p_rsa_key_dmp1 : * const core :: ffi :: c_uchar , p_rsa_key_dmq1 : * const core :: ffi :: c_uchar , p_rsa_key_iqmp : * const core :: ffi :: c_uchar , new_pri_key2 : * mut * mut core :: ffi :: c_void) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:36523 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA private key using input buffer factors - little endian.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: n_byte_size\t- Size in bytes of the key modulus.\n e_byte_size\t- Size in bytes of the public exponent e.\n d_byte_size\t- Size in bytes of the private exponent d.\n le_e - Pointer to the public exponent e buffer.\n le_n - Pointer to the modulus n buffer.\n le_d - Pointer to the private exponent d buffer.\n Output: new_pri_key1 - Pointer to the generated private key.\n"] pub fn sgx_create_rsa_priv1_key (n_byte_size : core :: ffi :: c_int , e_byte_size : core :: ffi :: c_int , d_byte_size : core :: ffi :: c_int , le_n : * const core :: ffi :: c_uchar , le_e : * const core :: ffi :: c_uchar , le_d : * const core :: ffi :: c_uchar , new_pri_key1 : * mut * mut core :: ffi :: c_void) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:33795 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Decrypt ciphertext [pin_data] using RSA private key, with OAEP SHA-256\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: rsa_key\t- Pointer to the RSA private key.\n pin_data - Pointer to the input ciphertext buffer.\n pin_len - Ciphertext buffer size.\n pout_len[In/Out] - Pointer to the length of output buffer.\n Output: pout_data - Pointer to the output buffer.\n pout_len - Pointer to amount of data written.\n"] pub fn sgx_rsa_priv_decrypt_sha256 (rsa_key : * const core :: ffi :: c_void , pout_data : * mut core :: ffi :: c_uchar , pout_len : * mut usize , pin_data : * const core :: ffi :: c_uchar , pin_len : usize) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:37478 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA public key using input buffer factors in little endian.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: mod_size\t\t- Size in bytes of the key modulus.\n exp_size\t\t- Size in bytes of the public exponent e.\n le_n\t\t\t- Pointer to the modulus n buffer.\n le_e - Pointer to the public exponent e buffer.\n Output: new_pub_key1 - Pointer to the generated public key.\n"] pub fn sgx_create_rsa_pub1_key (mod_size : core :: ffi :: c_int , exp_size : core :: ffi :: c_int , le_n : * const core :: ffi :: c_uchar , le_e : * const core :: ffi :: c_uchar , new_pub_key1 : * mut * mut core :: ffi :: c_void) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:34561 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Encrypt input data [pin_data] using RSA public key, with OAEP SHA-256\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: rsa_key - Pointer to the RSA public key.\n pin_data - Pointer to the input data buffer.\n pin_len - Input buffer size.\n pout_len[In/Out] - Pointer to the length of output buffer.\n Output: pout_data - Pointer to the output buffer.\n pout_len - Pointer to amount of data (ciphertext) written.\n"] pub fn sgx_rsa_pub_encrypt_sha256 (rsa_key : * const core :: ffi :: c_void , pout_data : * mut core :: ffi :: c_uchar , pout_len : * mut usize , pin_data : * const core :: ffi :: c_uchar , pin_len : usize) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:38222 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Clear and free RSA key which was generated by one of the Tcrypto \"sgx_create_rsa_*\" APIs.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: p_rsa_key\t\t- Pointer to the RSA key.\n (Note: All input parameters below are relevant only when using IPP based tcrypto library)\n key_type\t\t- key state type, relevant only when using IPP based tcrypto library.\n Possible options {SGX_RSA_PRIVATE_KEY, SGX_RSA_PUBLIC_KEY}\n mod_size\t\t- RSA key modulus size.\n exp_size\t\t- RSA key public exponent size.\n Output:\n"] pub fn sgx_free_rsa_key (p_rsa_key : * mut core :: ffi :: c_void , key_type : sgx_rsa_key_type_t , mod_size : core :: ffi :: c_int , exp_size : core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:35325 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA private key using input buffer factors in little endian.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: mod_size - Size in bytes of the key modulus.\n exp_size - Size in bytes of the public exponent e.\n p_rsa_key_e\t- Pointer to the public exponent e buffer.\n p_rsa_key_p\t- Pointer to the prime number p.\n p_rsa_key_q\t- Pointer to the prime number q.\n p_rsa_key_dmp1 - Pointer to dmp1 [d mod (p-1)].\n p_rsa_key_dmq1 - Pointer to dmq1 [d mod (q-1)].\n p_rsa_key_iqmp - Pointer to iqmp [q^-1 mod p].\n Output: new_pri_key2 - Pointer to the generated private key.\n"] pub fn sgx_create_rsa_priv2_key (mod_size : core :: ffi :: c_int , exp_size : core :: ffi :: c_int , p_rsa_key_e : * const core :: ffi :: c_uchar , p_rsa_key_p : * const core :: ffi :: c_uchar , p_rsa_key_q : * const core :: ffi :: c_uchar , p_rsa_key_dmp1 : * const core :: ffi :: c_uchar , p_rsa_key_dmq1 : * const core :: ffi :: c_uchar , p_rsa_key_iqmp : * const core :: ffi :: c_uchar , new_pri_key2 : * mut * mut core :: ffi :: c_void) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:39072 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Generates an ECDSA private key based on input random seed.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: hash_drg - Pointer to the input random seed.\n hash_drg_len - Length of the input random seed.\n sgx_nistp256_r_m1 - Pointer to the buffer for n-1 where n is order of the ECC group used.\n sgx_nistp256_r_m1_len - Length for the buffer for nistp256.\n Output: out_key - Pointer to the generated ECDSA private key - BIG ENDIAN\n out_key_len - Length of the prepared buffer for ECDSA private key.\n"] pub fn sgx_calculate_ecdsa_priv_key (hash_drg : * const core :: ffi :: c_uchar , hash_drg_len : core :: ffi :: c_int , sgx_nistp256_r_m1 : * const core :: ffi :: c_uchar , sgx_nistp256_r_m1_len : core :: ffi :: c_int , out_key : * mut core :: ffi :: c_uchar , out_key_len : core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:40015 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Generates an ECC public key based on a given ECC private key.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: p_att_priv_key - Input private key\n Output: p_att_pub_key - Output public key - LITTLE ENDIAN\n"] pub fn sgx_ecc256_calculate_pub_from_priv (p_att_priv_key : * const sgx_ec256_private_t , p_att_pub_key : * mut sgx_ec256_public_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:36523 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA private key using input buffer factors - little endian.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: n_byte_size\t- Size in bytes of the key modulus.\n e_byte_size\t- Size in bytes of the public exponent e.\n d_byte_size\t- Size in bytes of the private exponent d.\n le_e - Pointer to the public exponent e buffer.\n le_n - Pointer to the modulus n buffer.\n le_d - Pointer to the private exponent d buffer.\n Output: new_pri_key1 - Pointer to the generated private key.\n"] pub fn sgx_create_rsa_priv1_key (n_byte_size : core :: ffi :: c_int , e_byte_size : core :: ffi :: c_int , d_byte_size : core :: ffi :: c_int , le_n : * const core :: ffi :: c_uchar , le_e : * const core :: ffi :: c_uchar , le_d : * const core :: ffi :: c_uchar , new_pri_key1 : * mut * mut core :: ffi :: c_void) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:40457 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Allocate and initialize AES-GCM encryption state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: p_key - Input private key.\n p_iv - Input initial vector. Encryption of different messages should use different IVs.\n iv_len - Length of initial vector, usually IV_SIZE.\n p_aad - AAD of AES-GCM, it could be NULL.\n aad_len - length of bytes of AAD.\n Output: aes_gcm_state - AES-GCM state pointer.\n"] pub fn sgx_aes_gcm128_enc_init (p_key : * const u8 , p_iv : * const u8 , iv_len : u32 , p_aad : * const u8 , aad_len : u32 , aes_gcm_state : * mut sgx_aes_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:37478 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Create RSA public key using input buffer factors in little endian.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: mod_size\t\t- Size in bytes of the key modulus.\n exp_size\t\t- Size in bytes of the public exponent e.\n le_n\t\t\t- Pointer to the modulus n buffer.\n le_e - Pointer to the public exponent e buffer.\n Output: new_pub_key1 - Pointer to the generated public key.\n"] pub fn sgx_create_rsa_pub1_key (mod_size : core :: ffi :: c_int , exp_size : core :: ffi :: c_int , le_n : * const core :: ffi :: c_uchar , le_e : * const core :: ffi :: c_uchar , new_pub_key1 : * mut * mut core :: ffi :: c_void) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:41172 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Get authentication tag from the given AES-GCM state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: aes_gcm_state - Pointer to AES-GCM state.\n Output: p_mac - Pointer to SGX_AESGCM_MAC_SIZE buffer to store mac in.\n"] pub fn sgx_aes_gcm128_enc_get_mac (mac : * mut u8 , aes_gcm_state : sgx_aes_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:38222 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Clear and free RSA key which was generated by one of the Tcrypto \"sgx_create_rsa_*\" APIs.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: p_rsa_key\t\t- Pointer to the RSA key.\n (Note: All input parameters below are relevant only when using IPP based tcrypto library)\n key_type\t\t- key state type, relevant only when using IPP based tcrypto library.\n Possible options {SGX_RSA_PRIVATE_KEY, SGX_RSA_PUBLIC_KEY}\n mod_size\t\t- RSA key modulus size.\n exp_size\t\t- RSA key public exponent size.\n Output:\n"] pub fn sgx_free_rsa_key (p_rsa_key : * mut core :: ffi :: c_void , key_type : sgx_rsa_key_type_t , mod_size : core :: ffi :: c_int , exp_size : core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:41585 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Clear and free AES-GCM state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: aes_gcm_state - Pointer to AES-GCM state.\n"] pub fn sgx_aes_gcm_close (aes_gcm_state : sgx_aes_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:39072 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Generates an ECDSA private key based on input random seed.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: hash_drg - Pointer to the input random seed.\n hash_drg_len - Length of the input random seed.\n sgx_nistp256_r_m1 - Pointer to the buffer for n-1 where n is order of the ECC group used.\n sgx_nistp256_r_m1_len - Length for the buffer for nistp256.\n Output: out_key - Pointer to the generated ECDSA private key - BIG ENDIAN\n out_key_len - Length of the prepared buffer for ECDSA private key.\n"] pub fn sgx_calculate_ecdsa_priv_key (hash_drg : * const core :: ffi :: c_uchar , hash_drg_len : core :: ffi :: c_int , sgx_nistp256_r_m1 : * const core :: ffi :: c_uchar , sgx_nistp256_r_m1_len : core :: ffi :: c_int , out_key : * mut core :: ffi :: c_uchar , out_key_len : core :: ffi :: c_int) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:41874 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Encrypt plaintext from p_src into p_dst.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: aes_gcm_state - Pointer to AES-GCM state.\n p_src - Pointer to plaintext buffer.\n src_len - Plaintext length.\n Output: p_dst - Pointer to ciphertext buffer.\n"] pub fn sgx_aes_gcm128_enc_update (p_src : * mut u8 , src_len : u32 , p_dst : * mut u8 , aes_gcm_state : sgx_aes_state_handle_t) -> sgx_status_t ; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:40015 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Generates an ECC public key based on a given ECC private key.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: p_att_priv_key - Input private key\n Output: p_att_pub_key - Output public key - LITTLE ENDIAN\n"] pub fn sgx_ecc256_calculate_pub_from_priv (p_att_priv_key : * const sgx_ec256_private_t , p_att_pub_key : * mut sgx_ec256_public_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:40457 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Allocate and initialize AES-GCM encryption state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: p_key - Input private key.\n p_iv - Input initial vector. Encryption of different messages should use different IVs.\n iv_len - Length of initial vector, usually IV_SIZE.\n p_aad - AAD of AES-GCM, it could be NULL.\n aad_len - length of bytes of AAD.\n Output: aes_gcm_state - AES-GCM state pointer.\n"] pub fn sgx_aes_gcm128_enc_init (p_key : * const u8 , p_iv : * const u8 , iv_len : u32 , p_aad : * const u8 , aad_len : u32 , aes_gcm_state : * mut sgx_aes_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 53 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:41172 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Get authentication tag from the given AES-GCM state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: aes_gcm_state - Pointer to AES-GCM state.\n Output: p_mac - Pointer to SGX_AESGCM_MAC_SIZE buffer to store mac in.\n"] pub fn sgx_aes_gcm128_enc_get_mac (mac : * mut u8 , aes_gcm_state : sgx_aes_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:41585 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Clear and free AES-GCM state.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Input: aes_gcm_state - Pointer to AES-GCM state.\n"] pub fn sgx_aes_gcm_close (aes_gcm_state : sgx_aes_state_handle_t) -> sgx_status_t ; } ex... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/mc-sgx-tcrypto-sys-7b6a2cb1517ac7d1/out/bindings.rs:3:41874 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Encrypt plaintext from p_src into p_dst.\n\n Parameters:\n Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h\n Inputs: aes_gcm_state - Pointer to AES-GCM state.\n p_src - Pointer to plaintext buffer.\n src_len - Plaintext length.\n Output: p_dst - Pointer to ciphertext buffer.\n"] pub fn sgx_aes_gcm128_enc_update (p_src : * mut u8 , src_len : u32 , p_dst : * mut u8 , aes_gcm_state : sgx_aes_state_handle_t) -> sgx_status_t ; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `mc-sgx-tcrypto-sys` (lib) due to 54 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 53 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `mc-sgx-tcrypto-sys` (lib test) due to 54 previous errors [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "94af39844e3becae736c009b69e10abcfeaee8401d5ab3c8ed49791e54986769", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94af39844e3becae736c009b69e10abcfeaee8401d5ab3c8ed49791e54986769", kill_on_drop: false }` [INFO] [stdout] 94af39844e3becae736c009b69e10abcfeaee8401d5ab3c8ed49791e54986769