Skip to content

Commit 1eacfcf

Browse files
authored
Add support for measurement corpus (#39)
This will be use with sprockets and delivered as part of the installinator document
1 parent db07274 commit 1eacfcf

File tree

6 files changed

+36
-0
lines changed

6 files changed

+36
-0
lines changed

artifact/src/installinator.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,6 @@ pub enum InstallinatorArtifactKind {
6262
HostPhase2,
6363
/// The composite control plane artifact.
6464
ControlPlane,
65+
/// Measurement Corpus
66+
MeasurementCorpus,
6567
}

artifact/src/kind.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@ impl ArtifactKind {
146146
/// Derived from [`KnownArtifactKind::Trampoline`].
147147
pub const TRAMPOLINE_PHASE_2: Self =
148148
Self::from_static("trampoline_phase_2");
149+
150+
/// Measurement Corpus identifier.
151+
///
152+
/// Derived from [`KnownArtifactKind::MeasurementCorpus`].
153+
pub const MEASUREMENT_CORPUS: Self =
154+
Self::from_static("measurement_corpus");
149155
}
150156

151157
impl From<KnownArtifactKind> for ArtifactKind {
@@ -206,6 +212,8 @@ pub enum KnownArtifactKind {
206212
ControlPlane,
207213
/// Individual control plane zone
208214
Zone,
215+
/// MeasurementCorpus
216+
MeasurementCorpus,
209217

210218
// PSC Artifacts
211219
PscSp,
@@ -241,6 +249,7 @@ impl KnownArtifactKind {
241249
| KnownArtifactKind::Host
242250
| KnownArtifactKind::Trampoline
243251
| KnownArtifactKind::InstallinatorDocument
252+
| KnownArtifactKind::MeasurementCorpus
244253
| KnownArtifactKind::ControlPlane
245254
| KnownArtifactKind::Zone
246255
| KnownArtifactKind::PscSp
@@ -283,6 +292,7 @@ impl KnownArtifactKind {
283292
| KnownArtifactKind::Host
284293
| KnownArtifactKind::Trampoline
285294
| KnownArtifactKind::InstallinatorDocument
295+
| KnownArtifactKind::MeasurementCorpus
286296
| KnownArtifactKind::ControlPlane
287297
| KnownArtifactKind::Zone
288298
| KnownArtifactKind::PscSp

bin/manifests/fake-non-semver.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,8 @@ source = { kind = "fake", size = "1MiB" }
8787
name = "fake-switch-rot-bootloader"
8888
version = "non-semver-2"
8989
source = { kind = "fake", size = "1MiB" }
90+
91+
[[artifact.measurement_corpus]]
92+
name = "fake-corpus"
93+
version = "1.0.0"
94+
source = { kind = "fake", size ="1MiB" }

bin/manifests/fake.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,8 @@ name = "fake-switch-rot-bootloader"
8686
version = "1.0.0"
8787
source = { kind = "fake", size = "1MiB" }
8888

89+
[[artifact.measurement_corpus]]
90+
name = "fake-corpus"
91+
version = "1.0.0"
92+
source = { kind = "fake", size ="1MiB" }
8993

lib/src/artifact.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,13 @@ impl TempWrittenArtifact {
207207
hash: self.digest(),
208208
})
209209
}
210+
Some(KnownArtifactKind::MeasurementCorpus) => {
211+
Some(InstallinatorArtifact {
212+
name: self.name.clone(),
213+
kind: InstallinatorArtifactKind::MeasurementCorpus,
214+
hash: self.digest(),
215+
})
216+
}
210217
Some(_) | None => None,
211218
};
212219
artifact.into_iter()

lib/src/assemble/manifest.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,7 @@ impl ArtifactManifest {
428428
k,
429429
KnownArtifactKind::Zone
430430
| KnownArtifactKind::InstallinatorDocument
431+
| KnownArtifactKind::MeasurementCorpus
431432
)
432433
})
433434
.collect();
@@ -493,6 +494,13 @@ impl<'a> FakeDataAttributes<'a> {
493494
"fake manifest should not have an installinator document"
494495
);
495496
}
497+
KnownArtifactKind::MeasurementCorpus => {
498+
return make_filler_text(
499+
&self.kind.to_string(),
500+
self.version,
501+
size,
502+
);
503+
}
496504

497505
// In production, all the bootloaders and RoTs claim to have the
498506
// same board (currently: `oxide-rot-1`). Let's do that here too.

0 commit comments

Comments
 (0)