/
githubmirror
/
trivy
Обзор
Документация
Войти
/
githubmirror
/
trivy
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
pkg/fanal/analyzer/executable/executable.go
53 строки
1 KB
Teppei Fukuda
feat(report): add fingerprint generation for vulnerabilities (#9794)
17 ноя 2025, 10:23
Не верифицирован
17 ноя 2025, 10:23
cbad9ca
Код
Авторство
О чём код?
package executable import ( "context" "os" "golang.org/x/xerrors" "github.com/aquasecurity/trivy/pkg/digest" "github.com/aquasecurity/trivy/pkg/fanal/analyzer" "github.com/aquasecurity/trivy/pkg/fanal/utils" ) func init() { analyzer.RegisterAnalyzer(&executableAnalyzer{}) } const version = 1 // executableAnalyzer calculates SHA-256 for each binary not managed by package managers (called unpackaged binaries) // so that it can search for SBOM attestation in post-handler. type executableAnalyzer struct{} func (a executableAnalyzer) Analyze(_ context.Context, input analyzer.AnalysisInput) (*analyzer.AnalysisResult, error) { // Skip non-binaries isBinary, err := utils.IsBinary(input.Content, input.Info.Size()) if !isBinary || err != nil { return nil, nil } dig, err := digest.CalcSHA256FromReader(input.Content) if err != nil { return nil, xerrors.Errorf("sha256 error: %w", err) } return &analyzer.AnalysisResult{ Digests: map[string]string{ input.FilePath: dig.String(), }, }, nil } func (a executableAnalyzer) Required(_ string, fileInfo os.FileInfo) bool { return utils.IsExecutable(fileInfo) } func (a executableAnalyzer) Type() analyzer.Type { return analyzer.TypeExecutable } func (a executableAnalyzer) Version() int { return version }