aboutsummaryrefslogtreecommitdiff
path: root/docs/feedback.md
blob: d79d57fc9dabe3df993734930534fbc48bfe9439 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Feedback

This document describes the integrity-protected file format that a trusted
system uses when making legitimately issued certificates available to a monitor.

## Format

    NAME MAC
    <CERTIFICATE CHAIN>
    ...
    <CERTIFICATE CHAIN>

`NAME`: identifier that the monitor uses to locate the shared secret.

`MAC`: HMAC with SHA256 as the hash function, computed for line two and forward.
The shared HMAC key is derived as follows by the trusted system and the monitor:

    hkdf := hkdf.New(sha256.New, SECRET, []byte("silentct"), NAME)
    key := make([]byte, 16)
    io.ReadFull(hkdf, key)

`<CERTIFICATE CHAIN>`: certificate chain in PEM format that the trusted system
considers legitimate.  Can be repeated, then delimited by "silentct:separator".