Skip to content

Commit c428098

Browse files
committed
Add support for measurement corpus
This will be use with sprockets and delivered as part of the installinator document
1 parent 5783271 commit c428098

File tree

6 files changed

+29
-0
lines changed

6 files changed

+29
-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: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,8 @@ pub enum KnownArtifactKind {
193193
ControlPlane,
194194
/// Individual control plane zone
195195
Zone,
196+
/// MeasurementCorpus
197+
MeasurementCorpus,
196198

197199
// PSC Artifacts
198200
PscSp,
@@ -228,6 +230,7 @@ impl KnownArtifactKind {
228230
| KnownArtifactKind::Host
229231
| KnownArtifactKind::Trampoline
230232
| KnownArtifactKind::InstallinatorDocument
233+
| KnownArtifactKind::MeasurementCorpus
231234
| KnownArtifactKind::ControlPlane
232235
| KnownArtifactKind::Zone
233236
| KnownArtifactKind::PscSp

bin/manifests/fake-non-semver.toml

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

bin/manifests/fake.toml

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

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

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
@@ -394,6 +394,7 @@ impl ArtifactManifest {
394394
k,
395395
KnownArtifactKind::Zone
396396
| KnownArtifactKind::InstallinatorDocument
397+
| KnownArtifactKind::MeasurementCorpus
397398
)
398399
})
399400
.collect();
@@ -443,6 +444,13 @@ impl<'a> FakeDataAttributes<'a> {
443444
"fake manifest should not have an installinator document"
444445
);
445446
}
447+
KnownArtifactKind::MeasurementCorpus => {
448+
return make_filler_text(
449+
&self.kind.to_string(),
450+
self.version,
451+
size,
452+
);
453+
}
446454

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

0 commit comments

Comments
 (0)