1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Hardware-attested signatures over witness chain entries.
use crateResult;
/// One attested signature over a payload, signed by a
/// [`TrustedKeyProvider`][crate::TrustedKeyProvider] inside its
/// hardware anchor.
///
/// In the Hestia chain, each entry's `signer_lct` field today is a
/// software placeholder. With Hardbound, the daemon co-locates an
/// `Attestation` per chain entry; verifiers reconstruct the same
/// payload, then validate the signature against the public key
/// embedded in the anchor's [`TrustedKeyProvider::public_key`][crate::TrustedKeyProvider::public_key].
/// Produces [`Attestation`]s over arbitrary payloads.
///
/// The split between this and [`TrustedKeyProvider`][crate::TrustedKeyProvider]
/// is deliberate: `TrustedKeyProvider` is a bare signer; an
/// `AttestationSigner` adds the platform-attestation envelope around
/// it (PCR quote for TPM, factory cert chain for YubiKey).