Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add fused device details #208

Merged
merged 31 commits into from
Jul 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
b7ce6a9
Add 720A9DEAD4392030
AlCutter Apr 8, 2024
15bdfef
add 720A9DEAD4392803
AlCutter Apr 8, 2024
d29aaa1
Add 720A9DEAD4391737
AlCutter Apr 8, 2024
2bc29be
Add 720A9DEAD4413E39
AlCutter Apr 8, 2024
0339226
Add 720A9DEAD4391E28
AlCutter Apr 8, 2024
48ca234
Add 720A9DEAD439221F
AlCutter Apr 8, 2024
f891eec
Add 720A9DEAD4391942
AlCutter Apr 8, 2024
d55604e
Add 720A9DEAD4413740
AlCutter Apr 8, 2024
f18a2ec
Add 720A9DEAD439231E
AlCutter Apr 8, 2024
fce85e4
Add 720A9DEAD439211E
AlCutter Apr 9, 2024
211808a
Add 720A9DEAD4391509
AlCutter Apr 9, 2024
146d5e9
Add 720A9DEAD4392019
AlCutter Apr 9, 2024
7e99047
Add 720A9DEAD4392806
AlCutter Apr 9, 2024
c5e93be
Add 720A9DEAD439282C
AlCutter Apr 9, 2024
4bb29c3
Add 720A9DEAD4391341
AlCutter Apr 9, 2024
9b77d69
Move into prod subdir
AlCutter Apr 9, 2024
bde8e0c
Add README
AlCutter Apr 9, 2024
3a849bc
Add CI 720A9DEAD4394411
AlCutter Apr 11, 2024
0d5153b
Add CI 720A9DEAD4392220
AlCutter Apr 11, 2024
b8a1264
Add CI 720A9DEAD4391F4A
AlCutter Apr 11, 2024
1ac166e
Add CI CA6B65D9D4992516
AlCutter Apr 11, 2024
91137b2
Add CI 720A9DEAD4390A2E
AlCutter Apr 15, 2024
e980fd8
Add prod/720A9DEAD441410E
AlCutter Jun 21, 2024
e88c865
Add CI bastion IDs
AlCutter Jul 5, 2024
47f47ae
Add prod bastion IDs
AlCutter Jul 5, 2024
2855b0e
Fix whitespace
AlCutter Jul 5, 2024
5313e01
Remove lost device
AlCutter Jul 5, 2024
e1704f8
Add go files to access and check device data
AlCutter Jul 5, 2024
8fa5445
Clarify zeroes
AlCutter Jul 8, 2024
2a5c56a
Add 720A9DEAD4392806.bastion.0
AlCutter Jul 8, 2024
469803e
Add 720A9DEAD4391509.bastion.0
AlCutter Jul 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions devices/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Device IDs

The files contained in [ci](ci) and [prod](prod) directories hold identity information about witness devices.
`ci` devices are _fused_ and receieve firmware builds at each commit, and `prod` devices are _fused_ witness devices
which receive only release tagged firmware builds.

End-users are not expected to use these files, they're just being stored here.

## Files

File names are based on the unique and immutable serial number assigned at time of manufacturing of the SoC
which lies at the core of the device.

The `.pub` file contains a public key which represents the _device_ with the corresponding serial number.

The `.witness.0` file contains a signed note, verifiable with the device's `pub` key, which commits to the
initial witness identity used by the device to cosign checkpoints.

The body of this note is formed of 4 lines:

1. A line with the text "ArmoredWitness ID attestation v1".
2. The ASCII encoded HEX representation of the device serial number whose witness public key is below.
3. The ASCII encoded decimal number, with no leading zeroes, representing the number of times the witness has rolled its identity. Currently this is always "0".
4. A note Verifier string representing the witness public key which will be used by this device.

The note is signed by the _device_ key corresponding to the serial number on line 2.

The `.bastion.0` file contains a signed note, verifiable with the device's `pub` key, which commits to the
initial bastion identity used by the device to register with bastion hosts for performing synchronous witnessing.

The body of this note is formed of 4 lines:

1. A line with the text "ArmoredWitness BastionID attestation v1".
2. The ASCII encoded HEX representation of the device serial number whose bastion ID is below.
3. The ASCII encoded decimal, with no leading zeroes, representing the number of times the witness has rolled its bastion identity. Currently this is always "0".
4. A 64 character ASCII HEX representation of the device's bastion ID.

