Move hardware fingerprinting to Rust (aligned with roadmap)
Description
Hey team,
While going through the roadmap, I noticed the long-term plan to migrate the camera OS to Rust. Since the hardware identity layer is a core and security-sensitive part of the system, I took a look at how it’s currently implemented.
At the moment, hardware_identity.py is responsible for generating the device fingerprint. Given that this involves low-level system reads and cryptographic hashing, it seems like a good candidate to start introducing Rust.
Possible approach
-
Rust module
Build a small, isolated Rust binary to handle fingerprint generation (e.g., reading from /proc/cpuinfo with graceful fallbacks)
-
EVM-aligned hashing
Use Keccak256 (tiny-keccak) instead of SHA-256 to align with EVM usage
-
Initial integration (non-breaking)
Output the fingerprint as JSON so the existing Python app can consume it via a subprocess
-
Future improvement
Explore using PyO3 to integrate the Rust logic directly into Python and remove subprocess overhead
Move hardware fingerprinting to Rust (aligned with roadmap)
Description
Hey team,
While going through the roadmap, I noticed the long-term plan to migrate the camera OS to Rust. Since the hardware identity layer is a core and security-sensitive part of the system, I took a look at how it’s currently implemented.
At the moment,
hardware_identity.pyis responsible for generating the device fingerprint. Given that this involves low-level system reads and cryptographic hashing, it seems like a good candidate to start introducing Rust.Possible approach
Rust module
Build a small, isolated Rust binary to handle fingerprint generation (e.g., reading from
/proc/cpuinfowith graceful fallbacks)EVM-aligned hashing
Use Keccak256 (
tiny-keccak) instead of SHA-256 to align with EVM usageInitial integration (non-breaking)
Output the fingerprint as JSON so the existing Python app can consume it via a subprocess
Future improvement
Explore using PyO3 to integrate the Rust logic directly into Python and remove subprocess overhead