From 3f59f8a8bc910fcb8d504c700b0015f2c0382ac7 Mon Sep 17 00:00:00 2001 From: Niklas Dusenlund Date: Thu, 4 Sep 2025 23:43:44 +0200 Subject: [PATCH 1/3] simulator-ng: Initial commit --- .github/workflows/ci-common.yml | 1 + CHANGELOG.md | 1 + CMakeLists.txt | 1 + Makefile | 6 + {.cargo => src/rust/.cargo}/config.toml | 2 +- src/rust/README.md | 15 +- src/rust/bitbox02-rust-c/Cargo.toml | 9 + src/rust/bitbox02-rust/src/general/screen.rs | 4 +- src/rust/bitbox02-sys/build.rs | 101 +- src/rust/bitbox02-sys/wrapper.h | 7 + src/rust/bitbox02/Cargo.toml | 3 + src/rust/bitbox02/src/lib.rs | 7 +- src/ui/components/status.c | 4 + src/ui/event.h | 2 +- src/ui/screen_process.h | 4 + test/simulator-ng/.gitignore | 1 + test/simulator-ng/CMakeLists.txt | 65 + test/simulator-ng/Cargo.lock | 3676 ++++++++++++++++++ test/simulator-ng/Cargo.toml | 17 + test/simulator-ng/bg.png | Bin 0 -> 325362 bytes test/simulator-ng/src/main.rs | 677 ++++ 21 files changed, 4556 insertions(+), 47 deletions(-) rename {.cargo => src/rust/.cargo}/config.toml (95%) create mode 100644 test/simulator-ng/.gitignore create mode 100644 test/simulator-ng/CMakeLists.txt create mode 100644 test/simulator-ng/Cargo.lock create mode 100644 test/simulator-ng/Cargo.toml create mode 100644 test/simulator-ng/bg.png create mode 100644 test/simulator-ng/src/main.rs diff --git a/.github/workflows/ci-common.yml b/.github/workflows/ci-common.yml index 1487b933b4..076f1b3735 100644 --- a/.github/workflows/ci-common.yml +++ b/.github/workflows/ci-common.yml @@ -166,6 +166,7 @@ jobs: - factory-setup - firmware-debug - simulator + - simulator-ng runs-on: ubuntu-22.04 container: image: ${{ inputs.container-repo }}:${{ inputs.container-version }} diff --git a/CHANGELOG.md b/CHANGELOG.md index d431cfcdcf..2ae7cd7e4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ customers cannot upgrade their bootloader, its changes are recorded separately. - Add API call to fetch multiple xpubs at once - Add the option for the simulator to write its memory to file. - Bitcoin: add support for OP_RETURN outputs +- simulator-ng: a new simulator with a graphical user interface ### 9.23.2 - Improve touch sensor reliability when the sdcard is inserted diff --git a/CMakeLists.txt b/CMakeLists.txt index bc172c3c82..fdbad4fdfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -403,6 +403,7 @@ else() include(CTest) add_subdirectory(test/unit-test) add_subdirectory(test/simulator) + add_subdirectory(test/simulator-ng) if(COVERAGE) find_program(GCOVR gcovr) if(NOT GCOVR STREQUAL "GCOVR-NOTFOUND") diff --git a/Makefile b/Makefile index 0a5dd552dd..ae1b5152a6 100644 --- a/Makefile +++ b/Makefile @@ -108,6 +108,8 @@ rust-docs: | build $(MAKE) -C build rust-docs simulator: | build-build-noasan $(MAKE) -C build-build-noasan simulator +simulator-ng: | build-build-noasan + $(MAKE) -C build-build-noasan simulator-ng run-simulator: | simulator ./build-build-noasan/bin/simulator unit-test: | build-build @@ -189,3 +191,7 @@ prepare-tidy: | build build-build $(MAKE) -C build-build rust-cbindgen clean: rm -rf build build-build build-debug build-build-noasan + +# When you vendor rust libs avoid duplicates +vendor-rust-deps: + (cd external; ./vendor-rust.sh) diff --git a/.cargo/config.toml b/src/rust/.cargo/config.toml similarity index 95% rename from .cargo/config.toml rename to src/rust/.cargo/config.toml index bd7d967ca6..1c2583b109 100644 --- a/.cargo/config.toml +++ b/src/rust/.cargo/config.toml @@ -17,4 +17,4 @@ branch = "bitbox-20250922" replace-with = "vendored-sources" [source.vendored-sources] -directory = "external/vendor" +directory = "../../external/vendor" diff --git a/src/rust/README.md b/src/rust/README.md index 2bec49f9d4..232c0a5406 100644 --- a/src/rust/README.md +++ b/src/rust/README.md @@ -38,5 +38,16 @@ We generate one header file `rust.h` and ever product specific function is `#ifd # Vendoring -Run the vendoring script `vendor.sh` to vendor dependencies from crates.io. The -script will ensure that also rust std libs dependencies are vendored. +Run the vendoring script `vendor-rust.sh` to vendor dependencies from +crates.io. The script will ensure that also rust std libs dependencies are +vendored. + +When the toolchain (and standard libraries) are updated they usually depend on +newer versions of crates. Update our lockfile to the same versions to avoid +vendoringing duplicate versions. You can use: + +``` +cargo update --precise +``` + +to specify specific versions to up/downgrade to. diff --git a/src/rust/bitbox02-rust-c/Cargo.toml b/src/rust/bitbox02-rust-c/Cargo.toml index 62ecab4a03..6ff57b4be6 100644 --- a/src/rust/bitbox02-rust-c/Cargo.toml +++ b/src/rust/bitbox02-rust-c/Cargo.toml @@ -68,6 +68,15 @@ target-c-unit-tests = [ "firmware", "c-unit-testing", ] +target-simulator-ng = [ + "dep:bitcoin", # for rust_base58_encode_check() + "app-bitcoin", + "app-litecoin", + "app-ethereum", + "app-cardano", + "app-u2f", + "firmware", +] platform-bitbox02 = [] platform-bitbox02plus = ["util/sha2", "bitbox02-noise", "bitbox02-rust"] diff --git a/src/rust/bitbox02-rust/src/general/screen.rs b/src/rust/bitbox02-rust/src/general/screen.rs index 1aedafb50c..0fe778a676 100644 --- a/src/rust/bitbox02-rust/src/general/screen.rs +++ b/src/rust/bitbox02-rust/src/general/screen.rs @@ -14,10 +14,10 @@ use core::time::Duration; -use bitbox02::{delay, ug_clear_buffer, ug_font_select_9x9, ug_put_string, ug_send_buffer}; +use bitbox02::{delay, screen_clear, ug_font_select_9x9, ug_put_string, ug_send_buffer}; pub fn print_debug_internal(duration: Duration, msg: &str) { - ug_clear_buffer(); + screen_clear(); ug_font_select_9x9(); ug_put_string(0, 0, msg, false); ug_send_buffer(); diff --git a/src/rust/bitbox02-sys/build.rs b/src/rust/bitbox02-sys/build.rs index 3734b18664..621855343a 100644 --- a/src/rust/bitbox02-sys/build.rs +++ b/src/rust/bitbox02-sys/build.rs @@ -22,55 +22,62 @@ const ALLOWLIST_VARS: &[&str] = &[ "BIP32_SERIALIZED_LEN", "BIP39_WORDLIST_LEN", "EC_PUBLIC_KEY_LEN", + "font_font_a_11X10", + "font_font_a_9X9", + "font_monogram_5X9", + "font_password_11X12", "INPUT_STRING_MAX_SIZE", "KEYSTORE_MAX_SEED_LENGTH", "MAX_LABEL_SIZE", "MAX_PK_SCRIPT_SIZE", + "MAX_UNLOCK_ATTEMPTS", "MAX_VARINT_SIZE", "MEMORY_DEVICE_NAME_MAX_LEN", "MEMORY_MULTISIG_NAME_MAX_LEN", - "SD_MAX_FILE_SIZE", - "XPUB_ENCODED_LEN", - "font_font_a_11X10", - "font_font_a_9X9", - "font_monogram_5X9", - "font_password_11X12", - "MEMORY_SPI_BLE_FIRMWARE_MAX_SIZE", - "MEMORY_SPI_BLE_FIRMWARE_1_ADDR", - "MEMORY_SPI_BLE_FIRMWARE_2_ADDR", - "MEMORY_PLATFORM_BITBOX02", "MEMORY_PLATFORM_BITBOX02_PLUS", + "MEMORY_PLATFORM_BITBOX02", "MEMORY_SECURECHIP_TYPE_ATECC", "MEMORY_SECURECHIP_TYPE_OPTIGA", - "MAX_UNLOCK_ATTEMPTS", + "MEMORY_SPI_BLE_FIRMWARE_1_ADDR", + "MEMORY_SPI_BLE_FIRMWARE_2_ADDR", + "MEMORY_SPI_BLE_FIRMWARE_MAX_SIZE", + "SCREEN_HEIGHT", + "SCREEN_WIDTH", + "SD_MAX_FILE_SIZE", + "SLIDER_POSITION_TWO_THIRD", + "XPUB_ENCODED_LEN", ]; const ALLOWLIST_TYPES: &[&str] = &[ "buffer_t", "component_t", "confirm_params_t", + "event_types", + "event_slider_data_t", "trinary_input_string_params_t", + "UG_COLOR", ]; const ALLOWLIST_FNS: &[&str] = &[ - "UG_ClearBuffer", - "UG_FontSelect", - "UG_PutString", - "UG_SendBuffer", "bip32_derive_xpub", - "bitbox02_smarteeprom_init", "bitbox_secp256k1_dleq_prove", "bitbox_secp256k1_dleq_verify", + "bitbox02_smarteeprom_init", + "communication_mode_ble_enabled", "confirm_create", "confirm_transaction_address_create", "confirm_transaction_fee_create", "delay_ms", "delay_us", + "emit_event", "empty_create", - "unlock_animation_create", + "fake_memory_factoryreset", + "fake_securechip_event_counter_reset", + "fake_securechip_event_counter", + "hww_setup", "keystore_bip39_mnemonic_to_seed", - "keystore_copy_seed", "keystore_copy_bip39_seed", + "keystore_copy_seed", "keystore_create_and_store_seed", "keystore_encrypt_and_store_seed", "keystore_get_bip39_word", @@ -79,57 +86,64 @@ const ALLOWLIST_FNS: &[&str] = &[ "keystore_mock_unlocked", "keystore_secp256k1_nonce_commit", "keystore_secp256k1_sign", - "keystore_unlock", + "keystore_test_get_retained_bip39_seed_encrypted", + "keystore_test_get_retained_seed_encrypted", "keystore_unlock_bip39_check", "keystore_unlock_bip39_finalize", - "keystore_test_get_retained_seed_encrypted", - "keystore_test_get_retained_bip39_seed_encrypted", + "keystore_unlock_bip39", + "keystore_unlock", "label_create", "localtime", - "memory_set_salt_root", + "lock_animation_start", + "lock_animation_stop", "memory_add_noise_remote_static_pubkey", + "memory_ble_enable", + "memory_ble_enabled", + "memory_set_salt_root", "memory_bootloader_hash", "memory_check_noise_remote_static_pubkey", "memory_get_attestation_bootloader_hash", "memory_get_attestation_pubkey_and_certificate", - "memory_get_encrypted_seed_and_hmac", + "memory_get_ble_metadata", "memory_get_device_name", + "memory_get_encrypted_seed_and_hmac", "memory_get_noise_static_private_key", + "memory_get_platform", + "memory_get_securechip_type", "memory_get_seed_birthdate", "memory_is_initialized", "memory_is_mnemonic_passphrase_enabled", "memory_is_seeded", "memory_multisig_get_by_hash", "memory_multisig_set_by_hash", + "memory_set_ble_metadata", "memory_set_device_name", "memory_set_initialized", "memory_set_mnemonic_passphrase_enabled", + "memory_set_salt_root", "memory_set_seed_birthdate", "memory_setup", - "memory_ble_enabled", - "memory_ble_enable", - "memory_get_ble_metadata", - "memory_set_ble_metadata", - "memory_get_platform", - "memory_get_securechip_type", "memory_spi_get_active_ble_firmware_version", - "spi_mem_protected_area_write", "menu_create", - "fake_memory_factoryreset", - "spi_mem_full_erase", + "orientation_screen", "printf", "progress_create", "progress_set", + "queue_hww_queue", + "queue_pull", "random_32_bytes_mcu", "random_32_bytes", "random_fake_reset", "reboot_to_bootloader", - "reset_reset", "reset_ble", + "reset_reset", + "screen_clear", + "screen_init", "screen_print_debug", "screen_process", "screen_saver_disable", "screen_saver_enable", + "screen_splash", "sd_card_inserted", "sd_erase_file_in_subdir", "sd_format", @@ -143,23 +157,32 @@ const ALLOWLIST_FNS: &[&str] = &[ "securechip_model", "securechip_monotonic_increments_remaining", "securechip_u2f_counter_set", - "fake_securechip_event_counter", - "fake_securechip_event_counter_reset", - "smarteeprom_is_enabled", - "smarteeprom_disable", "smarteeprom_bb02_config", + "smarteeprom_disable", + "smarteeprom_is_enabled", + "spi_mem_full_erase", + "spi_mem_protected_area_write", "status_create", "trinary_choice_create", "trinary_input_string_create", "trinary_input_string_set_input", - "ui_screen_stack_pop", + "unlock_animation_create", + "UG_ClearBuffer", + "UG_FontSelect", + "UG_PutString", + "UG_SendBuffer", "ui_screen_stack_pop_all", + "ui_screen_stack_pop", "ui_screen_stack_push", + "usb_packet_process", + "usb_processing_hww", + "usb_processing_init", + "usb_processing_process", "util_format_datetime", - "communication_mode_ble_enabled", ]; const RUSTIFIED_ENUMS: &[&str] = &[ + "event_types", "keystore_error_t", "keystore_secp256k1_pubkey_format", "memory_result_t", diff --git a/src/rust/bitbox02-sys/wrapper.h b/src/rust/bitbox02-sys/wrapper.h index af56304aa2..c7a3635f9f 100644 --- a/src/rust/bitbox02-sys/wrapper.h +++ b/src/rust/bitbox02-sys/wrapper.h @@ -50,9 +50,16 @@ #include #include #include +#include #if defined(TESTING) #include +#include +#include +#include +#include +#include +#include #endif #if !defined(TESTING) diff --git a/src/rust/bitbox02/Cargo.toml b/src/rust/bitbox02/Cargo.toml index b99296fd12..185f5860a1 100644 --- a/src/rust/bitbox02/Cargo.toml +++ b/src/rust/bitbox02/Cargo.toml @@ -46,3 +46,6 @@ app-ethereum = [] app-bitcoin = [] app-litecoin = [] app-u2f = [] + +# Expose raw C bindings as bitbox02::bindings module +bindings = [] diff --git a/src/rust/bitbox02/src/lib.rs b/src/rust/bitbox02/src/lib.rs index 4e93f4732b..7a0f7b91ba 100644 --- a/src/rust/bitbox02/src/lib.rs +++ b/src/rust/bitbox02/src/lib.rs @@ -30,6 +30,9 @@ extern crate alloc; use alloc::string::String; +#[cfg(feature = "bindings")] +pub use bitbox02_sys as bindings; + #[cfg(feature = "testing")] pub mod testing; @@ -62,8 +65,8 @@ pub fn ug_put_string(x: i16, y: i16, input: &str, inverted: bool) { } } -pub fn ug_clear_buffer() { - unsafe { bitbox02_sys::UG_ClearBuffer() } +pub fn screen_clear() { + unsafe { bitbox02_sys::screen_clear() } } pub fn ug_send_buffer() { diff --git a/src/ui/components/status.c b/src/ui/components/status.c index d7ce208844..e8d3ddfce3 100644 --- a/src/ui/components/status.c +++ b/src/ui/components/status.c @@ -21,7 +21,11 @@ #include #include +#if defined(TESTING) +#define STATUS_DEFAULT_DELAY 100 // counts +#else #define STATUS_DEFAULT_DELAY 500 // counts +#endif typedef struct { bool status; diff --git a/src/ui/event.h b/src/ui/event.h index cb1e3fd211..3e6c122ce3 100644 --- a/src/ui/event.h +++ b/src/ui/event.h @@ -25,7 +25,7 @@ typedef struct { int32_t velocity; } event_slider_data_t; -enum { +enum event_types { EVENT_SLIDE, EVENT_SLIDE_RELEASED, EVENT_CONTINUOUS_TAP, diff --git a/src/ui/screen_process.h b/src/ui/screen_process.h index 0f26ed9b52..4378b519b6 100644 --- a/src/ui/screen_process.h +++ b/src/ui/screen_process.h @@ -39,6 +39,10 @@ void screen_process(void); * Period of screen updates. * The screen is refreshed every SCREEN_FRAME_RATE event loops cycles. */ +#if defined(TESTING) +#define SCREEN_FRAME_RATE 1 +#else #define SCREEN_FRAME_RATE 30 +#endif #endif diff --git a/test/simulator-ng/.gitignore b/test/simulator-ng/.gitignore new file mode 100644 index 0000000000..ea8c4bf7f3 --- /dev/null +++ b/test/simulator-ng/.gitignore @@ -0,0 +1 @@ +/target diff --git a/test/simulator-ng/CMakeLists.txt b/test/simulator-ng/CMakeLists.txt new file mode 100644 index 0000000000..a9b9007d48 --- /dev/null +++ b/test/simulator-ng/CMakeLists.txt @@ -0,0 +1,65 @@ +# Copyright 2024 Shift Cryptosecurity AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#----------------------------------------------------------------------------- +# Simulator Next Generation +# + +set(RUST_BINARY_DIR ${CMAKE_BINARY_DIR}/src/rust) + +set(RUSTFLAGS "-L${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} -lstatic=fatfs -lstatic=secp256k1 --cfg=rust_secp_no_symbol_renaming") + +if(SANITIZE_ADDRESS OR SANITIZE_UNDEFINED) + string(APPEND RUSTFLAGS " -Zexternal-clangrt -Cdefault-linker-libraries=y") + # When building with address sanitizer it is important that llvm/clang is + # the same version as rustcs llvm. On macos this can be achieved by + # installing llvm from brew and then prepend the path to its binary dir to + # PATH. By default rust uses `cc` as linker, but this will pick the system llvm. + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + string(APPEND RUSTFLAGS " -Clinker=clang") + endif() +endif() +if(SANITIZE_ADDRESS) + string(APPEND RUSTFLAGS " -Clink-arg=-fsanitize=address -Zsanitizer=address") + set(CFLAGS "-fsanitize=address") +endif() +if(SANITIZE_UNDEFINED) + string(APPEND RUSTFLAGS " -Clink-arg=-fsanitize=undefined") + string(APPEND CFLAGS " -fsanitize=undefined") +endif() + +execute_process(COMMAND rustc --print host-tuple OUTPUT_VARIABLE LLVM_HOST_TUPLE OUTPUT_STRIP_TRAILING_WHITESPACE) + +# Supplying llvm host tuple is necessary for address sanitization and doesn't +# hurt during regular builds. +add_custom_command( + OUTPUT dummy ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/simulator-ng + COMMAND + ${CMAKE_COMMAND} -E env + MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} + RUSTFLAGS=${RUSTFLAGS} + CFLAGS=${CFLAGS} + RUSTC_BOOTSTRAP=1 + cargo build --manifest-path ${CMAKE_CURRENT_SOURCE_DIR}/Cargo.toml --target-dir ${RUST_BINARY_DIR} --target=${LLVM_HOST_TUPLE} --release + COMMAND + ${CMAKE_COMMAND} -E copy + ${RUST_BINARY_DIR}/${LLVM_HOST_TUPLE}/release/simulator-ng + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/simulator-ng + DEPENDS rust-cbindgen secp256k1 fatfs + WORKING_DIRECTORY ${RUST_BINARY_DIR} +) + +add_custom_target(simulator-ng + DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/simulator-ng +) diff --git a/test/simulator-ng/Cargo.lock b/test/simulator-ng/Cargo.lock new file mode 100644 index 0000000000..4f55c35ed7 --- /dev/null +++ b/test/simulator-ng/Cargo.lock @@ -0,0 +1,3676 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ab_glyph" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "getrandom 0.3.3", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned-vec" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" +dependencies = [ + "equator", +] + +[[package]] +name = "android-activity" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" +dependencies = [ + "android-properties", + "bitflags 2.9.4", + "cc", + "cesu8", + "jni", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" + +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "av1-grain" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f3efb2ca85bc610acfa917b5aaa36f3fcbebed5b3182d7f877b02531c4b80c8" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base58ck" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" +dependencies = [ + "bitcoin-internals", + "bitcoin_hashes", +] + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "binascii" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "383d29d513d8764dcdc42ea295d979eb99c3c9f00607b3692cf68a431f7dca72" + +[[package]] +name = "bip32-ed25519" +version = "0.2.1" +source = "git+https://github.com/BitBoxSwiss/rust-bip32-ed25519?tag=v0.2.1#385d8a907f694aab7ca3f61ad603804c72ac520a" +dependencies = [ + "curve25519-dalek", + "digest", + "hmac", + "zeroize", +] + +[[package]] +name = "bip39" +version = "2.2.0" +source = "git+https://github.com/BitBoxSwiss/rust-bip39.git?branch=bitbox-20250922#d69f68c837ee7962a26619316fb7a725e2e8d44c" +dependencies = [ + "bitcoin_hashes", + "zeroize", +] + +[[package]] +name = "bit_field" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" + +[[package]] +name = "bitbox-aes" +version = "0.1.0" +dependencies = [ + "bitcoin", + "ctaes", + "util", + "zeroize", +] + +[[package]] +name = "bitbox02" +version = "0.1.0" +dependencies = [ + "bip39", + "bitbox02-sys", + "bitcoin", + "hex", + "util", + "zeroize", +] + +[[package]] +name = "bitbox02-noise" +version = "0.1.0" +dependencies = [ + "noise-protocol", + "noise-rust-crypto", + "x25519-dalek", +] + +[[package]] +name = "bitbox02-rust" +version = "0.1.0" +dependencies = [ + "binascii", + "bip32-ed25519", + "bip39", + "bitbox02", + "bitbox02-noise", + "bitcoin", + "bitcoin_hashes", + "blake2", + "crc", + "digest", + "ed25519-dalek", + "erc20_params", + "futures-lite", + "hex", + "hmac", + "keccak", + "minicbor", + "miniscript", + "num-bigint", + "num-traits", + "prost", + "sha2", + "sha3", + "streaming-silent-payments", + "util", + "zeroize", +] + +[[package]] +name = "bitbox02-rust-c" +version = "0.1.0" +dependencies = [ + "bip39", + "bitbox-aes", + "bitbox02", + "bitbox02-noise", + "bitbox02-rust", + "bitcoin", + "der", + "hex", + "util", + "zeroize", +] + +[[package]] +name = "bitbox02-sys" +version = "0.1.0" +dependencies = [ + "cc", + "util", +] + +[[package]] +name = "bitcoin" +version = "0.32.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda569d741b895131a88ee5589a467e73e9c4718e958ac9308e4f7dc44b6945" +dependencies = [ + "base58ck", + "bech32", + "bitcoin-internals", + "bitcoin-io", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative", + "hex_lit", + "secp256k1", +] + +[[package]] +name = "bitcoin-internals" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" + +[[package]] +name = "bitcoin-io" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" + +[[package]] +name = "bitcoin-units" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb54da0b28892f3c52203a7191534033e051b6f4b52bc15480681b57b7e036f5" +dependencies = [ + "bitcoin-internals", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" + +[[package]] +name = "bitstream-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2 0.5.2", +] + +[[package]] +name = "built" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b" + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "bytemuck" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + +[[package]] +name = "bytes" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f8e949d755f9d79112b5bb46938e0ef9d3804a0b16dfab13aafcaa5f0fa72" + +[[package]] +name = "calloop" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" +dependencies = [ + "bitflags 2.9.4", + "log", + "polling", + "rustix 0.38.44", + "slab", + "thiserror", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" +dependencies = [ + "calloop", + "rustix 0.38.44", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "cc" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aeb932158bd710538c73702db6945cb68a8fb08c519e6e12706b94263b36db8" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "cgl" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" +dependencies = [ + "libc", +] + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "core_maths" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" +dependencies = [ + "libm", +] + +[[package]] +name = "cpufeatures" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctaes" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cbca3712c15d1e2dcc77f4eea8c838fb98f54ffe272d13a72516d488b098ce" +dependencies = [ + "cc", +] + +[[package]] +name = "cursor-icon" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", +] + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2", + "signature", + "subtle", +] + +[[package]] +name = "either" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "equator" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" +dependencies = [ + "equator-macro", +] + +[[package]] +name = "equator-macro" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erc20_params" +version = "0.1.0" +dependencies = [ + "hex", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "exr" +version = "1.73.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" +dependencies = [ + "bit_field", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "fax" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" +dependencies = [ + "fax_derive", +] + +[[package]] +name = "fax_derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "femtovg" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2f4a24ac814ea9887af726cf0e41c76d1614bc5ad051a1d04aa205e9627ee87" +dependencies = [ + "bitflags 2.9.4", + "bytemuck", + "fnv", + "glow", + "image", + "imgref", + "itertools 0.14.0", + "log", + "lru", + "rgb", + "rustybuzz", + "slotmap", + "ttf-parser", + "unicode-bidi", + "unicode-segmentation", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69037fe1b785e84986b4f2cbcf647381876a00671d25ceef715d7812dd7e1dd" + +[[package]] +name = "flate2" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "gethostname" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55" +dependencies = [ + "rustix 1.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.7+wasi-0.2.4", +] + +[[package]] +name = "gif" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + +[[package]] +name = "glow" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "glutin" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12124de845cacfebedff80e877bb37b5b75c34c5a4c89e47e1cdd67fb6041325" +dependencies = [ + "bitflags 2.9.4", + "cfg_aliases", + "cgl", + "dispatch2", + "glutin_egl_sys", + "glutin_glx_sys", + "glutin_wgl_sys", + "libloading", + "objc2 0.6.3", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "once_cell", + "raw-window-handle", + "wayland-sys", + "windows-sys 0.52.0", + "x11-dl", +] + +[[package]] +name = "glutin-winit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85edca7075f8fc728f28cb8fbb111a96c3b89e930574369e3e9c27eb75d3788f" +dependencies = [ + "cfg_aliases", + "glutin", + "raw-window-handle", + "winit", +] + +[[package]] +name = "glutin_egl_sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4680ba6195f424febdc3ba46e7a42a0e58743f2edb115297b86d7f8ecc02d2" +dependencies = [ + "gl_generator", + "windows-sys 0.52.0", +] + +[[package]] +name = "glutin_glx_sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7bb2938045a88b612499fbcba375a77198e01306f52272e692f8c1f3751185" +dependencies = [ + "gl_generator", + "x11-dl", +] + +[[package]] +name = "glutin_wgl_sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "half" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "hex_lit" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "image" +version = "0.25.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" +dependencies = [ + "bytemuck", + "byteorder-lite", + "color_quant", + "exr", + "gif", + "image-webp", + "moxcms", + "num-traits", + "png", + "qoi", + "ravif", + "rayon", + "rgb", + "tiff", + "zune-core", + "zune-jpeg", +] + +[[package]] +name = "image-webp" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" +dependencies = [ + "byteorder-lite", + "quick-error", +] + +[[package]] +name = "imgref" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" + +[[package]] +name = "indexmap" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lebe" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libfuzzer-sys" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" +dependencies = [ + "arbitrary", + "cc", +] + +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link", +] + +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "libredox" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +dependencies = [ + "bitflags 2.9.4", + "libc", + "redox_syscall 0.5.18", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "log" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + +[[package]] +name = "lru" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe949189f46fabb938b3a9a0be30fdd93fd8a09260da863399a8cf3db756ec8" + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + +[[package]] +name = "memchr" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "memmap2" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +dependencies = [ + "libc", +] + +[[package]] +name = "minicbor" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a1359d4b3ec786cdc1e44382c8c0e10965d95a173059590f62314c73be72969" +dependencies = [ + "minicbor-derive", +] + +[[package]] +name = "minicbor-derive" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6bdc119b1a405df86a8cde673295114179dbd0ebe18877c26ba89fb080365c2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniscript" +version = "12.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add2d4aee30e4291ce5cffa3a322e441ff4d4bc57b38c8d9bf0e94faa50ab626" +dependencies = [ + "bech32", + "bitcoin", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "moxcms" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cc7d85f3d741164e8972ad355e26ac6e51b20fcae5f911c7da8f2d8bbbb3f33" +dependencies = [ + "num-traits", + "pxfm", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.9.4", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "noise-protocol" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2473d39689a839f5a363aaef7d99f76d5611bf352286682b25a6644fec18b1d3" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "noise-rust-crypto" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c6159f60beb3bbbcdc266bc789bfc6c37fdad7d7ca7152d3e049ef5af633f0" +dependencies = [ + "chacha20poly1305", + "noise-protocol", + "sha2", + "zeroize", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + +[[package]] +name = "nu-ansi-term" +version = "0.50.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.9.4", + "block2", + "libc", + "objc2 0.5.2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation 0.2.2", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2 0.5.2", + "objc2-core-location", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.9.4", + "dispatch2", + "objc2 0.6.3", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2 0.5.2", + "objc2-contacts", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.9.4", + "block2", + "dispatch", + "libc", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2 0.5.2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation 0.2.2", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2 0.5.2", + "objc2-core-location", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "orbclient" +version = "0.3.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" +dependencies = [ + "libredox", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "png" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" +dependencies = [ + "bitflags 2.9.4", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix 1.1.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.6", +] + +[[package]] +name = "proc-macro2" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "profiling" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "prost" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pxfm" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83f9b339b02259ada5c0f4a389b7fb472f933aa17ce176fd2ad98f28bb401fde" +dependencies = [ + "num-traits", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quick-xml" +version = "0.37.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools 0.12.1", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand", + "rand_chacha", + "simd_helpers", + "system-deps", + "thiserror", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5825c26fddd16ab9f515930d49028a630efec172e903483c94796cfe31893e6b" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rayon", + "rgb", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.9.4", +] + +[[package]] +name = "regex-automata" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rgb" +version = "0.8.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.9.4", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +dependencies = [ + "bitflags 2.9.4", + "errno", + "libc", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "rustybuzz" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" +dependencies = [ + "bitflags 2.9.4", + "bytemuck", + "core_maths", + "log", + "smallvec", + "ttf-parser", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-properties", + "unicode-script", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "sctk-adwaita" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit", + "tiny-skia", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3" +dependencies = [ + "bitcoin_hashes", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1433bd67156263443f14d603720b082dd3121779323fce20cba2aa07b874bc1b" +dependencies = [ + "cc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + +[[package]] +name = "simulator-ng" +version = "0.1.0" +dependencies = [ + "bitbox-aes", + "bitbox02", + "bitbox02-rust", + "bitbox02-rust-c", + "femtovg", + "glutin", + "glutin-winit", + "image", + "tracing", + "tracing-subscriber", + "winit", +] + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "smithay-client-toolkit" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" +dependencies = [ + "bitflags 2.9.4", + "calloop", + "calloop-wayland-source", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix 0.38.44", + "thiserror", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smol_str" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +dependencies = [ + "serde", +] + +[[package]] +name = "streaming-silent-payments" +version = "0.1.0" +dependencies = [ + "bitbox02", + "bitcoin", +] + +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "2.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tiff" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" +dependencies = [ + "fax", + "flate2", + "half", + "quick-error", + "weezl", + "zune-jpeg", +] + +[[package]] +name = "tiny-skia" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.23.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b" +dependencies = [ + "indexmap", + "toml_datetime 0.7.2", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +dependencies = [ + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "ttf-parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" +dependencies = [ + "core_maths", +] + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-bidi-mirroring" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfa6e8c60bb66d49db113e0125ee8711b7647b5579dc7f5f19c42357ed039fe" + +[[package]] +name = "unicode-ccc" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e" + +[[package]] +name = "unicode-ident" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "unicode-script" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "util" +version = "0.1.0" +dependencies = [ + "bitcoin", + "hex", + "num-bigint", + "p256", + "sha2", +] + +[[package]] +name = "v_frame" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wayland-backend" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +dependencies = [ + "cc", + "downcast-rs", + "rustix 1.1.2", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" +dependencies = [ + "bitflags 2.9.4", + "rustix 1.1.2", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.9.4", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" +dependencies = [ + "rustix 1.1.2", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +dependencies = [ + "dlib", + "log", + "once_cell", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winit" +version = "0.30.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66d4b9ed69c4009f6321f762d6e61ad8a2389cd431b97cb1e146812e9e6c732" +dependencies = [ + "ahash", + "android-activity", + "atomic-waker", + "bitflags 2.9.4", + "block2", + "bytemuck", + "calloop", + "cfg_aliases", + "concurrent-queue", + "core-foundation", + "core-graphics", + "cursor-icon", + "dpi", + "js-sys", + "libc", + "memmap2", + "ndk", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", + "objc2-ui-kit", + "orbclient", + "percent-encoding", + "pin-project", + "raw-window-handle", + "redox_syscall 0.4.1", + "rustix 0.38.44", + "sctk-adwaita", + "smithay-client-toolkit", + "smol_str", + "tracing", + "unicode-segmentation", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-plasma", + "web-sys", + "web-time", + "windows-sys 0.52.0", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" +dependencies = [ + "as-raw-xcb-connection", + "gethostname", + "libc", + "libloading", + "once_cell", + "rustix 1.1.2", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" + +[[package]] +name = "x25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +dependencies = [ + "curve25519-dalek", + "rand_core", +] + +[[package]] +name = "xcursor" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" + +[[package]] +name = "xkbcommon-dl" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" +dependencies = [ + "bitflags 2.9.4", + "dlib", + "log", + "once_cell", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" + +[[package]] +name = "xml-rs" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zune-jpeg" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" +dependencies = [ + "zune-core", +] diff --git a/test/simulator-ng/Cargo.toml b/test/simulator-ng/Cargo.toml new file mode 100644 index 0000000000..facd86e4bd --- /dev/null +++ b/test/simulator-ng/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "simulator-ng" +version = "0.1.0" +edition = "2024" + +[dependencies] +bitbox02-rust = { path="../../src/rust/bitbox02-rust" } +bitbox02-rust-c = { path="../../src/rust/bitbox02-rust-c", features=["target-simulator-ng", "testing"] } +bitbox02 = { path="../../src/rust/bitbox02", features=["bindings"] } +bitbox-aes = { path="../../src/rust/bitbox-aes"} +winit = "0.30.12" +tracing = {version = "0.1.41", features=["log"]} +image = "0.25.8" +tracing-subscriber = {version = "0.3.20", features=["env-filter"]} +femtovg = "0.19.1" +glutin = "0.32.3" +glutin-winit = "0.5.0" diff --git a/test/simulator-ng/bg.png b/test/simulator-ng/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..905f5fc626de75acffa4db8a42b71e59cf41f5ca GIT binary patch literal 325362 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%0D~m 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 v36j%V^5VhMLjzCP=*?EzZn@ zTtFGqM_V(^_gx6HmsCp3C7;nL;CyS6#T#gtGijIDa2TW|L^7(P&y^a7#*H9lKr@>l z)1+e++?2;`xj8mDHbX5f8(gt*9X1wi744MED!S98+itTdUa?e4Z*Db$oW^XPGv*Op zPTJtY;LS`vmlkSJ$$A5V1&G@ZD?qv@k%T6spob3OdbG!<2YY&Ynuc$xEx)^aQKIG7#{BfyPVHCEr_-N){lN#n|C`_V`oH_;{^19A zAHA~k%RBSafBGP_=jQymIsbJw=xtg@qKy|*1QUWDzxA8H7+#viwba8U-T%^o#Tci4e?lTy)woETGaYoXEdC&_H{;b^>5wq zbQ9Z8<6+h;3@1MtQhqJpPQQ2GZ=gZP4Ln81h#3&M=0a16lx9Uzwx3b;sMazqoF>uI zFh)l3Nq>iqsDs8P6v;&U!(qWJm=OVEcETv8-6|?$fU~{GBD86xf>AW