The note is signed by the _device_ key corresponding to the serial number on line 2.
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4390330.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4390330
0
76d180a9d59ea2165ba4417d96ff26f79f938116129519ec85f2a39473c65cb9

— AW-ID-Attestation-720A9DEAD4390330 8IYt880nPv51OVCfSo2XlT3o3UeAANCAlFXjfEUbPepAzXaueb6m35eDCBwynOcBkYKd1WyjaQMlchS3iXC3XviCewg=
1 change: 1 addition & 0 deletions devices/ci/720A9DEAD4390330.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4390330+f0862df3+AUkbXcjaok7rTjKu7DTJ4iIqENz0tlJcnoCRR7fcWIZr
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4390330.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4390330
0
ArmoredWitness-black-paper+2098422d+AReXvQmqY5qnUZQCsds1Pk90VuOb9a5iDaqLxHiTsW4o

— AW-ID-Attestation-720A9DEAD4390330 8IYt879y4TIR3n6yf0o7nWBowT2S6s6psspPKJWDoU3n5bdp0+rjCjE3NFg+OWy6oj734H5n9WpSL5Sgi9WqG9Eq6QA=
1 change: 1 addition & 0 deletions devices/ci/720A9DEAD4390A2E.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4390A2E+8c757dfd+AWkrw39Z9Nff1RXLQkyEg38f/oXEWSl1Dn+FsMlfF4t2
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4390A2E.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4390A2E
0
ArmoredWitness-still-dawn+5d4e9d88+AUEEuc7Njgqec07UfvBgunkhtk2vEsqnfrJ4BOpZtz/v

— AW-ID-Attestation-720A9DEAD4390A2E jHV9/dRWW/sAgPlJYFcOZqLxH8DOixnwe/bH+Lzqw1AylNFZe0lc56otuEqodJqy4499ObVdftgHkHPi2M6YM8TR1g0=
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4391F4A.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4391F4A
0
1decd179ab5784e3f8ee689af2d3b353ca8ce4d1e25abe8b50b9376af32233b7

— AW-ID-Attestation-720A9DEAD4391F4A a66jx2CwKaUkJpvPZ6okGnErXhzDm4tUlh3c5LZXhd6xA41InD/m1w48Pi4sTvb1u3xnbsWnNQDyAhe1yofho5jrcwU=
1 change: 1 addition & 0 deletions devices/ci/720A9DEAD4391F4A.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4391F4A+6baea3c7+AcRoDdbbX9p5UJzn2wWPmTqIs7S1UYAbVHwzak3ArTR4
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4391F4A.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4391F4A
0
ArmoredWitness-icy-snowflake+257719dd+AS3Cx/VuOKOlhn8XYvYOAgyLZ9Xu6UqeT7baPZ56nDp4

— AW-ID-Attestation-720A9DEAD4391F4A a66jx5/AoAe9Q6HB/uIVdJN3cM6VWCkjDb5FHe4STkjAzW4FK5X0+lABnIzmPAXfQ93XPyaXjWnCgrqptABzKgF47gU=
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4392220.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4392220
0
66cea1a2e93c90692a697c4f36418f38d72287f65c842b883f3343bb0e27ab44

— AW-ID-Attestation-720A9DEAD4392220 T38fbYv8f3qa7KvkNvCiNLHfgPOAjHlA8E9nCwDb8ml3QLTbbXVexmH4P/tqWZCXDAEY5RuJ+gcw3NgTwDcxo+WQIwM=
1 change: 1 addition & 0 deletions devices/ci/720A9DEAD4392220.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4392220+4f7f1f6d+AS0jg+HmlH50UkwdDBGRIZCon4tUsXsFIZcG54wbdxMk
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4392220.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4392220
0
ArmoredWitness-holy-frog+e66f71d4+AfGeqx8rOiK1WIPz3bEOT7tNRHigUAFLTdvTZ9IPT8m3

— AW-ID-Attestation-720A9DEAD4392220 T38fbdWn1gtd8lW0PqanIy0r+bRDFeMaesjPbkW+fmeHDhByZsk4xtZe705FBxAtGdzM6r9U/4X7yG8L5UqbBfpaYAc=
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4394411.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4394411
0
60be39b9426e7777190bc89af9b568021c1610cb9067cac15a1c30f188042a52

