Skip to main content

Module setup

Module setup 

Source
Expand description

Starting the signature service: keys in, then go.

ubft_new derives its key pair at init with an inline Ed25519 call and reads every replica’s public key from message_ptr (8 words per replica). rhdl_ubft hands both to its signature service instead. Setup plays the service’s host over AXI4-Lite:

  1. the private key (sk0..sk3, 32 bytes) as the signer’s seed,
  2. replica s’s public key into trusted key slot s, for every s < node_num, read from message_ptr with one burst per replica,
  3. the key mask (node_num slots), unlimited sign and verify counts,
  4. ap_start.

The service then expands the seed and loads the keys (about 105,000 cycles each for Ed25519) and opens its streams. The protocol can start at once: its first request waits for the stream to open.

The register offsets are a ServiceMap, so one sequencer serves the Ed25519 service and DSig’s.

Structs§

ServiceMap
Where a signature service keeps its session arguments.
Setup
Service setup sequencer (see the module docs).
SetupIn
Inputs of Setup.
SetupOut
Outputs of Setup.
SetupState
The sequencer’s registers.

Constants§

ED25519_MAP
The Ed25519 uBFT service’s map (rhdl_ed25519_scalable_core::ubft).

Functions§

setup_kernel
The sequencer’s logic.