Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
58/100 average clarity
68Strong · 80–100
321Adequate · 60–79
302Thin · 40–59
88Opaque · 0–39
26security candidates with opaque commit messaging
This commit adds a new 'session reset' command to the BitBox02 hardware wallet's USB protocol. It lets the host computer cleanly reset the device connection if a previous operation was interrupted, instead of leaving the device stuck mid-t…
New USB control command added to host-wallet protocolReset path cancels async task, resets Noise state, unlocks USB processing, and clears output queueU2F UI ownership check prevents reset from interrupting an active U2F workflow
This is a routine Python code refactor. It moves an existing 'reset session' command from one internal class to another and adds a version check so older firmware simply skips it. There is no security bug being fixed here; it is purely org…
This commit fixes a bug in the BitBox02 hardware wallet where unplugging the USB cable at the wrong moment could leave a half-finished operation running. If the device stayed powered and a new host reconnected, the new host's first message…
Fixes cross-session state confusion on USB reconnectAdds explicit session reset command to cancel stale async workflowsResets Noise cryptographic session to prevent old-key encrypted responses
This commit adds a new recovery-word entry screen for the upcoming BitBox03 hardware wallet. It is a large feature patch: it introduces a dedicated BIP39 wordlist keyboard, a new recovery-words review screen, and changes how the device han…
New UI workflow distinguishes 'back' from 'cancel' during seed restoration, reducing accidental aborts.Cancel actions still require an explicit confirmation prompt before the restore is abandoned.Wordlist keyboard disables keys that cannot lead to a valid BIP39 word, preventing invalid-word compositions at the widget level.
This commit improves the BitBox02 hardware wallet's Ethereum token-approval screen. When a user signs an ERC20 token transfer, the device now also shows the token's smart-contract address if the token symbol is ambiguous (the same ticker, …
UI hardening: adds contract-address confirmation for ERC20 tokens with ambiguous or unknown symbolsRegistry validation: rejects payment requests for tokens not present in the firmware's ERC20 registryBuild-time ambiguity detection: generates a sorted list of units shared by multiple contracts
This commit relaxes a version check in the BitBox02 bootloader upgrade code. Previously, the firmware installer required that a stage0 bootloader descriptor's version exactly matched the currently expected image version. Now it accepts des…
Strict version equality check removed from bootloader descriptor parsingChange located in bootloader upgrade / firmware installer verification pathNo bounds, length, or pointer validation changes observed
This commit hardens the BitBox02 firmware so it stops trusting that incoming text strings are valid UTF-8 or plain ASCII. It replaces risky C string copies with length-checked, UTF-8-aware helpers, rejects non-ASCII characters at UI bounda…
Replaced snprintf-based string copies with length-bounded UTF-8-aware copiesAdded explicit length parameter to memory_set_device_name and reject embedded/invalid nullsAdded printable-ASCII enforcement at Rust UI boundary before C rendering
This commit fixes a coding guideline violation in the BitBox02 factory setup code. A 32-byte buffer that receives output from a Rust function was not initialized to zeroes before use. The accompanying documentation now explicitly requires …
Uninitialized stack buffer used as output buffer for Rust/C FFI callDefensive zero-initialization added to prevent use of stale stack data on error or partial write pathsProject coding guidelines updated to mandate zero-initialization for rust_util_bytes_mut buffers
This commit fixes a display behavior issue during startup of the BitBox02 hardware wallet. Previously, when the device turned on, the screen's reset pin was left in a state that could allow leftover images or text from an earlier session t…
Information disclosure via residual display content during bootOLED reset pin sequencing hardeningDefense against stale/misleading UI state before verified firmware initializes display
This commit trims the BitBox02 factory-setup firmware image by switching stored root attestation public keys from 65-byte uncompressed to 33-byte compressed secp256k1 keys, and by using a smaller static secp256k1 verification context inste…
Change in trusted public-key table format and derivation logicSwitch to static/no-precomp secp256k1 verification contextAddition of secp256k1 self-test at boot
This commit adds extra safety checks in the BitBox02 Python library for ECDSA signatures used in Bitcoin and Ethereum signing. It now validates that signatures have the correct length, use valid numbers, and use the safer low-S form. It al…
Defensive validation added for ECDSA signature format and low-S encodingRecovery ID range validation added for recoverable signaturesAnti-Klepto verification now rejects malformed/malleable signatures before nonce verification
This commit tweaks how the BitBox02 hardware wallet displays a payment-request memo on screen. It changes the label from 'Memo from\n\nMerchant' to 'Memo from: Merchant' and makes the screen scrollable so long merchant names don't get cut …
No security-relevant signal in commit message or diffUI/UX change only: text formatting and scrollabilityNo memory-safety, cryptographic, or authorization changes observed
This commit is a hardening and size-optimization change for the BitBox02 factory-setup firmware. It stores the 110 built-in root attestation public keys in compressed (33-byte) form instead of uncompressed (65-byte) form, and marks the tab…
Data table moved from writable RAM to read-only flash (const)Public-key table size reduced from 65 to 33 bytes per keyNew Rust helper normalizes compressed/uncompressed keys before hashing
This commit swaps one internal cryptography library for another when computing HMAC-SHA256 in the factory-setup code. The goal is to reduce firmware size by reusing an existing SHA-256 implementation, not to fix a security bug. New test ve…
Cryptographic implementation change in HMAC-SHA256 helperUse of `.unwrap()` on `new_from_slice`, which can panic if key length is unsupported; for HMAC-SHA256 the RustCrypto `new_from_slice` accepts any key length, so this is effectively safe but still a panic pathNo removal of existing call sites; normal firmware still uses `bitcoin_hashes` for other callers
This commit changes how the BitBox02 factory-setup program checks digital signatures. It switches from a dynamically created crypto context to a built-in, read-only verification context, which makes the factory-setup firmware about 35 KB s…
Cryptographic context change in verification pathRemoval of dynamic secp256k1 context creation in factory setupExplicit addition of secp256k1_selftest() to compensate for skipped implicit self-test
This commit is a performance optimization in the BitBox02 factory setup process. It changes how the device picks which trusted root public key to use when verifying an attestation certificate. Previously, the device tried verifying the sig…
No removal of cryptographic verification: rust_secp256k1_verify is still performed after key selection.No change to accepted inputs: any certificate accepted before is still accepted, and any rejected before is still rejected.Identifier comparison uses MEMEQ over the full 32-byte SHA-256 digest, so collision resistance is standard.
This commit is a large feature merge that adds initial support for a new hardware variant, the BitBox03 (STM32U5-based development kit). It introduces new bootloader and firmware binaries, board support crates, vendored Rust dependencies (…
This commit adds a progress bar that appears while the BitBox02 is loading large Ethereum transaction data from a connected computer. It is a user-experience improvement, not a security fix. The code only changes how progress is displayed …
This commit adds a configuration file for OpenOCD, a debugging tool used during hardware development and testing. It tells the debugger how to connect to an STM32U5 test board using a J-Link adapter. There is no change to firmware code, no…
This commit only adds explanatory comments to Python type-stub files describing what happens when an optional anti-klepto host nonce commitment is left out. It does not change any firmware logic, cryptographic code, or default behavior. Th…
Documentation-only change in generated Python stubsMentions anti-klepto / S2C nonce commitment fallback behaviorNo logic, default, or cryptographic implementation change
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
Security candidateeth: add tests with large data to test streamingby Tomas Vrba · 2a1108e0 · Feb 13, 2026 · 6 filesMessage 78 · AdequateInformational 15Details
Commit message · Tomas Vrba
eth: add tests with large data to test streaming
Adds transactions with large data (about 20% of total txs) to the sighash go script to unit test the chunking producer
- test sign.rs to test that new streaming mode produces same signatures as non-streaming - test that streaming large data produces signatures of expected size
eth: prepare tests for eth sighash streaming
prepares initial unit tests for simple and chunking producer for data streaming
tests generated by Claude Code
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 15/100
This commit is purely a test-suite update for the BitBox02 hardware wallet's Ethereum transaction signing. It adds unit tests that verify the new 'streaming' mode for large transaction data produces the same cryptographic signatures as the older non-streaming mode, and updates test data files. There is no change to production firmware code or user-facing behavior, and nothing in the commit suggests a security vulnerability.
Security candidateeth: prepare and generate proto files for data streamingby Tomas Vrba · 83be97ad · Feb 13, 2026 · 6 filesMessage 83 · StrongInformational 11Details
Commit message · Tomas Vrba
eth: prepare and generate proto files for data streaming
update existing tests to include the new data length field
Adds new protobuf fields to support streaming large transaction data: - data_length: Indicates total data size (triggers streaming mode if > 6144) - EthSignDataRequestChunkResponse: Request for a data chunk at offset/length - EthSignDataResponseChunkRequest: Response containing the requested chunk
Regenerates all protobuf files (Python, Rust, C) from the updated .proto.
Updates existing tests to populate the new data_length field (set to 0 for traditional mode where all data is sent inline).
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 11/100
This commit adds new message definitions and generated code to support streaming large Ethereum transaction data in chunks, but it does not implement the actual streaming logic. Existing tests are updated only to include the new optional field set to zero, meaning the current behavior is unchanged. There is no indication this is a security fix or introduces a vulnerability.
Security candidatehal: move bitbox02 HAL impl into a submoduleby benma's agent · 2c7d2370 · Feb 10, 2026 · 8 filesMessage 45 · ThinInformational 15Details
Commit message · benma's agent
hal: move bitbox02 HAL impl into a submodule
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 15/100
This commit is a pure code reorganization: it moves the BitBox02-specific hardware abstraction layer (HAL) implementation out of one large file into several smaller files in a new submodule. No functionality, behavior, or security properties of the firmware appear to change. It is comparable to rearranging chapters in a book without rewriting the text.
Security candidatehal: split HAL sub-traits into modulesby benma's agent · 7c32f71f · Feb 10, 2026 · 6 filesMessage 45 · ThinInformational 15Details
Commit message · benma's agent
hal: split HAL sub-traits into modules
For ease of maintenance.
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 15/100
This commit is a simple code reorganization: it takes several related pieces of a hardware abstraction layer (HAL) that were all written in one large file and splits them into smaller, separate files. No behavior of the device or its security functions was changed. It is comparable to moving chapters of a book into individual files without rewriting the text.
hal: remove the crate::workflow::testing re-export
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathauthentication path
AI analysis · Informational 15/100
This commit is a simple internal cleanup in the BitBox02 firmware's Rust code. It removes a shortcut (a 're-export') that made test-only user-interface helpers available under an old module path, and updates all test files to import those helpers directly from their new location. There is no change to the actual device behavior, no bug fix, and no security impact.
- crate::workflow::Workflows are moved to crate::hal::Ui, and crate::workflows::RealWorkflows are moved to crate::hal::BitBox02Ui - crate::hal::testing is moved from an inline module to a file with one submodule per trait impl
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
seed or entropy path
AI analysis · Informational 15/100
This commit is a pure internal code reorganization (refactor) of the BitBox02 firmware's Rust code. It moves the user-interface trait and its real/testing implementations into a new 'hal' (hardware abstraction layer) module structure and renames some types (e.g., Workflows -> Ui, RealWorkflows -> BitBox02Ui, TestingWorkflows -> TestingUi). No security-sensitive behavior appears to change; it is a maintainability/clean-up change.
Security candidatefirmware: port main loop to rustby Marko Bencun · a48988a9 · Feb 5, 2026 · 29 filesMessage 68 · AdequateLow 31Details
Commit message · Marko Bencun
firmware: port main loop to rust
simulator: remove u2f workflows. The simulators don't simulate u2f, so it's not needed.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
boot or update pathparser or protocol path
AI analysis · Low 31/100
This commit rewrites the BitBox02 hardware wallet's main firmware loop from C to Rust. It is a large refactoring change that moves core USB, Bluetooth/UART, and workflow handling into Rust. The change itself is not a security fix and does not introduce an obvious vulnerability in the diff, but any rewrite of security-critical firmware code carries a risk of subtle behavioral differences or memory-safety edge cases at the C/Rust boundary. The commit message and diff do not describe any security issue or credit a researcher.
Security candidatehww: remove empty function hww_process()by Marko Bencun · f6dcfd29 · Feb 4, 2026 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · Marko Bencun
hww: remove empty function hww_process()
It does nothing.
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100
This commit removes an empty placeholder function called hww_process() that did nothing. It is a routine code cleanup with no security relevance.
* Move fatfs into a rust crate to simplify CMake files. * Apply C flags like stack-protector to c code that is built by cargo.
70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
boot or update path
AI analysis · Low 25/100
This commit is a build-system refactor: it moves the FatFs microSD filesystem library from a direct CMake target into a new Rust crate wrapper, and makes sure C compiler hardening flags (such as stack-protector) are also applied when Cargo's build.rs scripts compile C code. There is no obvious runtime vulnerability in the diff, but the change touches how security-relevant C code is compiled, so it deserves a quick sanity check that the new wrapper preserves the same flags and symbol visibility.
Enable GCC -Wcast-align=strict globally (Clang uses -Wcast-align) so misaligned pointer-cast issues are caught across firmware, bootloader, unit tests, and simulators.
Fixes fall into two UB classes:
1) Alignment UB: casting byte buffers/packed payloads to wider pointer types and then dereferencing can require stricter alignment than the source object provides. This is undefined behavior per C.
2) Effective-type / strict-aliasing UB: reading a value by reinterpreting a uint8_t buffer as a different object type via a pointer cast violates C’s effective-type/aliasing rules, so the compiler may miscompile even when the address happens to be aligned.
Resolve by memcpy’ing into properly-typed locals (e.g. USB_FRAME, u32/version_t) before use.
- Alignment UB from pointer casts: §6.3.2.3 p7 (“Pointers”) — converting to a different object pointer type and the result not being correctly aligned is UB. - Effective type rule: §6.5 p6 (“Expressions”) — defines an object’s effective type (including the memcpy/memmove wording). - Strict-aliasing rule: §6.5 p7 — lists the allowed lvalue types you may use to access an object’s stored value (the classic aliasing bullet list).
98/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
update trustboot or update path
AI analysis · Moderate 53/100
This commit turns on a stricter compiler warning that catches risky pointer casts in C code, and fixes the resulting warnings. The changes replace direct casts from byte buffers to larger types (like treating a raw byte array as a 32-bit number or USB frame) with safer memcpy-based copies. The commit message explicitly frames these as classes of undefined behavior (alignment and strict-aliasing issues) that could lead to miscompilation or incorrect reads. It is a hardening/correctness patch rather than a fix for a known exploitable bug, but the affected code paths include bootloader pairing-code handling, firmware version parsing, USB packet processing, and BLE pairing-code display.
Security candidateda14531: simplify da14531_set_name by dropping len paramby Marko Bencun · c9a7a6be · Feb 3, 2026 · 4 filesMessage 73 · AdequateInformational 15Details
Commit message · Marko Bencun
da14531: simplify da14531_set_name by dropping len param
The string is null-terminated, all callsites call `strlen()`.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
boot or update path
AI analysis · Informational 15/100
This is a small code cleanup change. A function that sends the device's Bluetooth name to a wireless chip is simplified by removing an unnecessary length parameter. The function now figures out the string length itself using strlen(), which is exactly what every caller was already doing. There is no security issue visible in this change.
Security candidatebitbox-secp256k1: drop result vars, inline the expressionsby Marko Bencun · 3f44eeab · Feb 3, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Marko Bencun
bitbox-secp256k1: drop result vars, inline the expressions
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100
This commit is a minor code cleanup in the BitBox02 firmware's Rust wrapper around secp256k1 cryptography. It removes temporary variables that held function return values and instead checks those return values directly inside 'if' conditions. There is no change to program logic, no security fix, and no new vulnerability.
Security candidatebitbox-secp256k1: use hex!() over hex::decode()by benma's agent · e14b4beb · Feb 3, 2026 · 3 filesMessage 45 · ThinInformational 14Details
Commit message · benma's agent
bitbox-secp256k1: use hex!() over hex::decode()
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 14/100
This commit is a small code cleanup in the BitBox02 firmware's Rust code. It replaces runtime hex decoding with a compile-time macro for test data only. There is no security vulnerability here—just a dependency swap that makes unit tests slightly more efficient and removes an unused dev-dependency.
Security candidatesecp256k1: compile ecdsa_anti_exfil_host_commit only for testingby benma's agent · c67dae9a · Feb 3, 2026 · 1 fileMessage 60 · AdequateInformational 16Details
Commit message · benma's agent
secp256k1: compile ecdsa_anti_exfil_host_commit only for testing
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 16/100
This commit hides a special testing-only function from the normal firmware build. The function itself is not a vulnerability; it is a build-hygiene change to make sure code meant only for unit tests is not compiled into the real device firmware. That reduces the attack surface slightly, but it does not fix any known bug.
bitbox-secp256k1: remove needless ffi def of secp256k1_ecdsa_signature_serialize_compact
It is already wrapped in the bitcoin::secp256k1 dep.
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing boundarycryptography-sensitive path
AI analysis · Informational 15/100
This commit removes a duplicate low-level binding to a secp256k1 cryptographic function and replaces its use with an equivalent, already-vetted wrapper from the project's dependency on the bitcoin::secp256k1 Rust crate. It is a code cleanup/refactoring change with no security-relevant behavior change visible in the diff.
Security candidatebuild: consolidate secp256k1 into new crate bitbox-secp256k1by benma's agent · eabe5aa4 · Feb 3, 2026 · 27 filesMessage 85 · StrongInformational 12Details
Commit message · benma's agent
build: consolidate secp256k1 into new crate bitbox-secp256k1
- cargo-first build of the secp256k1-zkp C dep, so the crate can be compiled without CMake and normal cargo tooling works - Moved bitbox02::secp256k1 and bitbox02_rust::secp256k1 into it
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 12/100
This commit is a build-system refactor: it moves the secp256k1 cryptographic library dependency into a new Rust crate called bitbox-secp256k1 so it can be built with normal Cargo tooling instead of CMake. The actual cryptographic functions (signing, nonce commitments, DLEQ proofs, etc.) are copied almost unchanged from existing modules into the new crate. There is no direct evidence in the commit that this fixes a security vulnerability or introduces a new exploit.
The last remaining secp256k1 C library use. After this, we can consolidate all sec256k1 things into a new bitbox-secp256k1 crate.
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
defensive validationcryptography-sensitive path
AI analysis · Informational 20/100
This commit rewrites a small piece of the BitBox02 factory-setup code from C to Rust. The code verifies a cryptographic signature on the device during factory setup. The change itself is a routine refactoring: it removes the old C secp256k1 library call and replaces it with an equivalent Rust call. There is no indication in the commit that this fixes a known security bug, and the new Rust code includes tests for invalid inputs. On its own, this looks like a defensive hardening/cleanup change rather than a vulnerability fix.
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
update trust
AI analysis · Informational 18/100
This commit is a straightforward internal refactoring: it moves the device-reboot-into-bootloader function behind a new 'System' hardware-abstraction trait so the rest of the Rust code calls it through a generic interface rather than directly. The actual reboot behavior, safety checks (a user confirmation screen), and underlying C function are unchanged. There is no new vulnerability here; it is normal code cleanup.
Security candidateport communication_mode to Rustby benma's agent · bc518af8 · Jan 16, 2026 · 15 filesMessage 58 · ThinInformational 17Details
Commit message · benma's agent
port communication_mode to Rust
With extern C functions to use them in the C code. The firmware main loop will be ported to Rust, so it will not be needed there much longer, but the bootloader also uses it.
update trustboot or update pathparser or protocol path
AI analysis · Informational 17/100
This commit rewrites a small piece of firmware logic from C to Rust. The logic decides whether the BitBox02 Nova hardware wallet should use Bluetooth or USB for communication. There is no obvious security bug introduced by the change; it appears to be a routine language port with matching behavior and added unit tests.
Security candidaterust: update rust-miniscript to v13.0.0.by Marko Bencun · 4c1c8000 · Jan 14, 2026 · 122 filesMessage 60 · AdequateInformational 16Details
Commit message · Marko Bencun
rust: update rust-miniscript to v13.0.0.
This saves 30144 bytes in the firmware binary.
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing or wallet pathboot or update pathparser or protocol path
AI analysis · Informational 16/100
This commit updates the BitBox02 firmware's vendored copy of the Rust 'miniscript' library to version 13.0.0, along with its dependency 'hex-conservative'. The stated reason is to reduce firmware size by about 30 KB. The change is a routine dependency refresh; the commit message and diff do not describe any security bug being fixed, and no independent security advisory is supplied.
Security candidatereleases: add v9.25.0by Marko Bencun · 63827e2f · Jan 13, 2026 · 6 filesMessage 61 · AdequateInformational 15Details
Commit message · Marko Bencun
releases: add v9.25.0
Since 011c8aa893dcf48e47268de0f52a839ee8fbc4eb we don't tag and release the bitcoin-only variant separately anymore, so in the releases folder we also consolidate both into one folder for consistency. This way we can link to one folder from the release page, which now contains both variants.
61/100 · AdequateMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
boot or update path
AI analysis · Informational 15/100
This commit is a routine release packaging update. It adds the signed build reproducibility assertions for BitBox02 firmware version 9.25.0 (both the multi-coin and Bitcoin-only variants) and updates the helper script and documentation to handle a new naming scheme where the product name is included in the assertion filename. There is no code change to the firmware itself and no security vulnerability is introduced or fixed.
This commit only fixes the formatting of license headers in automatically generated Python type-stub files. It moves the SPDX license notice from a standalone comment line into the generated docstring block. There is no change to program logic, no security fix, and no vulnerability.
Security candidatemove bitbox02::util to util::stringsby benma's agent · daec715d · Jan 7, 2026 · 13 filesMessage 60 · AdequateInformational 15Details
Commit message · benma's agent
move bitbox02::util to util::strings
It's not BitBox02 related, so we can move it to the util crate.
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100
This commit simply moves a set of helper functions for handling strings from one Rust module to another. The actual code is copied unchanged, and all existing callers are updated to use the new location. There is no security fix or behavior change.
Security candidateapi/device_info: add password_stretching_algoby Marko Bencun · c1cb7182 · Jan 6, 2026 · 6 filesMessage 35 · OpaqueInformational 18Details
Commit message · Marko Bencun
api/device_info: add password_stretching_algo
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
AI analysis · Informational 18/100
This commit adds a new read-only field to the BitBox02's device information API that tells the connected app which password-stretching algorithm the device uses. It does not change how passwords are stretched or how they are verified; it only exposes existing internal information to the host. There is no indication this is a security fix or that it introduces a vulnerability.
Security candidateMove "get_attestation_*" functions to HALby cedwies · 45355e61 · Jan 3, 2026 · 2 filesMessage 55 · ThinInformational 18Details
Commit message · cedwies
Move "get_attestation_*" functions to HAL
attestation.rs was expanded with tests
55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
update trustboot or update path
AI analysis · Informational 18/100
This commit is a code cleanup and test-improvement change. It moves two device-attestation helper functions from a direct hardware call into a software 'hardware abstraction layer' (HAL) so the code can be tested without the real device. It also adds unit tests that simulate the attestation process. There is no indication this fixes a security bug or introduces a new vulnerability.