What changed, and why it matters
This commit is a simple rename of a Rust function from `subsystems()` to `as_mut()` across several files. It does not change what the code does, only makes the name clearer to programmers. There is no security issue here.
No action required. This is a non-functional refactoring change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch renames the Hal::subsystems() trait method and all call sites to as_mut(). The method returns mutable references to hardware abstraction layer subsystems. The rename is purely cosmetic and intended to signal that the method provides mutable access. No logic, signatures, lifetimes, or behavior were altered.
Changed components
src/rust/bitbox-hal/src/lib.rssrc/rust/bitbox02-rust/src/hal/testing.rssrc/rust/bitbox02-rust/src/hww/api/bip85.rssrc/rust/bitbox02-rust/src/hww/api/show_mnemonic.rssrc/rust/bitbox02-rust/src/keystore.rssrc/rust/bitbox02-rust/src/workflow/unlock.rssrc/rust/bitbox02/src/hal.rsInspect captured patch +19 / −14
diff --git a/src/rust/bitbox-hal/src/lib.rs b/src/rust/bitbox-hal/src/lib.rs
index 9620e3d..90c9473 100644
--- a/src/rust/bitbox-hal/src/lib.rs
+++ b/src/rust/bitbox-hal/src/lib.rs
@@ -44,7 +44,7 @@ pub trait Hal {
type Memory: memory::Memory;
type System: system::System;
- fn subsystems(
+ fn as_mut(
&mut self,
) -> HalSubsystems<
'_,
@@ -57,26 +57,26 @@ pub trait Hal {
>;
fn ui(&mut self) -> &mut Self::Ui {
- self.subsystems().ui
+ self.as_mut().ui
}
fn random(&mut self) -> &mut Self::Random {
- self.subsystems().random
+ self.as_mut().random
}
fn sd(&mut self) -> &mut Self::Sd {
- self.subsystems().sd
+ self.as_mut().sd
}
fn securechip(&mut self) -> &mut Self::SecureChip {
- self.subsystems().securechip
+ self.as_mut().securechip
}
fn memory(&mut self) -> &mut Self::Memory {
- self.subsystems().memory
+ self.as_mut().memory
}
fn system(&mut self) -> &mut Self::System {
- self.subsystems().system
+ self.as_mut().system
}
}
diff --git a/src/rust/bitbox02-rust/src/hal/testing.rs b/src/rust/bitbox02-rust/src/hal/testing.rs
index 6844f9a..a2d6848 100644
--- a/src/rust/bitbox02-rust/src/hal/testing.rs
+++ b/src/rust/bitbox02-rust/src/hal/testing.rs
@@ -44,7 +44,7 @@ impl<'a> crate::hal::Hal for TestingHal<'a> {
type Memory = TestingMemory;
type System = TestingSystem;
- fn subsystems(
+ fn as_mut(
&mut self,
) -> crate::hal::HalSubsystems<
'_,
diff --git a/src/rust/bitbox02-rust/src/hww/api/bip85.rs b/src/rust/bitbox02-rust/src/hww/api/bip85.rs
index 7be2445..0a9e554 100644
--- a/src/rust/bitbox02-rust/src/hww/api/bip85.rs
+++ b/src/rust/bitbox02-rust/src/hww/api/bip85.rs
@@ -111,7 +111,7 @@ async fn process_bip39(hal: &mut impl crate::hal::Hal) -> Result<(), Error> {
let mnemonic = keystore::bip85_bip39(hal, num_words, index)?;
let words: Vec<&str> = mnemonic.split(' ').collect();
{
- let crate::hal::HalSubsystems { ui, random, .. } = hal.subsystems();
+ let crate::hal::HalSubsystems { ui, random, .. } = hal.as_mut();
crate::workflow::mnemonic::show_and_confirm_mnemonic(ui, random, &words).await?;
}
diff --git a/src/rust/bitbox02-rust/src/hww/api/show_mnemonic.rs b/src/rust/bitbox02-rust/src/hww/api/show_mnemonic.rs
index 4ae08d6..dec00c2 100644
--- a/src/rust/bitbox02-rust/src/hww/api/show_mnemonic.rs
+++ b/src/rust/bitbox02-rust/src/hww/api/show_mnemonic.rs
@@ -47,7 +47,7 @@ pub async fn process(hal: &mut impl crate::hal::Hal) -> Result<Response, Error>
let words: Vec<&str> = mnemonic_sentence.split(' ').collect();
{
- let crate::hal::HalSubsystems { ui, random, .. } = hal.subsystems();
+ let crate::hal::HalSubsystems { ui, random, .. } = hal.as_mut();
crate::workflow::mnemonic::show_and_confirm_mnemonic(ui, random, &words).await?;
}
diff --git a/src/rust/bitbox02-rust/src/keystore.rs b/src/rust/bitbox02-rust/src/keystore.rs
index b1d4bc1..06c2e80 100644
--- a/src/rust/bitbox02-rust/src/keystore.rs
+++ b/src/rust/bitbox02-rust/src/keystore.rs
@@ -55,8 +55,13 @@ impl<'a, M: Memory, R: Random, S: SecureChip> KeystoreHalImpl<'a, M, R, S> {
where
H: crate::hal::Hal<Memory = M, Random = R, SecureChip = S>,
{
- let subsystems = hal.subsystems();
- Self::new(subsystems.memory, subsystems.random, subsystems.securechip)
+ let crate::hal::HalSubsystems {
+ random,
+ securechip,
+ memory,
+ ..
+ } = hal.as_mut();
+ Self::new(memory, random, securechip)
}
}
diff --git a/src/rust/bitbox02-rust/src/workflow/unlock.rs b/src/rust/bitbox02-rust/src/workflow/unlock.rs
index e019ea3..8683d53 100644
--- a/src/rust/bitbox02-rust/src/workflow/unlock.rs
+++ b/src/rust/bitbox02-rust/src/workflow/unlock.rs
@@ -162,7 +162,7 @@ pub async fn unlock_bip39(hal: &mut impl crate::hal::Hal, seed: &[u8]) {
securechip,
memory,
..
- } = hal.subsystems();
+ } = hal.as_mut();
let mut keystore_hal = crate::keystore::KeystoreHalImpl::new(memory, random, securechip);
let ((), result) = futures_lite::future::zip(
diff --git a/src/rust/bitbox02/src/hal.rs b/src/rust/bitbox02/src/hal.rs
index 9067d26..c1ad3be 100644
--- a/src/rust/bitbox02/src/hal.rs
+++ b/src/rust/bitbox02/src/hal.rs
@@ -43,7 +43,7 @@ impl Hal for BitBox02Hal {
type Memory = memory::BitBox02Memory;
type System = system::BitBox02System;
- fn subsystems(
+ fn as_mut(
&mut self,
) -> bitbox_hal::HalSubsystems<
'_,
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.