Skip to content

Commit

Permalink
refactor: split functions
Browse files Browse the repository at this point in the history
  • Loading branch information
suzuki-shunsuke committed Sep 22, 2024
1 parent 574bdae commit 9f86356
Showing 1 changed file with 37 additions and 28 deletions.
65 changes: 37 additions & 28 deletions pkg/installpackage/checksum.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,39 +56,48 @@ func (is *Installer) dlAndExtractChecksum(ctx context.Context, logE *logrus.Entr
}
}

if ms := pkg.PackageInfo.Checksum.GetMinisign(); ms.GetEnabled() {
if tempFilePath == "" {
f, err := afero.TempFile(is.fs, "", "")
if err != nil {
return "", fmt.Errorf("create a temporary file: %w", err)
}
tempFilePath = f.Name()
defer f.Close()
defer is.fs.Remove(tempFilePath) //nolint:errcheck
if _, err := f.Write(b); err != nil {
return "", fmt.Errorf("write a checksum to a temporary file: %w", err)
}
}
art := pkg.TemplateArtifact(is.runtime, assetName)
logE.Info("verifing a checksum file with Minisign")
if err := is.installMinisign(ctx, logE); err != nil {
return "", err
}
if err := is.minisignVerifier.Verify(ctx, logE, is.runtime, ms, art, &download.File{
RepoOwner: pkg.PackageInfo.RepoOwner,
RepoName: pkg.PackageInfo.RepoName,
Version: pkg.Package.Version,
}, &minisign.ParamVerify{
ArtifactPath: tempFilePath,
PublicKey: ms.PublicKey,
}); err != nil {
return "", fmt.Errorf("verify a checksum file with Minisign: %w", err)
}
if err := is.verifyChecksumWithMinisign(ctx, logE, pkg, assetName, tempFilePath, b); err != nil {
return "", err
}

return checksum.GetChecksum(logE, assetName, string(b), pkg.PackageInfo.Checksum) //nolint:wrapcheck
}

func (is *Installer) verifyChecksumWithMinisign(ctx context.Context, logE *logrus.Entry, pkg *config.Package, assetName, tempFilePath string, b []byte) error {
ms := pkg.PackageInfo.Checksum.GetMinisign()
if !ms.GetEnabled() {
return nil
}
if tempFilePath == "" {
f, err := afero.TempFile(is.fs, "", "")
if err != nil {
return fmt.Errorf("create a temporary file: %w", err)
}
tempFilePath = f.Name()
defer f.Close()
defer is.fs.Remove(tempFilePath) //nolint:errcheck
if _, err := f.Write(b); err != nil {
return fmt.Errorf("write a checksum to a temporary file: %w", err)
}
}
art := pkg.TemplateArtifact(is.runtime, assetName)
logE.Info("verifing a checksum file with Minisign")
if err := is.installMinisign(ctx, logE); err != nil {
return err
}
if err := is.minisignVerifier.Verify(ctx, logE, is.runtime, ms, art, &download.File{
RepoOwner: pkg.PackageInfo.RepoOwner,
RepoName: pkg.PackageInfo.RepoName,
Version: pkg.Package.Version,
}, &minisign.ParamVerify{
ArtifactPath: tempFilePath,
PublicKey: ms.PublicKey,
}); err != nil {
return fmt.Errorf("verify a checksum file with Minisign: %w", err)
}
return nil
}

type ParamVerifyChecksum struct {
ChecksumID string
Checksum *checksum.Checksum
Expand Down

0 comments on commit 9f86356

Please sign in to comment.