Class Manifest
Case manifest describing a forensic image: ordered segments and an optional list of credentials to try against encrypted volumes. Loaded from a JSON file via Load(string).
Inherited Members
Namespace: FexViewer.Models
Assembly: FexViewer.dll
Syntax
public class Manifest
Remarks
JSON shape (all fields except manifest_version are optional):
{
"manifest_version": 1,
"segments": ["disk.E01", "disk.E02"],
"passwords": ["literal-password", "C:\\path\\to\\keyfile.bek"]
}
Relative paths inside the manifest are resolved relative to the manifest file's own directory at load time.
Properties
ManifestVersion
Schema version. Currently must be 1; Load(string) rejects other values.
Declaration
[JsonPropertyName("manifest_version")]
public int ManifestVersion { get; set; }
Property Value
| Type | Description |
|---|---|
| int |
Passwords
Credentials tried in order against encrypted volumes. Each entry that
resolves to an existing file is treated as a key file (e.g. a
BitLocker .bek); everything else is treated as a literal
password. Both styles can mix in one array.
Declaration
[JsonPropertyName("passwords")]
public List<string>? Passwords { get; set; }
Property Value
| Type | Description |
|---|---|
| List<string> |
Segments
Ordered list of image segment paths. Only the first segment is passed
to OpenImage; the DLL auto-detects companion segments by naming
convention. Other entries are validated for existence and surfaced as
warnings if missing.
Declaration
[JsonPropertyName("segments")]
public List<string>? Segments { get; set; }
Property Value
| Type | Description |
|---|---|
| List<string> |
Methods
BuildOptionsJson()
Builds the JSON options string passed to OpenImage(string, string, nint, nint) when this manifest carries credentials. Returns null if there are no passwords.
Declaration
public string? BuildOptionsJson()
Returns
| Type | Description |
|---|---|
| string | UTF-8 JSON document, or null. |
GetPrimaryImagePath()
Returns the path of the first segment, the only one passed to
OpenImage. Logs warnings to stderr for any subsequent segment
that is missing on disk.
Declaration
public string GetPrimaryImagePath()
Returns
| Type | Description |
|---|---|
| string | Absolute path of the first segment. |
Exceptions
| Type | Condition |
|---|---|
| InvalidOperationException | No segments are listed. |
| FileNotFoundException | The first segment is missing. |
Load(string)
Loads and validates a manifest JSON file from disk.
Declaration
public static Manifest Load(string manifestPath)
Parameters
| Type | Name | Description |
|---|---|---|
| string | manifestPath | Path to the manifest JSON file. |
Returns
| Type | Description |
|---|---|
| Manifest | Parsed manifest with paths resolved to absolute form. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
| FileNotFoundException | Manifest file does not exist. |
| InvalidDataException | JSON parse failure or unsupported schema version. |