Skip to main content

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

  1. a kernel layer, i.e., the use-case specific functionality of interest,
  2. a board layer, i.e., infrastructure related to the hardware, or board said functionality is executed on,
  3. 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

libfiat-0.1.3.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

libfiat-0.1.3-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

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

Hashes for libfiat-0.1.3.tar.gz
Algorithm Hash digest
SHA256 50c7b540ad6a9f9725aedb3c24cb93d21391cb7bdfbd488b71fdebb1502b42ad
MD5 14bae0bebe756b487517a03b70c67eb2
BLAKE2b-256 44491095a1952884a72114865f982cba87e23682fac298057a4346445a84149a

See more details on using hashes here.

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

Hashes for libfiat-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 12b4bb6347e18851a1b25b85b38cb82b12bbeffcc9298e56d33628613b02672b
MD5 227121b56e9da4808021762b64b7eec8
BLAKE2b-256 0866a3740190b533df63a52ae77c8e2faeb332071a9177460bd9949474e5bc10

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page