I'm a little late posting it here, but v0.2.0 has been released.
Download
v0.2.0
A single-exe version of hactoolnet has been added to the downloads for convenience over using an exe with dlls
- Use a new `IStorage` interface throughout the library instead of `Stream`
- This interface is more similar to the `IStorage` interface used by Horizon.
- Instead of having a Stream that keeps track of the current position, IStorage accepts an offset, buffer, and length when reading or writing.
- Unlike a Stream, an IStorage instance can be shared between multiple consumers without issue
- `Stream.AsStorage()` and `IStorage.AsStream()` methods are provided for switching between `Stream` and `IStorage`
- Improve AES-XTS performance by ~16x
- Improve AES-CTR performance by 2x
- Add AES-XTS tests
- Add benchmarks for AES-XTS and AES-CTR
- Ability to open a decrypted IStorage of an NCA, Package1 or Package2
- Validate NCA, NPDM and package2 signatures
- Add NPDM parsing support
- Allow more disposal methods to cascade down to the base storage
- Support writing version 5 of `JournalStorage` used in newer save data files
- Fix a fatal save allocation table bug that would occur if the last block of the save data FS was read
- Add a build script
hactoolnet changes
- Add the ability to replace files in a save data file (Currently the new file must be the same size as the old file)
- Add benchmarks for AES-XTS and AES-CTR
- Change how Switch FS title info is displayed, and add an option to display info on all NCAs