Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.
This commit removes a weak, predictable random-number generator that was bundled as a backup inside the firmware's SLIP-39 code. Previously, if the device's proper hardware random source was accidentally left out of a build, the firmware c…
Removal of deterministic LCG PRNG (random32)Removal of weak-symbol random_buffer fallbackRemoval of unused random helper APIs
This commit removes support for the 'Leap' wallet from the Keystone 3 firmware. It deletes the Leap wallet icon and asset, removes Leap-related text strings from Chinese, Japanese, and Korean font files, and updates the Rust dependency ver…
This commit adds support for the Core Wallet in the Keystone 3 firmware. It mainly expands the number of Avalanche X/P-chain derivation paths from one to ten, updates the Rust SDK dependency, and changes how signing requests extract deriva…
Change to cryptographic signing API (multiple paths / multiple signatures)Change to HD derivation path validation and selection logicChange to master-fingerprint / source-fingerprint verification
This commit adds support for the Core Wallet in the Keystone 3 firmware. It mainly expands the number of Avalanche (AVAX) X/P-chain account paths from one to ten, updates the Rust signing code to accept multiple derivation paths from the w…
Change from hardcoded derivation-path derivation to paths supplied by the signing requestAddition of multiple AVAX X/P-chain account indexes (0-9)Signature generation now iterates over multiple provided paths
This commit removes the special 'TON-only wallet' feature from the Keystone 3 firmware. It deletes code that let users create or import a TON-native 24-word seed phrase separate from the normal BIP39 wallet. After this change, TON is handl…
No security-relevant signals present in the diff or commit metadataFeature removal, not a vulnerability patchNo mention of CVE, security advisory, researcher credit, or exploit in commit message
This firmware update for the Keystone 3 hardware wallet is billed as a security improvement. The most important change is a complete rewrite of the bootloader/firmware update path: it now uses SHA-256 and a signed/length-prefixed 'bootupda…
Bootloader/firmware update verification upgraded from MD5 to SHA-256 with length-prefixed magic headerAUTO_REBOOT_AFTER_COPY_FILE path removed from USB MSC SCSI handler, eliminating host-triggered reboot on file copyUSB endpoint address validation added across DCD, USBD core, and class drivers to prevent out-of-bounds EP array access
This commit is a large firmware update for the Keystone 3 hardware wallet, primarily adding a bootloader update mechanism and hardening the USB stack. It introduces a way to overwrite the device's bootloader from a specially formatted regi…
New bootloader self-update path from application flash with magic-number header, SHA-256 hash, and CRC32 verificationFlash encryption enabled for production builds using OTP-derived AES-CBC key/IVUSB control endpoint hardening: request length validation, descriptor bounds checks, endpoint address validation, stall-on-invalid requests
This commit adds support for a new wallet partner called Gero Wallet in the Keystone 3 firmware. It is a routine feature addition: a new icon, a new entry in wallet lists, a tutorial link, and recognition of the wallet's origin name when h…
This commit adds support for Litecoin (LTC) native SegWit addresses (the 'ltc1...' format) to the Keystone 3 hardware wallet firmware. It is a feature addition: it lets users generate and display a new type of LTC address and export the co…
This commit adds support for Litecoin (LTC) native SegWit addresses (the 'ltc1...' format) to the Keystone 3 hardware wallet firmware. It is a feature addition: it lets users generate and display LTC native SegWit receive addresses, export…
No security-relevant signals observed in the diff.Feature addition for LTC native SegWit address support.Removal of COMPILE_SIMULATOR guard around Highlight() is a build/simulator-only change and does not affect device security.
This commit is a code review and cleanup of the Cosmos cryptocurrency support in the Keystone 3 hardware wallet firmware. It fixes several small but real issues: it corrects a buffer-size mismatch when copying passwords/passphrases into me…
Buffer copy size corrected in secret cache (password/passphrase/new password)Seed buffer zeroized after Cosmos/Evmos signingRemoved redundant heap clones in transaction parsing
This commit is a code-review hardening pass for the Cardano wallet module in the Keystone 3 firmware. It replaces many Rust `.unwrap()` calls with proper error handling, adds bounds checks for derivation paths and public keys, zeroizes sen…
Removal of numerous `.unwrap()` calls in Cardano parsing/signing pathsAddition of `zeroize()` on entropy/seed buffers after FFI extractionFix of seed length selection for BIP39 vs SLIP39 in public-info generation
This commit is a defensive security hardening patch for the Keystone 3 hardware wallet firmware. It adds the `zeroize` Rust crate and explicitly clears sensitive memory buffers (mnemonics, seeds, passwords, RSA seeds, entropy, SLIP39 share…
Sensitive memory zeroization added for seeds, mnemonics, passwords, RSA seeds, entropy, and SLIP39 sharesUnsafe C string/buffer operations replaced with bounded _s variantsRust FFI panic paths removed and replaced with error-return paths in arweave module
This commit hardens how a hardware wallet (Keystone 3) handles sensitive RSA prime numbers used for Arweave transactions. It adds explicit length checks on seeds and prime inputs, switches to a safer memory-clearing helper (`zeroize` in Ru…
Input validation added for RSA seed lengths (16/32/64 bytes) and prime lengths (256 bytes)Sensitive intermediate buffers now cleared with `zeroize` (Rust) and `memset_s`/`CLEAR_ARRAY` (C)Removed unused `RSA::from_secret` that parsed fixed offsets from arbitrary-length `secret` slices
This commit is a code review and cleanup pass for the Avalanche (AVAX) app in the Keystone 3 hardware wallet firmware. It fixes typos in transaction type names, adds a few length checks before reading transaction bytes, replaces direct low…
Bounds check added before advancing transaction bytes in get_avax_tx_type_idBounds check added before splitting memo bytes in BaseTx parsingManual secp256k1 signing replaced by keystore helper
This commit only updates unit tests for the Avalanche transaction parser. It swaps test blockchain IDs from mainnet to testnet values, removes debug print statements, fixes an import order warning, and replaces placeholder assertions with …
This commit is purely a code cleanup: it runs the Rust formatter (fmt) and applies Clippy lint suggestions. The changes are cosmetic—reformatting lines, reordering imports, removing unused imports, and adding 'unsafe' markers to functions …
This commit adds one line that turns off a 'quick access' toggle for the passphrase feature whenever the passphrase text is cleared. Without this fix, the toggle could stay enabled unexpectedly, potentially causing the device to remember o…
UI state reset now includes a security-relevant togglePassphrase-related UI state is being explicitly clearedSingle-line defensive fix in passphrase settings widget
This commit adds code that clears the optional passphrase text from the screen and resets its visibility to hidden (password mode) whenever the user navigates back from passphrase entry during wallet creation, import, or settings. It also …
Sensitive UI state (passphrase text and visibility) is explicitly cleared on navigation backRefactored password-mode toggle to allow programmatic reset to hiddenNo input validation, buffer handling, or cryptographic code was modified
This commit adds the ability to set a BIP-39 passphrase during wallet creation and import, not just afterward in settings. Most of the change is UI flow wiring, but it also fixes a small bug in the SLIP-39 salt construction and adds a leng…
Passphrase now participates in initial wallet creation/import key derivationSLIP-39 salt construction changed from fixed 6-byte copy to zero-init + strlen-based copyPassphrase length capped at 255 bytes in MasterSecretEncrypt