— AW-ID-Attestation-720A9DEAD4394411 /IUVVay7xqucCRFt2i9ciWQzOdHleR7trqYSYWVVsLLhq6yncoCGj7zn/xGW6DBJMpebO0qRt41P8H0rxWcHP8AOCQU=
1 change: 1 addition & 0 deletions devices/ci/720A9DEAD4394411.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4394411+fc851555+AdP/46yY/OP1vdTXSz3C/SDQcixHdZBakWDbR9MdwxK6
6 changes: 6 additions & 0 deletions devices/ci/720A9DEAD4394411.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4394411
0
ArmoredWitness-morning-surf+82bc63bd+AUylOFW/NW4Y3ooygtklaXswvD8NQ6ET8guBTdCcBwt3

— AW-ID-Attestation-720A9DEAD4394411 /IUVVd4SW1ydG0y2NstaSjTMmmzA+ozb7D7wJ078adm4Aq1+qOYNf5xJiNyoVMyojGAPVTLt6EO+tH9AhlSybTqmZw4=
6 changes: 6 additions & 0 deletions devices/ci/CA6B65D9D4992516.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
CA6B65D9D4992516
0
ea8a7b22bb1a6420464bab7a01f768f120cf237bb399b46d0973109059175264

— AW-ID-Attestation-CA6B65D9D4992516 frjTaSoZusCJcy7VCQINdC9TGtMfpuryfMe/7bpqUMrkBy6I9IF1pv7xiNvAHwKoMjtDxI2PHvU4+aLjCX/ER8kgBAo=
1 change: 1 addition & 0 deletions devices/ci/CA6B65D9D4992516.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-CA6B65D9D4992516+7eb8d369+ATWcbyKw4qQ+8s7WPwdaDpSB3RlDFw9Ja+d48z5Qsjx2
6 changes: 6 additions & 0 deletions devices/ci/CA6B65D9D4992516.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
CA6B65D9D4992516
0
ArmoredWitness-wispy-snow+834b82b1+ASho7B13t7PhXoLr43ppVFCHEpTSajIybNRYMSi8XR1Q

— AW-ID-Attestation-CA6B65D9D4992516 frjTabuAin+geejJ3AShNmeyaivFrv7J8hL+eNqJkp2YgZGQ5jZStLLTWUl/orretpYtWg5pgcgzJF2lLRIqR/bpDAg=
132 changes: 132 additions & 0 deletions devices/devices.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
package devices

import (
"embed"
"errors"
"fmt"
"io/fs"
"log"
"strings"

"golang.org/x/mod/sumdb/note"
)

const (
AttestWitnessID = "ArmoredWitness ID attestation v1"
AttestBastionID = "ArmoredWitness BastionID attestation v1"
)

var (
//go:embed ci/*
ci embed.FS
//go:embed prod/*
prod embed.FS

CI map[string]Device
Prod map[string]Device
)

func init() {
var err error
if CI, err = parseFS(ci); err != nil {
panic(err)
}
if Prod, err = parseFS(prod); err != nil {
panic(err)
}
}

// Device represents an ArmoredWitness device and its various attested identities.
type Device struct {
ID string
BastionID string
WitnessPubkey string
}

type entry struct {
pubKey string
attestations [][]byte
}

func parseFS(f embed.FS) (map[string]Device, error) {
entries := make(map[string]entry)
errs := []error{}
err := fs.WalkDir(f, ".", func(path string, d fs.DirEntry, _ error) error {
if d.IsDir() {
return nil
}

n := d.Name()
parts := strings.SplitN(n, ".", 2)
if len(parts) != 2 {
errs = append(errs, fmt.Errorf("badly named file %q", n))
return nil
}
body, err := f.ReadFile(path)
if err != nil {
errs = append(errs, fmt.Errorf("failed to read %q: %v", n, err))
return nil
}
e := entries[parts[0]]
if parts[1] == "pub" {
e.pubKey = string(body)

} else {
e.attestations = append(e.attestations, body)
}

entries[parts[0]] = e
return nil
})
if err != nil {
return nil, err
}

r := make(map[string]Device)
for _, v := range entries {
d, err := new(v.pubKey, v.attestations)
if err != nil {
errs = append(errs, err)
continue
}
r[d.ID] = *d
}
if len(errs) > 0 {
return nil, errors.Join(errs...)
}
return r, nil
}

