feat(tvix/store/protos): add CA field

This adds support to represent the `CA` field found in some .narinfo
files. As `deriver`, it's also a subfield of the `narinfo` field.

Extending nix-compat with a more accessible data structure that can
take care of formatting, as well as writing validation functions in Rust
+ Golang, and integrating it into nar-bridge is something for a followup
CL.

Change-Id: I71e9c30957bcd03051a491aa54d7baac25b6dd2d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9795
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Connor Brewster <cbrewster@hey.com>
This commit is contained in:
Florian Klink 2023-10-19 13:50:05 +01:00 committed by clbot
parent 9118dc8a50
commit 833957b374
4 changed files with 67 additions and 3 deletions

View file

@ -2,7 +2,7 @@ use lazy_static::lazy_static;
pub use tvix_castore::fixtures::*;
use tvix_castore::proto as castorepb;
use crate::proto::{NarInfo, PathInfo};
use crate::proto::{nar_info::ca, nar_info::Ca, NarInfo, PathInfo};
pub const DUMMY_NAME: &str = "00000000000000000000000000000000-dummy";
@ -121,6 +121,7 @@ lazy_static! {
signatures: vec![],
reference_names: vec![DUMMY_NAME.to_string()],
deriver: None,
ca: Some(Ca { r#type: ca::Hash::NarSha256.into(), digest: DUMMY_DIGEST.clone().into() })
}),
..PATH_INFO_WITHOUT_NARINFO.clone()
};