diff --git a/syft/distro/type.go b/syft/distro/type.go index 0dec34d35..607995ede 100644 --- a/syft/distro/type.go +++ b/syft/distro/type.go @@ -18,6 +18,7 @@ const ( ArchLinux Type = "archlinux" OpenSuseLeap Type = "opensuseleap" Photon Type = "photon" + Windows Type = "windows" ) // All contains all Linux distribution options @@ -34,6 +35,7 @@ var All = []Type{ ArchLinux, OpenSuseLeap, Photon, + Windows, } // IDMapping connects a distro ID like "ubuntu" to a Distro type @@ -50,6 +52,7 @@ var IDMapping = map[string]Type{ "arch": ArchLinux, "opensuse-leap": OpenSuseLeap, "photon": Photon, + "windows": Windows, } // String returns the string representation of the given Linux distribution. diff --git a/syft/pkg/kb_package_metadata.go b/syft/pkg/kb_package_metadata.go new file mode 100644 index 000000000..e243712a6 --- /dev/null +++ b/syft/pkg/kb_package_metadata.go @@ -0,0 +1,11 @@ +package pkg + +// KbPackageMetadata is slightly odd in how it is expected to map onto data. +// This is critical to grasp because there is no MSRC cataloger. The `ProductID` +// field is expected to be the MSRC Product ID, for example: +// "Windows 10 Version 1703 for 32-bit Systems". +// `Kb` is expected to be the actual KB number, for example "5001028" +type KbPackageMetadata struct { + ProductID string `toml:"product_id" json:"product_id"` + Kb string `toml:"kb" json:"kb"` +} diff --git a/syft/pkg/metadata.go b/syft/pkg/metadata.go index 1c8268907..884cb06ae 100644 --- a/syft/pkg/metadata.go +++ b/syft/pkg/metadata.go @@ -14,4 +14,5 @@ const ( RpmdbMetadataType MetadataType = "RpmdbMetadata" PythonPackageMetadataType MetadataType = "PythonPackageMetadata" RustCargoPackageMetadataType MetadataType = "RustCargoPackageMetadata" + KbPackageMetadataType MetadataType = "KbPackageMetadata" ) diff --git a/syft/pkg/type.go b/syft/pkg/type.go index 8d193b12a..96c364951 100644 --- a/syft/pkg/type.go +++ b/syft/pkg/type.go @@ -18,6 +18,7 @@ const ( JenkinsPluginPkg Type = "jenkins-plugin" GoModulePkg Type = "go-module" RustPkg Type = "rust-crate" + KbPkg Type = "msrc-kb" ) // AllPkgs represents all supported package types @@ -32,6 +33,7 @@ var AllPkgs = []Type{ JenkinsPluginPkg, GoModulePkg, RustPkg, + KbPkg, } // PackageURLType returns the PURL package type for the current package.