mirror of
https://github.com/NixOS/nix
synced 2025-07-06 21:41:48 +02:00
Handle base-16 NarHash fields in signed .narinfo files
This commit is contained in:
parent
a64da5915d
commit
94378910fb
3 changed files with 17 additions and 3 deletions
|
@ -395,12 +395,15 @@ sub deleteOldManifests {
|
|||
|
||||
|
||||
# Return a fingerprint of a store path to be used in binary cache
|
||||
# signatures. It contains the store path, the SHA-256 hash of the
|
||||
# contents of the path, and the references.
|
||||
# signatures. It contains the store path, the base-32 SHA-256 hash of
|
||||
# the contents of the path, and the references.
|
||||
sub fingerprintPath {
|
||||
my ($storePath, $narHash, $narSize, $references) = @_;
|
||||
die if substr($storePath, 0, length($Nix::Config::storeDir)) ne $Nix::Config::storeDir;
|
||||
die if substr($narHash, 0, 7) ne "sha256:";
|
||||
# Convert hash from base-16 to base-32, if necessary.
|
||||
$narHash = "sha256:" . convertHash("sha256", substr($narHash, 7), 1)
|
||||
if length($narHash) == 71;
|
||||
die if length($narHash) != 59;
|
||||
foreach my $ref (@{$references}) {
|
||||
die if substr($ref, 0, length($Nix::Config::storeDir)) ne $Nix::Config::storeDir;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue