61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
namespace StellaOps.Scanner.Analyzers.OS.Windows.WinSxS;
|
|
|
|
/// <summary>
|
|
/// Represents metadata extracted from a Windows Side-by-Side (WinSxS) assembly manifest.
|
|
/// </summary>
|
|
internal sealed record WinSxSAssemblyMetadata(
|
|
/// <summary>Assembly name (e.g., "Microsoft.Windows.Common-Controls").</summary>
|
|
string Name,
|
|
|
|
/// <summary>Assembly version (e.g., "6.0.0.0").</summary>
|
|
string Version,
|
|
|
|
/// <summary>Processor architecture (e.g., "x86", "amd64", "arm64", "msil", "wow64").</summary>
|
|
string ProcessorArchitecture,
|
|
|
|
/// <summary>Public key token (e.g., "6595b64144ccf1df").</summary>
|
|
string? PublicKeyToken,
|
|
|
|
/// <summary>Language/culture (e.g., "en-us", "*", or empty).</summary>
|
|
string? Language,
|
|
|
|
/// <summary>Assembly type (e.g., "win32", "win32-policy").</summary>
|
|
string? Type,
|
|
|
|
/// <summary>Version scope (e.g., "nonSxS" for non-side-by-side assemblies).</summary>
|
|
string? VersionScope,
|
|
|
|
/// <summary>Manifest file path.</summary>
|
|
string ManifestPath,
|
|
|
|
/// <summary>Associated catalog (.cat) file path if found.</summary>
|
|
string? CatalogPath,
|
|
|
|
/// <summary>Catalog signature thumbprint if available.</summary>
|
|
string? CatalogThumbprint,
|
|
|
|
/// <summary>KB reference from patch manifest if available.</summary>
|
|
string? KbReference,
|
|
|
|
/// <summary>Files declared in the assembly manifest.</summary>
|
|
IReadOnlyList<WinSxSFileEntry> Files);
|
|
|
|
/// <summary>
|
|
/// Represents a file entry in a WinSxS assembly manifest.
|
|
/// </summary>
|
|
internal sealed record WinSxSFileEntry(
|
|
/// <summary>File name.</summary>
|
|
string Name,
|
|
|
|
/// <summary>File hash algorithm (e.g., "SHA256").</summary>
|
|
string? HashAlgorithm,
|
|
|
|
/// <summary>File hash value.</summary>
|
|
string? Hash,
|
|
|
|
/// <summary>File size in bytes.</summary>
|
|
long? Size,
|
|
|
|
/// <summary>Destination path within the assembly.</summary>
|
|
string? DestinationPath);
|