eb>L_~v^ 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 a{|^9GLmXX<&213?0000, + counter: Arc, +) { + let mut buf = [0; 1024]; + while let Ok(len) = stream.read(&mut buf) { + if len == 0 { + // Client disconnected + break; + } + for i in 0..len / 64 { + let mut data: [u8; 64] = [0; 64]; + data.copy_from_slice(&buf[64 * i..64 * (i + 1)]); + inbound_in.send(data).unwrap(); + } + } + drop(inbound_in); + info!("TCP Stream: Disconnected read"); + counter.fetch_sub(1, Ordering::SeqCst); +} + +pub fn handle_stream_writer( + mut stream: TcpStream, + outbound_out: mpsc::Receiver<[u8; 64]>, + counter: Arc, +) { + for item in outbound_out.iter() { + if stream.write_all(&item[..]).is_err() { + // Client disconnected while writing + break; + } + } + drop(outbound_out); + info!("TCP Stream: Disconnected write"); + counter.fetch_sub(1, Ordering::SeqCst); +} + +/// Screen frame buffer +static SCREEN_FB: LazyLock> = LazyLock::new(|| { + Mutex::new(DynamicImage::ImageRgba8(RgbaImage::new( + SCREEN_WIDTH as u32, + SCREEN_HEIGHT as u32, + ))) +}); + +static MIRROR: LazyLock = LazyLock::new(|| false.into()); + +unsafe extern "C" fn pixel_fn(x: i16, y: i16, c: UG_COLOR) { + if x < 0 || x >= SCREEN_WIDTH as i16 { + return; + } + if y < 0 || y >= SCREEN_HEIGHT as i16 { + return; + } + let x = x as u32; + let y = y as u32; + let mut screen = SCREEN_FB.lock().unwrap(); + + screen.put_pixel(x, y, Rgba([c, c, c, 0xff])); +} + +unsafe extern "C" fn clear_fn() { + let mut screen = SCREEN_FB.lock().unwrap(); + if let DynamicImage::ImageRgba8(rgba) = &mut *screen { + for pixel in rgba.pixels_mut() { + *pixel = Rgba([0, 0, 0, 0]); + } + } +} + +unsafe extern "C" fn mirror_fn(_: bool) { + (*MIRROR).fetch_xor(true, Ordering::Relaxed); +} + +fn init_hww() -> bool { + unsafe { bitbox02::bindings::screen_init(Some(pixel_fn), Some(mirror_fn), Some(clear_fn)) }; + unsafe { bitbox02::bindings::screen_splash() }; + + // BitBox02 simulation initialization + unsafe { bitbox02::bindings::usb_processing_init() }; + info!("USB setup success"); + + unsafe { bitbox02::bindings::hww_setup() }; + info!("HWW setup success"); + + let sd_success = unsafe { bitbox02::bindings::sd_format() }; + if !sd_success { + error!("ERROR, sd card setup failed"); + return false; + } + + info!("Sd card setup: success"); + + bitbox02::testing::mock_memory(); + info!("Memory setup: success"); + + unsafe { bitbox02::bindings::smarteeprom_bb02_config() }; + unsafe { bitbox02::bindings::bitbox02_smarteeprom_init() }; + + unsafe { bitbox02::bindings::orientation_screen(std::ptr::null_mut() as *mut _) }; + true +} + +unsafe extern "C" { + fn rust_workflow_spin(); + fn rust_async_usb_spin(); +} + +struct Slider { + active: bool, + _position: u16, + pinch: bool, +} + +impl Default for Slider { + fn default() -> Self { + Slider { + active: false, + _position: 0, + pinch: false, + } + } +} + +struct App { + window: Option>, + surface: Option>, + gl_context: Option, + canvas: Option>, + bg: Option, + screen: Option, + slider_top: Slider, + slider_bottom: Slider, + mouse_last_x: i32, + mouse_last_y: i32, + outbound_in: Option>, + inbound_out: Option>, +} + +impl Default for App { + fn default() -> App { + App { + window: Default::default(), + surface: Default::default(), + gl_context: Default::default(), + canvas: Default::default(), + bg: Default::default(), + screen: Default::default(), + slider_top: Default::default(), + slider_bottom: Default::default(), + mouse_last_x: 0, + mouse_last_y: 0, + outbound_in: Default::default(), + inbound_out: Default::default(), + } + } +} + +impl App { + fn create_window( + &mut self, + event_loop: &ActiveEventLoop, + _: Option, + ) -> Result> { + let width = (SCREEN_WIDTH + 2 * MARGIN + PADDING_LEFT + PADDING_RIGHT) as u32; + let height = (SCREEN_HEIGHT + 2 * MARGIN + 2 * PADDING_TOP_BOTTOM) as u32; + let w_attr = Window::default_attributes() + .with_inner_size(LogicalSize::new(width, height)) + .with_title("Graphical BitBox02 Simulator"); + + let (window, gl_config) = { + let template = ConfigTemplateBuilder::new(); + let (window, gl_config) = DisplayBuilder::new() + .with_window_attributes(Some(w_attr)) + .build(event_loop, template, |mut configs| configs.next().unwrap())?; + (Rc::new(window.unwrap()), gl_config) + }; + + let raw_window_handle = Some(window.window_handle().unwrap().as_ref().clone()); + + let gl_display = gl_config.display(); + + let context_attributes = ContextAttributesBuilder::new().build(raw_window_handle); + let fallback_context_attributes = ContextAttributesBuilder::new() + .with_context_api(ContextApi::Gles(None)) + .build(raw_window_handle); + let mut not_current_gl_context = Some(unsafe { + gl_display + .create_context(&gl_config, &context_attributes) + .unwrap_or_else(|_| { + gl_display + .create_context(&gl_config, &fallback_context_attributes) + .expect("failed to create context") + }) + }); + + let (width, height): (u32, u32) = window.inner_size().into(); + let raw_window_handle = window.window_handle().unwrap().as_ref().clone(); + let attrs = SurfaceAttributesBuilder::::new().build( + raw_window_handle, + NonZeroU32::new(width).unwrap(), + NonZeroU32::new(height).unwrap(), + ); + + let surface = unsafe { + gl_config + .display() + .create_window_surface(&gl_config, &attrs) + .unwrap() + }; + + let gl_context = not_current_gl_context + .take() + .unwrap() + .make_current(&surface) + .unwrap(); + + let renderer = + unsafe { OpenGl::new_from_function_cstr(|s| gl_display.get_proc_address(s).cast()) } + .expect("Cannot create renderer"); + + let mut canvas = Canvas::new(renderer).expect("Cannot create canvas"); + canvas.set_size(width, height, window.scale_factor() as f32); + + //let pwidth = (width as f64 * window.scale_factor()) as u32; + //let pheight = (height as f64 * window.scale_factor()) as u32; + + let window_id = window.id(); + info!("Created window {window_id:?}"); + let bg_orig = image::load_from_memory(BG).unwrap(); + debug!("image: {} {}", bg_orig.width(), bg_orig.height()); + + let bg_id = canvas + .create_image( + ImageSource::try_from(&bg_orig).unwrap(), + ImageFlags::empty(), + ) + .unwrap(); + let screen_id = canvas + .create_image( + ImageSource::try_from(&*SCREEN_FB.lock().unwrap()).unwrap(), + ImageFlags::empty(), + ) + .unwrap(); + + canvas.save(); + canvas.reset(); + canvas.restore(); + + self.window.replace(window); + self.surface.replace(surface); + self.gl_context.replace(gl_context); + self.canvas.replace(canvas); + self.bg.replace(bg_id); + self.screen.replace(screen_id); + Ok(window_id) + } +} + +#[derive(Debug)] +enum UserEvent { + WakeUp, + NewConnection(mpsc::Sender<[u8; 64]>, mpsc::Receiver<[u8; 64]>), +} + +impl ApplicationHandler for App { + fn window_event(&mut self, event_loop: &ActiveEventLoop, _: WindowId, event: WindowEvent) { + match event { + WindowEvent::CloseRequested => { + event_loop.exit(); + return; + } + WindowEvent::RedrawRequested => { + //info!("{event:?}"); + if let Some(surface) = &mut self.surface + && let Some(canvas) = &mut self.canvas + && let Some(gl_context) = &mut self.gl_context + && let Some(bg_id) = &mut self.bg + && let Some(screen_id) = &mut self.screen + && let Some(window) = &mut self.window + { + let dpi_factor = window.scale_factor() as f32; + let window_size = window.inner_size(); + canvas.set_size(window_size.width, window_size.height, dpi_factor); + + let bitbox_x = MARGIN as f32 * dpi_factor; + let bitbox_y = MARGIN as f32 * dpi_factor; + let bitbox_width = + (SCREEN_WIDTH + PADDING_LEFT + PADDING_RIGHT) as f32 * dpi_factor; + let bitbox_height = + (SCREEN_HEIGHT + 2 * PADDING_TOP_BOTTOM) as f32 * dpi_factor; + + let mut bitbox_path = Path::new(); + bitbox_path.rect(bitbox_x, bitbox_y, bitbox_width, bitbox_height); + + canvas.fill_path( + &bitbox_path, + &Paint::image( + bg_id.clone(), + bitbox_x, + bitbox_y, + bitbox_width, + bitbox_height, + 0f32, + 1f32, + ), + ); + + let screen_x = (MARGIN + PADDING_LEFT) as f32 * dpi_factor; + let screen_y = (MARGIN + PADDING_TOP_BOTTOM) as f32 * dpi_factor; + let screen_width = SCREEN_WIDTH as f32 * dpi_factor; + let screen_height = SCREEN_HEIGHT as f32 * dpi_factor; + let mut screen_path = Path::new(); + screen_path.rect(screen_x, screen_y, screen_width, screen_height); + canvas.fill_path( + &screen_path, + &Paint::image( + screen_id.clone(), + screen_x, + screen_y, + screen_width, + screen_height, + 0f32, + 1f32, + ), + ); + + canvas.flush_to_surface(&()); + surface.swap_buffers(gl_context).unwrap(); + } + } + WindowEvent::Resized(PhysicalSize { width, height }) => { + if let Some(surface) = &mut self.surface + && let Some(gl_context) = &mut self.gl_context + { + surface.resize( + gl_context, + width.try_into().unwrap(), + height.try_into().unwrap(), + ) + } + } + WindowEvent::CursorMoved { position, .. } => { + debug!("{position:?}"); + let Some(window) = &mut self.window else { + return; + }; + let (x, y): (i32, i32) = position.to_logical::(window.scale_factor()).into(); + let xrel = x - self.mouse_last_x; + let yrel = y - self.mouse_last_y; + // Ignore if mouse didn't move long enough + if xrel == 0 && yrel == 0 { + return; + } + debug!("x={x}, y={y}, xrel={xrel}, yrel={yrel}"); + self.mouse_last_x = x; + self.mouse_last_y = y; + + let slider_top = &mut self.slider_top; + let slider_bottom = &mut self.slider_bottom; + + let slider_pos = (x - ((MARGIN + PADDING_LEFT) as i32)) * 255 / SCREEN_WIDTH as i32; + if slider_pos >= 0 && slider_pos <= 255 { + let mut slider_data = bitbox02::bindings::event_slider_data_t { + source: 1, + diff: xrel as i16, + position: slider_pos as u16, + velocity: 0, + }; + if y < MARGIN as i32 / 2 { + if slider_top.active { + debug!("top tap {:?}", slider_data); + slider_top.active = false; + let event = bitbox02::bindings::event_t { + id: bitbox02::bindings::event_types::EVENT_SHORT_TAP as u8, + data: slider_data, + }; + unsafe { bitbox02::bindings::emit_event(&event) }; + } + } else if y < MARGIN as i32 { + slider_top.active = true; + } else if y > (MARGIN + 2 * PADDING_TOP_BOTTOM + 64 + MARGIN / 2) as i32 { + if slider_bottom.active { + debug!("bottom tap {:?}", slider_data); + slider_bottom.active = false; + slider_data.source = 0; + let event = bitbox02::bindings::event_t { + id: bitbox02::bindings::event_types::EVENT_SHORT_TAP as u8, + data: slider_data, + }; + unsafe { bitbox02::bindings::emit_event(&event) }; + } + } else if y > (MARGIN + 2 * PADDING_TOP_BOTTOM + 64) as i32 { + slider_bottom.active = true; + } + } + if x > (MARGIN + PADDING_LEFT + SCREEN_WIDTH + PADDING_RIGHT) as i32 + && x < (MARGIN + PADDING_LEFT + SCREEN_WIDTH + PADDING_RIGHT + MARGIN / 2) + as i32 + && y > (MARGIN + PADDING_TOP_BOTTOM + SCREEN_HEIGHT / 3) as i32 + && y < (MARGIN + PADDING_TOP_BOTTOM + SCREEN_HEIGHT * 2 / 3) as i32 + { + if !slider_top.pinch { + slider_top.pinch = true; + } + } else if slider_top.pinch { + slider_top.pinch = false; + } + } + + _ => debug!("{event:?}"), + } + } + + // Since the firmware code is very non-threadsafe all firmware code is called from user events + // in the main thread. + fn user_event(&mut self, _event_loop: &ActiveEventLoop, event: UserEvent) { + match event { + UserEvent::WakeUp => { + // Read data from TCP client + let mut inbound_out = self.inbound_out.take(); + let mut disconnected = false; + if let Some(inbound_out) = &mut inbound_out { + loop { + match inbound_out.try_recv() { + Ok(data) => { + unsafe { + bitbox02::bindings::usb_packet_process( + data.as_ptr() as *const bitbox02::bindings::USB_FRAME + ) + }; + } + Err(TryRecvError::Disconnected) => { + // Drop the outbound channel + let _ = self.outbound_in.take(); + disconnected = true; + break; + } + Err(TryRecvError::Empty) => { + break; + } + } + } + } + if !disconnected { + self.inbound_out = inbound_out; + } + // Send data to TCP Client + loop { + let hww_data = unsafe { + bitbox02::bindings::queue_pull(bitbox02::bindings::queue_hww_queue()) + }; + if hww_data != std::ptr::null() { + if let Some(outbound_in) = &mut self.outbound_in { + let mut data: [u8; 64] = [0; 64]; + let slice: &[u8] = unsafe { std::slice::from_raw_parts(hww_data, 64) }; + data.copy_from_slice(&slice[..]); + if outbound_in.send(data).is_err() { + info!("writer thread died and closed channel"); + let _ = self.outbound_in.take(); + } + } + } else { + break; + } + } + // Business logic + unsafe { rust_workflow_spin() } + bitbox02_rust::async_usb::spin(); + unsafe { rust_async_usb_spin() } + unsafe { + bitbox02::bindings::usb_processing_process( + bitbox02::bindings::usb_processing_hww(), + ) + } + unsafe { bitbox02::bindings::screen_process() } + + if let Some(window) = &self.window + && let Some(canvas) = &mut self.canvas + && let Some(screen_id) = self.screen.clone() + { + // TODO: We should only update texture and redraw in case screen actually changed. + // Update opengl texture from "screen_process" + let screen_fb = &*SCREEN_FB.lock().unwrap(); + canvas + .update_image(screen_id, ImageSource::try_from(screen_fb).unwrap(), 0, 0) + .unwrap(); + + // Special handling of pinch. Emit one event per frame + if self.slider_top.pinch { + let slider_data = bitbox02::bindings::event_slider_data_t { + source: 0, + diff: 0, + position: bitbox02::bindings::SLIDER_POSITION_TWO_THIRD as u16 + 1, + velocity: 0, + }; + let mut event = bitbox02::bindings::event_t { + data: slider_data, + id: bitbox02::bindings::event_types::EVENT_CONTINUOUS_TAP as u8, + }; + unsafe { bitbox02::bindings::emit_event(&event) }; + event.data.source = 1; + event.id = bitbox02::bindings::event_types::EVENT_CONTINUOUS_TAP as u8; + unsafe { bitbox02::bindings::emit_event(&event) }; + } + window.request_redraw(); + } + } + UserEvent::NewConnection(outbound_in, inbound_out) => { + self.outbound_in.replace(outbound_in); + self.inbound_out.replace(inbound_out); + info!("Accepted connection") + } + } + } + + fn resumed(&mut self, event_loop: &ActiveEventLoop) { + self.create_window(event_loop, None) + .expect("failed to create initial window"); + } +} + +#[derive(Debug)] +struct AppError(String); + +impl Error for AppError {} + +impl std::fmt::Display for AppError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.0) + } +} + +impl AppError { + pub fn new(msg: &str) -> AppError { + AppError(msg.into()) + } +} + +pub fn main() -> Result<(), Box> { + // Enable debug output with environment variable RUST_LOG=debug + let filter = EnvFilter::builder() + .with_default_directive(LevelFilter::INFO.into()) + .from_env_lossy(); + tracing_subscriber::registry() + .with(fmt::layer()) + .with(filter) + .init(); + if !init_hww() { + return Err(Box::new(AppError::new("Failed to init hww"))); + } + let event_loop = EventLoop::::with_user_event().build()?; + event_loop.set_control_flow(ControlFlow::Poll); + + // "Accept incoming connections" thread + thread::spawn({ + let el_proxy = event_loop.create_proxy(); + let Ok(listener) = TcpListener::bind("0.0.0.0:15423") else { + return Err(Box::new(AppError::new("Failed to bind to address!"))); + }; + move || { + // Use this counter to ensure that we only connect to a single client. + let counter = Arc::new(AtomicU32::new(0)); + + for stream in listener.incoming() { + if counter.fetch_add(2, Ordering::SeqCst) == 0 { + let Ok(stream) = stream else { + error!("Error with stream"); + counter.fetch_sub(2, Ordering::SeqCst); + continue; + }; + let Ok(stream_clone) = stream.try_clone() else { + error!("Error with cloning stream"); + counter.fetch_sub(2, Ordering::SeqCst); + continue; + }; + // Channel for communicating from HWW to client + let (outbound_in, outbound_out) = mpsc::channel(); + // Channel for communicating from Client to HWW + let (inbound_in, inbound_out) = mpsc::channel(); + // Inform the main event loop about the new connection + if el_proxy + .send_event(UserEvent::NewConnection(outbound_in, inbound_out)) + .is_err() + { + // Event loop has quit + return; + } + thread::spawn({ + let counter = Arc::clone(&counter); + move || handle_stream_reader(stream_clone, inbound_in, counter) + }); + thread::spawn({ + let counter = Arc::clone(&counter); + move || handle_stream_writer(stream, outbound_out, counter) + }); + } else { + info!("Busy, won't accept new clients"); + counter.fetch_sub(2, Ordering::SeqCst); + } + } + } + }); + + // Wake up main event loop + thread::spawn({ + let el_proxy = event_loop.create_proxy(); + move || { + loop { + if el_proxy.send_event(UserEvent::WakeUp).is_err() { + // Event loop has quit + return; + } + std::thread::sleep(Duration::from_micros(10000)); + } + } + }); + + let mut app = App::default(); + event_loop.run_app(&mut app)?; + + Ok(()) +} From ffb3cbe3a7d28905e2d1d6a22e05b64a8b47c8ca Mon Sep 17 00:00:00 2001 From: Niklas Dusenlund Date: Fri, 10 Oct 2025 14:34:41 +0200 Subject: [PATCH 2/3] Fix arbitrary scaling --- src/rust/bitbox02-sys/wrapper.h | 2 +- test/simulator-ng/src/main.rs | 48 ++++++++++++++++++++++++--------- 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/src/rust/bitbox02-sys/wrapper.h b/src/rust/bitbox02-sys/wrapper.h index c7a3635f9f..740ab3660c 100644 --- a/src/rust/bitbox02-sys/wrapper.h +++ b/src/rust/bitbox02-sys/wrapper.h @@ -50,7 +50,6 @@ #include #include #include -#include #if defined(TESTING) #include @@ -60,6 +59,7 @@ #include #include #include +#include #endif #if !defined(TESTING) diff --git a/test/simulator-ng/src/main.rs b/test/simulator-ng/src/main.rs index 1a5c20f25d..86da56ccb4 100644 --- a/test/simulator-ng/src/main.rs +++ b/test/simulator-ng/src/main.rs @@ -287,13 +287,13 @@ impl App { let bg_id = canvas .create_image( ImageSource::try_from(&bg_orig).unwrap(), - ImageFlags::empty(), + ImageFlags::NEAREST, ) .unwrap(); let screen_id = canvas .create_image( ImageSource::try_from(&*SCREEN_FB.lock().unwrap()).unwrap(), - ImageFlags::empty(), + ImageFlags::NEAREST, ) .unwrap(); @@ -337,12 +337,12 @@ impl ApplicationHandler for App { let window_size = window.inner_size(); canvas.set_size(window_size.width, window_size.height, dpi_factor); + let margin = (MARGIN as f32 * dpi_factor) as u32; + let bitbox_x = MARGIN as f32 * dpi_factor; let bitbox_y = MARGIN as f32 * dpi_factor; - let bitbox_width = - (SCREEN_WIDTH + PADDING_LEFT + PADDING_RIGHT) as f32 * dpi_factor; - let bitbox_height = - (SCREEN_HEIGHT + 2 * PADDING_TOP_BOTTOM) as f32 * dpi_factor; + let bitbox_width = (window_size.width - 2 * margin) as f32; + let bitbox_height = (window_size.height - 2 * margin) as f32; let mut bitbox_path = Path::new(); bitbox_path.rect(bitbox_x, bitbox_y, bitbox_width, bitbox_height); @@ -359,11 +359,19 @@ impl ApplicationHandler for App { 1f32, ), ); - - let screen_x = (MARGIN + PADDING_LEFT) as f32 * dpi_factor; - let screen_y = (MARGIN + PADDING_TOP_BOTTOM) as f32 * dpi_factor; - let screen_width = SCREEN_WIDTH as f32 * dpi_factor; - let screen_height = SCREEN_HEIGHT as f32 * dpi_factor; + let bitbox_width_scale_factor = (window_size.width - 2 * margin) as f32 + / (PADDING_LEFT + SCREEN_WIDTH + PADDING_RIGHT) as f32; + + let bitbox_height_scale_factor = (window_size.height - 2 * margin) as f32 + / (2 * PADDING_TOP_BOTTOM + SCREEN_HEIGHT) as f32; + + let screen_x = + (margin as f32 + PADDING_LEFT as f32 * bitbox_width_scale_factor) as f32; + let screen_y = (margin as f32 + + PADDING_TOP_BOTTOM as f32 * bitbox_height_scale_factor) + as f32; + let screen_width = SCREEN_WIDTH as f32 * bitbox_width_scale_factor; + let screen_height = SCREEN_HEIGHT as f32 * bitbox_height_scale_factor; let mut screen_path = Path::new(); screen_path.rect(screen_x, screen_y, screen_width, screen_height); canvas.fill_path( @@ -395,11 +403,25 @@ impl ApplicationHandler for App { } } WindowEvent::CursorMoved { position, .. } => { - debug!("{position:?}"); + //debug!("{position:?}"); let Some(window) = &mut self.window else { return; }; - let (x, y): (i32, i32) = position.to_logical::(window.scale_factor()).into(); + //let (x, y): (i32, i32) = position.to_logical::(window.scale_factor()).into(); + let (x, y) = (position.x, position.y); + let window_size = window.inner_size(); + let dpi_factor = window.scale_factor() as f32; + //let margin = (MARGIN as f32 * dpi_factor) as u32; + let width_scale_factor = (window_size.width) as f32 + / (2 * MARGIN + PADDING_LEFT + SCREEN_WIDTH + PADDING_RIGHT) as f32; + + let height_scale_factor = (window_size.height) as f32 + / (2 * MARGIN + 2 * PADDING_TOP_BOTTOM + SCREEN_HEIGHT) as f32; + + let (x, y) = ( + (x as f32 / width_scale_factor) as i32, + (y as f32 / height_scale_factor) as i32, + ); let xrel = x - self.mouse_last_x; let yrel = y - self.mouse_last_y; // Ignore if mouse didn't move long enough From 4eb358b782da36474e2f4dde3c0f0895f387d2d0 Mon Sep 17 00:00:00 2001 From: Niklas Dusenlund Date: Fri, 10 Oct 2025 15:31:00 +0200 Subject: [PATCH 3/3] implement preseed --- test/simulator-ng/Cargo.lock | 201 +++++++++++++++++++++++++++++++++- test/simulator-ng/Cargo.toml | 1 + test/simulator-ng/src/main.rs | 36 ++++-- 3 files changed, 224 insertions(+), 14 deletions(-) diff --git a/test/simulator-ng/Cargo.lock b/test/simulator-ng/Cargo.lock index 4f55c35ed7..1566b999d3 100644 --- a/test/simulator-ng/Cargo.lock +++ b/test/simulator-ng/Cargo.lock @@ -92,6 +92,56 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.60.2", +] + [[package]] name = "anyhow" version = "1.0.100" @@ -555,12 +605,58 @@ dependencies = [ "zeroize", ] +[[package]] +name = "clap" +version = "4.5.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" + [[package]] name = "color_quant" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + [[package]] name = "combine" version = "4.6.7" @@ -1349,6 +1445,12 @@ dependencies = [ "syn", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.12.1" @@ -2007,6 +2109,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "opaque-debug" version = "0.3.0" @@ -2643,6 +2751,7 @@ dependencies = [ "bitbox02", "bitbox02-rust", "bitbox02-rust-c", + "clap", "femtovg", "glutin", "glutin-winit", @@ -2721,6 +2830,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "subtle" version = "2.4.1" @@ -3018,6 +3133,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "util" version = "0.1.0" @@ -3341,6 +3462,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -3374,13 +3504,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -3393,6 +3540,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -3405,6 +3558,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -3417,12 +3576,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -3435,6 +3606,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -3447,6 +3624,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -3459,6 +3642,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -3471,6 +3660,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winit" version = "0.30.12" @@ -3633,9 +3828,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] diff --git a/test/simulator-ng/Cargo.toml b/test/simulator-ng/Cargo.toml index facd86e4bd..7ac0f147d3 100644 --- a/test/simulator-ng/Cargo.toml +++ b/test/simulator-ng/Cargo.toml @@ -15,3 +15,4 @@ tracing-subscriber = {version = "0.3.20", features=["env-filter"]} femtovg = "0.19.1" glutin = "0.32.3" glutin-winit = "0.5.0" +clap = { version = "4.5.48", features = ["derive"] } diff --git a/test/simulator-ng/src/main.rs b/test/simulator-ng/src/main.rs index 86da56ccb4..33a3024bb7 100644 --- a/test/simulator-ng/src/main.rs +++ b/test/simulator-ng/src/main.rs @@ -1,8 +1,6 @@ -use femtovg::{ - Canvas, Color, ImageFlags, ImageId, ImageSource, Paint, Path, PixelFormat, RenderTarget, - renderer::OpenGl, -}; -use image::{DynamicImage, GenericImage, GenericImageView, Rgba, RgbaImage}; +use clap::Parser; +use femtovg::{Canvas, ImageFlags, ImageId, ImageSource, Paint, Path, renderer::OpenGl}; +use image::{DynamicImage, GenericImage, Rgba, RgbaImage}; use std::error::Error; use std::io::{Read, Write}; @@ -16,7 +14,7 @@ use std::sync::{ mpsc::TryRecvError, }; use std::thread; -use std::time::{Duration, Instant}; +use std::time::Duration; use winit::application::ApplicationHandler; use winit::dpi::{LogicalSize, PhysicalSize}; @@ -27,7 +25,7 @@ use winit::window::{Window, WindowId}; use glutin::config::ConfigTemplateBuilder; use glutin::context::{ - ContextApi, ContextAttributesBuilder, GlContext, NotCurrentGlContext, PossiblyCurrentContext, + ContextApi, ContextAttributesBuilder, NotCurrentGlContext, PossiblyCurrentContext, }; use glutin::display::{GetGlDisplay, GlDisplay}; use glutin::surface::{GlSurface, Surface, SurfaceAttributesBuilder, WindowSurface}; @@ -126,7 +124,7 @@ unsafe extern "C" fn mirror_fn(_: bool) { (*MIRROR).fetch_xor(true, Ordering::Relaxed); } -fn init_hww() -> bool { +fn init_hww(preseed: bool) -> bool { unsafe { bitbox02::bindings::screen_init(Some(pixel_fn), Some(mirror_fn), Some(clear_fn)) }; unsafe { bitbox02::bindings::screen_splash() }; @@ -148,6 +146,13 @@ fn init_hww() -> bool { bitbox02::testing::mock_memory(); info!("Memory setup: success"); + if preseed { + let mnemonic = "boring mistake dish oyster truth pigeon viable emerge sort crash wire portion cannon couple enact box walk height pull today solid off enable tide"; + let seed = bitbox02::keystore::bip39_mnemonic_to_seed(&mnemonic).unwrap(); + bitbox02::keystore::encrypt_and_store_seed(&seed, "").unwrap(); + bitbox02::memory::set_initialized().unwrap(); + } + unsafe { bitbox02::bindings::smarteeprom_bb02_config() }; unsafe { bitbox02::bindings::bitbox02_smarteeprom_init() }; @@ -410,8 +415,6 @@ impl ApplicationHandler for App { //let (x, y): (i32, i32) = position.to_logical::(window.scale_factor()).into(); let (x, y) = (position.x, position.y); let window_size = window.inner_size(); - let dpi_factor = window.scale_factor() as f32; - //let margin = (MARGIN as f32 * dpi_factor) as u32; let width_scale_factor = (window_size.width) as f32 / (2 * MARGIN + PADDING_LEFT + SCREEN_WIDTH + PADDING_RIGHT) as f32; @@ -613,6 +616,14 @@ impl AppError { } } +#[derive(Parser)] +#[command(version, about, long_about = None)] +struct Args { + /// Pre seed the simulated bitbox with empty password and the following bip39 seed phrase "boring mistake dish oyster truth pigeon viable emerge sort crash wire portion cannon couple enact box walk height pull today solid off enable tide" + #[arg(long)] + preseed: bool, +} + pub fn main() -> Result<(), Box> { // Enable debug output with environment variable RUST_LOG=debug let filter = EnvFilter::builder() @@ -622,7 +633,10 @@ pub fn main() -> Result<(), Box> { .with(fmt::layer()) .with(filter) .init(); - if !init_hww() { + + let args = Args::parse(); + + if !init_hww(args.preseed) { return Err(Box::new(AppError::new("Failed to init hww"))); } let event_loop = EventLoop::::with_user_event().build()?;