func new(attestPub string, attestations [][]byte) (*Device, error) {
v, err := note.NewVerifier(attestPub)
if err != nil {
return nil, fmt.Errorf("%s: %v", attestPub, err)
}

d := &Device{ID: v.Name()}

for _, a := range attestations {
n, err := note.Open(a, note.VerifierList(v))
if err != nil {
return nil, fmt.Errorf("couldn't open %q: %v", a, err)

}
lines := strings.Split(n.Text, "\n")
switch lines[0] {
case AttestWitnessID:
if len(lines) < 4 {
return nil, fmt.Errorf("%s: invalid ID attestation", v.Name())
}
d.WitnessPubkey = lines[3]
case AttestBastionID:
if len(lines) < 4 {
log.Printf("%q", n.Text)
return nil, fmt.Errorf("%s: invalid bastion attestation (%d)", v.Name(), len(lines))
}
d.BastionID = lines[3]
default:
continue
}
}
return d, nil
}
32 changes: 32 additions & 0 deletions devices/devices_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package devices

import (
"testing"
)

func checkDevices(t *testing.T, d map[string]Device) {
t.Helper()
for k, v := range d {
t.Logf("Checking %v", k)
if v.ID == "" {
t.Errorf("%s: Empty ID", v.ID)
}
if k != v.ID {
t.Errorf("%s: ID mismatch: %v", k, v.ID)
}
if v.BastionID == "" {
t.Logf("%s: Warning, no BastionID present", k)
}
if v.WitnessPubkey == "" {
t.Errorf("%s: no witness pubkey present", k)
}
}
}

func TestCIFiles(t *testing.T) {
checkDevices(t, CI)
}

func TestProdFiles(t *testing.T) {
checkDevices(t, Prod)
}
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391341.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4391341
0
c664d70dc8cd2cbe40469224c66dd705d6eb67615c406b61a2579966127d0c7e

— AW-ID-Attestation-720A9DEAD4391341 hOrmIu4XcnE6jIUw+L+f2mu/yUQzfUbGhPSCo8dZBD1B5tUddAAXRLejdmSVZNVBFTlwz0jVwnIZ4rHV+VVqKsWqoAg=
1 change: 1 addition & 0 deletions devices/prod/720A9DEAD4391341.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4391341+84eae622+AVLSeDbG2T7RfgR2vHHC6aq4XhOWHY/hBkZUQWm+tIFK
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391341.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4391341
0
ArmoredWitness-weathered-rain+ea3d386d+AWLblKp5JuiyrgRh6ev2nNJ5XAd+sc/mM2D2HW/b4d5S

— AW-ID-Attestation-720A9DEAD4391341 hOrmIm8IGhDrnCh4lLaavKD4x95IaDVauhIlF5ccDSXJvQAbVd2j1oZLoYrz2OmqGCgwMEStZUUlLjKzWrighEFcSgk=
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391509.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4391509
0
395c4b740cfbb722a66cbb1790bb9e70100e35518c8101b3dacf579765e4d220

— AW-ID-Attestation-720A9DEAD4391509 ALzFbKBPm1aHu2HqXzAnhLJH/01xHZn3J+TuJ6ZvMpvDqCK5ARYP2AgKSOeCjNY6YqjIkccwdE/IcvENvNL6qoVMAA4=
1 change: 1 addition & 0 deletions devices/prod/720A9DEAD4391509.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4391509+00bcc56c+AZyGm+7xCplZpYIqJZQACgEazyMhCkIF6PfAG8hrFmiB
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391509.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4391509
0
ArmoredWitness-wispy-wood+90626287+AUVvZZ4LDvpljjooleJ3WnxnVK4J1YQiQbtgPWSVFwaP

— AW-ID-Attestation-720A9DEAD4391509 ALzFbOpnWaaHImNvFUZuEiQwFWa9tJFcyqtFTsmB2zLniT3onPs43XWUTJidTq8DS7qqTmfWk2IHZTTD6sJ2WbGmHwU=
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391737.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4391737
0
2867895f07dfc47299cf7d2ced88ed5230a822a7f62d54f8402d6daf11520131

— AW-ID-Attestation-720A9DEAD4391737 LwCAcXIiJinSPvqCOqODTY6L1w9krYI0MHgzkt2ccTbeYZ1bFUVj8Rg5ZDNaKAv3DqzcC64jrB3pqswNQAV/PsSs0wM=
1 change: 1 addition & 0 deletions devices/prod/720A9DEAD4391737.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4391737+2f008071+ARa8g49Anj+op8IBReuNLXJtkjGoB2WzOb5ytUaOEheH
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391737.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4391737
0
ArmoredWitness-small-breeze+7b3ada3a+AQAWYpUjfGGPQiWOgt6sLWap0P9rVOe+Ofu2uNZbO4FD

