diff options
author | Vova Kryachko <v.kryachko@gmail.com> | 2024-11-19T22·56-0500 |
---|---|---|
committer | Vladimir Kryachko <v.kryachko@gmail.com> | 2024-11-24T20·24+0000 |
commit | 8ef9ba82a8b15312b4ddd16c030124ec1fd685a4 (patch) | |
tree | c761c21bf4b232939d8af7e680ae9a8a62dcd3b6 /tvix/nar-bridge | |
parent | ae76eaa76133c089ad9b0779b4b3bd61a70c0d23 (diff) |
feat(tvix/store): Add CAHash validation r/8963
Validation is done inside ingest_nar_and_hash and is used by Fetch::NAR and the nar-bridge. Change-Id: I7e2be4cc13d2447035f1e5a444f44b62339988bf Reviewed-on: https://cl.tvl.fyi/c/depot/+/12836 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
Diffstat (limited to 'tvix/nar-bridge')
-rw-r--r-- | tvix/nar-bridge/src/nar.rs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/tvix/nar-bridge/src/nar.rs b/tvix/nar-bridge/src/nar.rs index f9b50fd6bc42..c351c9e4bdda 100644 --- a/tvix/nar-bridge/src/nar.rs +++ b/tvix/nar-bridge/src/nar.rs @@ -173,14 +173,18 @@ pub async fn put( })); // ingest the NAR - let (root_node, nar_hash_actual, nar_size) = - ingest_nar_and_hash(blob_service.clone(), directory_service.clone(), &mut r) - .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, e)) - .map_err(|e| { - warn!(err=%e, "failed to ingest nar"); - StatusCode::INTERNAL_SERVER_ERROR - })?; + let (root_node, nar_hash_actual, nar_size) = ingest_nar_and_hash( + blob_service.clone(), + directory_service.clone(), + &mut r, + &None, + ) + .await + .map_err(io::Error::other) + .map_err(|e| { + warn!(err=%e, "failed to ingest nar"); + StatusCode::INTERNAL_SERVER_ERROR + })?; let s = Span::current(); s.record("nar_hash.expected", nixbase32::encode(&nar_hash_expected)); |