Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions artifact/src/installinator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,6 @@ pub enum InstallinatorArtifactKind {
HostPhase2,
/// The composite control plane artifact.
ControlPlane,
/// Measurement Corpus
MeasurementCorpus,
}
10 changes: 10 additions & 0 deletions artifact/src/kind.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,12 @@ impl ArtifactKind {
/// Derived from [`KnownArtifactKind::Trampoline`].
pub const TRAMPOLINE_PHASE_2: Self =
Self::from_static("trampoline_phase_2");

/// Measurement Corpus identifier.
///
/// Derived from [`KnownArtifactKind::MeasurementCorpus`].
pub const MEASUREMENT_CORPUS: Self =
Self::from_static("measurement_corpus");
}

impl From<KnownArtifactKind> for ArtifactKind {
Expand Down Expand Up @@ -206,6 +212,8 @@ pub enum KnownArtifactKind {
ControlPlane,
/// Individual control plane zone
Zone,
/// MeasurementCorpus
MeasurementCorpus,

// PSC Artifacts
PscSp,
Expand Down Expand Up @@ -241,6 +249,7 @@ impl KnownArtifactKind {
| KnownArtifactKind::Host
| KnownArtifactKind::Trampoline
| KnownArtifactKind::InstallinatorDocument
| KnownArtifactKind::MeasurementCorpus
| KnownArtifactKind::ControlPlane
| KnownArtifactKind::Zone
| KnownArtifactKind::PscSp
Expand Down Expand Up @@ -283,6 +292,7 @@ impl KnownArtifactKind {
| KnownArtifactKind::Host
| KnownArtifactKind::Trampoline
| KnownArtifactKind::InstallinatorDocument
| KnownArtifactKind::MeasurementCorpus
| KnownArtifactKind::ControlPlane
| KnownArtifactKind::Zone
| KnownArtifactKind::PscSp
Expand Down
5 changes: 5 additions & 0 deletions bin/manifests/fake-non-semver.toml
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,8 @@ source = { kind = "fake", size = "1MiB" }
name = "fake-switch-rot-bootloader"
version = "non-semver-2"
source = { kind = "fake", size = "1MiB" }

[[artifact.measurement_corpus]]
name = "fake-corpus"
version = "1.0.0"
source = { kind = "fake", size ="1MiB" }
4 changes: 4 additions & 0 deletions bin/manifests/fake.toml
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,8 @@ name = "fake-switch-rot-bootloader"
version = "1.0.0"
source = { kind = "fake", size = "1MiB" }

[[artifact.measurement_corpus]]
name = "fake-corpus"
version = "1.0.0"
source = { kind = "fake", size ="1MiB" }

7 changes: 7 additions & 0 deletions lib/src/artifact.rs
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,13 @@ impl TempWrittenArtifact {
hash: self.digest(),
})
}
Some(KnownArtifactKind::MeasurementCorpus) => {
Some(InstallinatorArtifact {
name: self.name.clone(),
kind: InstallinatorArtifactKind::MeasurementCorpus,
hash: self.digest(),
})
}
Some(_) | None => None,
};
artifact.into_iter()
Expand Down
8 changes: 8 additions & 0 deletions lib/src/assemble/manifest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,7 @@ impl ArtifactManifest {
k,
KnownArtifactKind::Zone
| KnownArtifactKind::InstallinatorDocument
| KnownArtifactKind::MeasurementCorpus
)
})
.collect();
Expand Down Expand Up @@ -493,6 +494,13 @@ impl<'a> FakeDataAttributes<'a> {
"fake manifest should not have an installinator document"
);
}
KnownArtifactKind::MeasurementCorpus => {
return make_filler_text(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you plan to add some structure here in the future, similar to say the Hubris artifacts?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I probably should. We already do this for sprockets testing (we use https://github.com/oxidecomputer/dice-util/tree/main/attest-mock)

&self.kind.to_string(),
self.version,
size,
);
}

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