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 is a routine cleanup that removes the old SCons build system files from the Trezor Core firmware repository. It deletes Makefiles, SConscripts, and related Python helper scripts, but does not change any firmware source code, cr…
This is a massive Trezor firmware commit that replaces the old SCons-based build system with Cargo (Rust's build tool) for compiling the embedded C code. It adds many new Cargo.toml files, build.rs scripts, and a custom xbuild helper crate…
Large build-system refactor with potential for accidental changes in compiler flags, source inclusion, or linker scriptsNew custom build helper (xbuild) now controls C compilation, bindgen, and binary embeddingNo direct changes to crypto, secure storage, or protocol handling code observed
This commit is a straightforward code cleanup: it changes the way source files locate shared header files from absolute-style paths to relative paths. There is no change to program logic, no bug fix, and no security-relevant behavior.
This commit is a code cleanup that changes how a special testing-only feature is enabled in Trezor firmware. Previously, the feature was enabled whenever Python optimization was disabled (PYOPT == 0). Now it is enabled through a dedicated …
Refactoring of debug-only security hardware test hookDecoupling of PYOPT from USE_OPTIGA_TESTING build flagNo removal of the underlying test-only syscall/smcall
This is a code cleanup and build-fix change for the Trezor firmware bootloader. It moves the bootloader's binary header definition from a shared security file into a bootloader-specific file, and fixes the build configuration for a special…
Bootloader header structure moved from shared security code to project-specific fileCI bootloader build configuration corrected to use correct header source and header toolSignature mask and authenticated-size fields are still explicitly zeroed/placeholdered, with comments noting headertool_pq must fill them later
This commit simply moves a source file from one directory to another within the Trezor firmware build system. The actual code content is unchanged. There is no security-relevant change visible in the diff.
This commit is a code reorganization: it splits the random-number generator (RNG) module into two parts. The basic hardware RNG moves from the security subsystem to the system subsystem, while the stronger multi-source RNG stays in the sec…
This commit adjusts how the Trezor bootloader's length is calculated and pads the bootloader image to a 512-byte boundary. The old calculation added the sizes of two memory sections, which could produce a value that does not match the actu…
Linker-level size calculation changed from section-size sum to start-to-end spanNew explicit zero-fill and 512-byte alignment of bootloader imageBootloader boundary definition changed, which may affect integrity/verification metadata
This commit is a code cleanup that replaces the use of a small printf-style formatter (mini_snprintf) with simpler, purpose-built string helpers in the Trezor bootloader and low-level system code. It does not add or remove security feature…
Removal of mini_snprintf from bootloader/boardloader reduces format-string parsing in privileged boot stagesNew cstr_append helpers are now used in security-relevant display paths (RSOD, wipe-code screen, PIN-attempt screen, fault messages)Potential for off-by-one or truncation bugs in newly introduced cstr_append and integer append helpers
This commit adjusts linker scripts that control how the Trezor hardware wallet's bootloader and security monitor (secmon) binary images are laid out in flash memory. It reduces alignment padding from 512 bytes to 4 bytes and changes how un…
Linker script changes affecting bootloader and security monitor image layoutAlignment reduction from 512 bytes to 4 bytes in flash and RAM sectionsPadding logic rewritten to use explicit FILL and exact boundary symbol
This commit changes how the Trezor hardware wallet's earliest startup code (boardloader and bootloader) uses internal memory on the T3B1 model. It shifts small data and uninitialized-memory sections from one RAM bank (AUX1_RAM) to another …
Memory layout change in security-sensitive boot stages (boardloader/bootloader)Use of ECC SRAM suggests hardening against fault attacks / bit flipsNo changelog entry provided
This commit removes a special firmware memory section called ".confidential" that was meant to keep sensitive data (like cryptographic keys and seed-derived values) separate from ordinary memory. Previously, variables marked with a CONFIDE…
Removal of dedicated .confidential RAM/flash section used for secret buffersDeletion of startup copy routine that initialized confidential RAM from flashCrypto and storage sensitive buffers moved from section-isolated globals to normal data/stack semantics
This commit is a temporary hotfix that disables the Tropic secure-element randomness source in non-production builds to stop a Red Screen of Death (RSOD) crash triggered by the function rng_fill_buffer_strong. The change wraps the Tropic r…
Change affects a cryptographic randomness function (rng_fill_buffer_strong) used for secure operations.A hardware-wallet secure-element entropy source (Tropic) is conditionally disabled outside production builds.Commit is explicitly labeled as a temporary/hotfix workaround, not a complete fix.
This commit is a code cleanup that makes all random-number generation in the Trezor firmware core go through one dedicated secure path (sec/rng). It also moves the old insecure test-only random generator into a separate file so it is only …
Centralizes randomness source to a single hardware-backed RNG pathIsolates insecure LCG PRNG under USE_INSECURE_PRNG for tests/emulators onlyRemoves weak random_buffer fallback from production RNG code paths
This commit refactors how Trezor firmware generates random numbers. It adds a new 'strong' randomness path that mixes the device's hardware RNG with entropy from external secure chips (Optiga and/or Tropic), and routes all randomness throu…
Refactoring of critical RNG code across bootloader, kernel, secure monitor, firmware, and Unix emulator buildsNew external entropy source (Tropic chip) mixed into RNG output via XORRemoval of direct Optiga random-buffer syscall in favor of generic RNG syscalls
This is a large internal code reorganization in Trezor's embedded firmware. It moves flash/storage headers and build flags around so different firmware images (bootloader, kernel, production test, etc.) declare more explicitly which featur…
Low-level flash layout and storage initialization code is reorganizedKERNEL_MODE / SECURE_MODE compile-time guards are changed to feature flagsStorage sector count macro changed from STORAGE_AREAS_COUNT to NORCOW_SECTOR_COUNT in MPU sizing
This commit changes how some Trezor hardware wallets generate a secret internal 'entropy' value used to protect stored data. For newer devices (STM32U5-based models), the entropy is now derived from a master key already inside the secure c…
Entropy source changed from device-unique hardware values to a key-derived value on newer devicesNew vendor_header.fw_type field influences key derivation (secret_key_storage_salt(vhdr.fw_type, ...))Non-production builds allow failure of storage salt retrieval, falling back to zeroed entropy