NdsForge.NET 1.0.1
Read, validate, edit, compare, and build Nintendo DS and DSi images from .NET
Loading...
Searching...
No Matches
NdsForge.NdsValidationOptions Class Referencesealed

Supplies optional trust material and policy for validation checks that cannot be inferred from image bytes. Structural, CRC, digest-table, and development-marker checks remain available without external keys. More...

Public Member Functions

NdsValidationOptions SetDsiHmacKey (ReadOnlySpan< byte > key)
 Recomputes DSi component HMAC-SHA1 fields with caller-supplied trust material. Merely storing a matching digest proves key possession and byte integrity; it does not establish the provenance of that key.
NdsValidationOptions SetSecureAreaKeyTable (NdsKey1KeyTable keyTable)
 Enables secure-area identifier recovery and encrypted-form CRC validation. No default table is bundled; supplying one is an explicit trust and provenance decision separate from ordinary structural validation.
NdsValidationOptions SetDsiRsaPublicKey (NdsDsiRsaPublicKey publicKey)
 Enables DSi header authenticity verification against one explicitly trusted RSA-1024 key. A mismatch becomes a validation error; the library never substitutes a built-in publisher trust store.

Properties

static NdsValidationOptions Default [get]
 Returns a fresh keyless policy suitable for structural validation without shared mutable state.
bool ValidateDsiDevelopmentSignature = true [get]
 Verifies a recognizable no$gba development marker against the finalized 0xE00-byte header input. Unknown nonzero signatures remain unverified rather than being mislabeled invalid without a trusted RSA key.
int MaxDsiDigestTableBytes = 64 * 1024 * 1024 [get]
 Bounds each materialized DSi digest table while sector contents themselves remain streamed. The default 64 MiB permits very large legitimate images without accepting attacker-controlled unbounded allocation.
int MaxDsiDigestFailures = 64 [get]
 Caps individual sector/block mismatch diagnostics while retaining a final truncation warning.

Detailed Description

Supplies optional trust material and policy for validation checks that cannot be inferred from image bytes. Structural, CRC, digest-table, and development-marker checks remain available without external keys.

Definition at line 7 of file NdsValidationOptions.cs.

Member Function Documentation

◆ SetDsiHmacKey()

NdsValidationOptions NdsForge.NdsValidationOptions.SetDsiHmacKey ( ReadOnlySpan< byte > key)
inline

Recomputes DSi component HMAC-SHA1 fields with caller-supplied trust material. Merely storing a matching digest proves key possession and byte integrity; it does not establish the provenance of that key.

Parameters
keyNon-empty HMAC key expected to have produced the image's component fields.
Returns
The same options object for fluent validation configuration.

Definition at line 25 of file NdsValidationOptions.cs.

◆ SetDsiRsaPublicKey()

NdsValidationOptions NdsForge.NdsValidationOptions.SetDsiRsaPublicKey ( NdsDsiRsaPublicKey publicKey)
inline

Enables DSi header authenticity verification against one explicitly trusted RSA-1024 key. A mismatch becomes a validation error; the library never substitutes a built-in publisher trust store.

Parameters
publicKeyImmutable public key whose provenance the calling application has established.
Returns
The same options object for fluent validation configuration.

Definition at line 54 of file NdsValidationOptions.cs.

◆ SetSecureAreaKeyTable()

NdsValidationOptions NdsForge.NdsValidationOptions.SetSecureAreaKeyTable ( NdsKey1KeyTable keyTable)
inline

Enables secure-area identifier recovery and encrypted-form CRC validation. No default table is bundled; supplying one is an explicit trust and provenance decision separate from ordinary structural validation.

Parameters
keyTableComplete immutable KEY1 seed schedule.
Returns
The same options object for fluent validation configuration.

Definition at line 42 of file NdsValidationOptions.cs.

Property Documentation

◆ Default

NdsValidationOptions NdsForge.NdsValidationOptions.Default
staticget

Returns a fresh keyless policy suitable for structural validation without shared mutable state.

Definition at line 17 of file NdsValidationOptions.cs.

◆ MaxDsiDigestFailures

int NdsForge.NdsValidationOptions.MaxDsiDigestFailures = 64
get

Caps individual sector/block mismatch diagnostics while retaining a final truncation warning.

Definition at line 73 of file NdsValidationOptions.cs.

◆ MaxDsiDigestTableBytes

int NdsForge.NdsValidationOptions.MaxDsiDigestTableBytes = 64 * 1024 * 1024
get

Bounds each materialized DSi digest table while sector contents themselves remain streamed. The default 64 MiB permits very large legitimate images without accepting attacker-controlled unbounded allocation.

Definition at line 70 of file NdsValidationOptions.cs.

◆ ValidateDsiDevelopmentSignature

bool NdsForge.NdsValidationOptions.ValidateDsiDevelopmentSignature = true
get

Verifies a recognizable no$gba development marker against the finalized 0xE00-byte header input. Unknown nonzero signatures remain unverified rather than being mislabeled invalid without a trusted RSA key.

Definition at line 64 of file NdsValidationOptions.cs.


The documentation for this class was generated from the following file: