RuSPE is currently under active development. The current status of key features includes:
- Initial Attestation: PSA Token for Initial Attestion can be generated.
- Crypto Service: Basic implementation for functions required by Initial Attestation.
- Isolation-Models: Similar to TF-M in the secure world the MPU can be optionally leveraged for isolated services.
Currently not implemented:
- No updatable bootloader supported yet
To build and run this project, you will need the following tools installed:
- Rust toolchain
probe-rsor ModusToolbox ProgTools OpenOCD (for flashing and debugging)- Python 3.10+ (with the
uvpackage manager) - Go (optional, required only for the test client)
First, set up the development environment using uv and invoke:
uv venv
uv sync # Install Python dependencies
source .venv/bin/activate # Activate the virtual environment
inv install # Install cargo tools
inv vscode # Generate VSCode configuration for developmentThe PSC3M5_EVK is a development board from Infineon featuring TrustZone-M. It is currently the primary supported board for this project. To deploy and test RuSPE on this board, follow the steps below:
- Provision the device with the protection context configuration:
cd boards/psc3m5_evk/edgeprotecttools
edgeprotecttools -t psoc_c3 init
edgeprotecttools -t psoc_c3 provision-device -p ns_policy/policy_oem_provisioning.json- Build and flash the tock board image:
cd boards/psc3m5_evk/secure
inv flash --nspe=tock- Run tests against a flashed device using the client tester go application:
cd tools/test-client
go run . --token-src ttyThis project draws significant inspiration from Trusted Firmware-M (TF-M). Several interfaces, data structures, and architectural concepts in RuSPE (such as the PSA IPC mechanisms and cryptography types) are modeled after or directly ported from the TF-M reference implementation. We acknowledge and thank the Arm Limited team and TF-M contributors for their work.
This is a student research project done in cooperation with Infineon Technologies AG, and is not intended for production use.
The code is provided "as is" without any warranties. This is not an officially supported Infineon product.