Skip to main content

device_agent/
lib.rs

1use ed25519_dalek::SigningKey;
2use ledger_core::{compute_payload_hash, sign_payload_hash, AuditRecord, Hash32};
3
4pub fn build_signed_record(
5    device_id: impl Into<String>,
6    sequence: u64,
7    timestamp_ms: u64,
8    payload: &[u8],
9    prev_record_hash: Hash32,
10    object_ref: impl Into<String>,
11    signing_key: &SigningKey,
12) -> AuditRecord {
13    let payload_hash = compute_payload_hash(payload);
14    let signature = sign_payload_hash(signing_key, &payload_hash);
15
16    AuditRecord {
17        device_id: device_id.into(),
18        sequence,
19        timestamp_ms,
20        payload_hash,
21        signature,
22        prev_record_hash,
23        object_ref: object_ref.into(),
24    }
25}