— AW-ID-Attestation-720A9DEAD4391737 LwCAcSPENAsE+KSQpeGr9Z/N3vWgeE5h7LWQLy0BDWQJj2LHZOin8Tz79a3fymhHFXPjXoDfJxZrmbbs8xARmUGm1w4=
1 change: 1 addition & 0 deletions devices/prod/720A9DEAD4391942.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4391942+224191fa+AaO1Uam79GmXzbYKTRfUm+MYfh8JL0DOCX/qdL8T4cpu
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391942.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4391942
0
ArmoredWitness-quiet-wood+6a554a5d+AZtxeZvnMbFf6bVPN81vIvlJnT4zCdq8tYi/guI0hEkT

— AW-ID-Attestation-720A9DEAD4391942 IkGR+kxNsS+pl1UOHgYRw/ExADwlfWwDktcH6FdN0pgamL47quEZSXQvCrs1EUNBQatittsOwCZ5l0ELztP203OfKAA=
1 change: 1 addition & 0 deletions devices/prod/720A9DEAD4391E28.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4391E28+91734bf6+AdmR700zfCueXABsCLLW7Ftt4QzMdvzd1CISVOJRr9of
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4391E28.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4391E28
0
ArmoredWitness-morning-darkness+2a654a97+AXugA2VGdDmLYt1wqzaaP3UKSGcDVNZveRJYJ1FKC5+9

— AW-ID-Attestation-720A9DEAD4391E28 kXNL9t/eFmMpUHOm3Ss8KWupXmKuR+unKL3KDlNqpN7H1HMM2yKSZjbexmsCk11NVcYLGdytNT3F/C1IhGQVZzsNOQo=
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4392019.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4392019
0
92c1c586ab85db6af4c27fc714c49a080366eb5e4d7f5b696eadb7e845e78362

— AW-ID-Attestation-720A9DEAD4392019 QxDCB3NG4KSA44JoKeBoIgtD0AfETeV8x/2hnwwjMkfmdHpuuBmAzfpsqAKdPRC1cH6QfIm30zoOa8Q4QNk4Om2zcQo=
1 change: 1 addition & 0 deletions devices/prod/720A9DEAD4392019.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4392019+4310c207+AbtF3hnI4vMN0MhN5bi4NsNdtEYEwMZP8a2kTbCxatub
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4392019.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4392019
0
ArmoredWitness-shy-wind+e76ed9ec+ARmL7SaHvPYPwkbq41g/KpdkKH7OZaoaqfK2sEoWKL4d

— AW-ID-Attestation-720A9DEAD4392019 QxDCB7btq8RNb99Hce2t8DlapELVXu1Iv20UZVItsCu/PY+T9WOhr+H3UlchBjs8JmFJGTWJna/fw04ZnPTEz6bc0QA=
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4392030.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD4392030
0
b6d4eee9d6165e01a756bd4590ab29bc34265e2e83b580f54a19f4a458778cbc

— AW-ID-Attestation-720A9DEAD4392030 8vMhNQ/6Xq8mDEGmtmSC0LyHWXfktbpmuaKnDnBrT+LuuFuK9YMp3eEDCyFCVv1Kg/BHxsr0voUAFSFtOHPSeo2QHwo=
1 change: 1 addition & 0 deletions devices/prod/720A9DEAD4392030.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AW-ID-Attestation-720A9DEAD4392030+f2f32135+AWxEblgSRKUgSPXC8NQn68+v9UxA6sfqX+MwKqSwMLps
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD4392030.witness.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness ID attestation v1
720A9DEAD4392030
0
ArmoredWitness-hidden-river+45a41ba7+AdrpNMfMH0W6iYo9/hJl1JKmxYQF3ewUP8FvhKD1iOOl

— AW-ID-Attestation-720A9DEAD4392030 8vMhNUA586o1pZ7ZqalEGIGp0F/s3HjcRmsavwvFjdPVGviZmNCxvuNPdP/h2orTzUwAT18fh5wX6qRivMAY7pztOwk=
6 changes: 6 additions & 0 deletions devices/prod/720A9DEAD439211E.bastion.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ArmoredWitness BastionID attestation v1
720A9DEAD439211E
0
9e18b190f219d9a9d3032d8b00807aa0c014948fb324d543057d82afa00ad15c

— AW-ID-Attestation-720A9DEAD439211E fojp1OboK4pY0l8OgWao2l/onkwW26yhW1j/PxCQJT+jlXvJY44TEvgKtbRg/kQxJwD9h85v53HshkEB80JCZVi5jwk=
Loading
Loading