A Python 3 client for interacting with FIAT-based firmware
Project description
The context for FIAT is somewhat standard for physical implementation, e.g., side-channel attacks. At a (very) high level, it can be modelled as follows
+---------------------------+ +--------------------------+
| client | | target |
+===========================+ +==========================+
| | ----- req ----> | kernel layer |
| | <---- ack ----- |~~~~~~~~~~~~~~~~~~~~~~~~~~|
| | | driver layer: SPRs, GPRs |
| | |~~~~~~~~~~~~~~~~~~~~~~~~~~|
| | <-- trigger --- | board layer: UART, GPIO |
+---------------------------+ +--------------------------+
in the sense that there are two parties, a client (or user) and a target, who interact synchronously: the client transmits a req(uest) to the target, the target performs some computation, then the target transmits an ack(nowledgement) to the client, FIAT structures the target implementation into
- a kernel layer, i.e., the use-case specific functionality of interest,
- a board layer, i.e., infrastructure related to the hardware, or board said functionality is executed on,
- a driver layer, which uses the board layer to provide an interface to the kernel,
noting the state is reflected by a set of special- and general-purpose registers. The goal is to support both
- the target implementation, e.g., by providing the board and driver layers, plus a build system, meaning the developer need only configure and implement the kernel layer, and
- the client implementation, e.g., by providing a library that manages low-level interaction with a given target implementation,
while at least attempting to balance simplicity against flexibility.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file libfiat-0.1.3.tar.gz.
File metadata
- Download URL: libfiat-0.1.3.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50c7b540ad6a9f9725aedb3c24cb93d21391cb7bdfbd488b71fdebb1502b42ad
|
|
| MD5 |
14bae0bebe756b487517a03b70c67eb2
|
|
| BLAKE2b-256 |
44491095a1952884a72114865f982cba87e23682fac298057a4346445a84149a
|
File details
Details for the file libfiat-0.1.3-py3-none-any.whl.
File metadata
- Download URL: libfiat-0.1.3-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12b4bb6347e18851a1b25b85b38cb82b12bbeffcc9298e56d33628613b02672b
|
|
| MD5 |
227121b56e9da4808021762b64b7eec8
|
|
| BLAKE2b-256 |
0866a3740190b533df63a52ae77c8e2faeb332071a9177460bd9949474e5bc10
|