Alex Barney
c141b72912
Use U8Span in IFileSystem instead of string
2020-03-08 01:00:02 -07:00
Alex Barney
d6fede0893
Don't return duplicate entries in LayeredFS. Add tests
2020-03-03 18:19:11 -07:00
Alex Barney
1f6046ba63
Remove DirectoryEntryType.NotFound
2020-03-03 18:16:29 -07:00
Alex Barney
7ce9ea09e6
Misc build updates
2020-02-29 01:36:23 -07:00
Alex Barney
4d8ace968f
Bump version to 0.9.0
2020-02-28 23:58:29 -07:00
Alex Barney
24f293c27a
Add names to Results missing them
2020-02-27 23:31:38 -07:00
Alex Barney
14dd2190a5
Add a default, reflection-less Result name resolver
2020-02-27 11:33:39 -07:00
Alex Barney
53c8dceb87
Add XML docs and a header to the Result files
2020-02-26 14:45:58 -07:00
Alex Barney
27618bbc45
Indent results based on hierarchy
2020-02-26 00:55:53 -07:00
Alex Barney
07d8b7c21e
Add results found in a Unity game
2020-02-25 17:32:30 -07:00
Alex Barney
5345d2747e
Generate Results from a .csv file
2020-02-24 14:45:51 -07:00
Alex Barney
7bef4c6cd9
Combine common code in EnsureApplicationSaveData
2020-02-22 03:05:04 -07:00
Alex Barney
cfb79f5780
Add EnsureApplicationCacheStorage
2020-02-18 23:12:23 -07:00
Alex Barney
44ff25ee9b
Add cache storage and an emulated SD card
2020-02-13 17:21:24 -07:00
Alex Barney
4ff12ec21b
Fix AesXtsFileSystem
2020-02-12 03:04:04 -07:00
Alex Barney
ea8cc33003
Always allow opening directory savedata
2020-02-12 03:04:04 -07:00
Alex Barney
ecf7bcd8ad
Rewrite SubdirectoryFileSystem
2020-02-12 03:04:04 -07:00
Alex Barney
1c28c08c94
Add PathNormalizer
2020-02-12 03:04:04 -07:00
Alex Barney
cb6827e6c2
Add PathTool.IsSubpath
2020-02-12 03:04:04 -07:00
Alex Barney
bc11d7ceaf
Implement Nintendo's path normalization functions
2020-02-12 03:04:04 -07:00
Alex Barney
3139f6900e
Add common IFileSystem tests
...
Change GetFileAttributes method signature
2020-01-29 17:33:42 -07:00
Alex Barney
de13c71a0d
Add some Result XML docs
2020-01-26 15:34:26 -07:00
Alex Barney
0040db1153
Add IResultLogger and IResultNameResolver
2020-01-26 15:34:26 -07:00
Alex Barney
5910b9f9c2
Add some results from Atmosphere
2020-01-26 15:34:26 -07:00
Alex Barney
9034c54318
Refactor the Result struct
2020-01-26 15:34:26 -07:00
Alex Barney
35b82f5d6e
Misc tweaks ( #111 )
...
- Use System.HashCode in GetHashCode methods
- Update master key revisions.
- Remove some unneeded utility functions
- Suppress a spurious ReSharper warning
2020-01-19 23:31:23 -07:00
Alex Barney
1ae973a346
Add InMemoryFileSystem
2020-01-19 14:55:34 -07:00
Alex Barney
da467a10b0
Add ToU8String method to U8Span. Add PathTools.GetFileName
2020-01-19 14:55:34 -07:00
Alex Barney
b742a37012
Rewrite MemoryStorage
2020-01-19 14:55:34 -07:00
Alex Barney
857bde67ee
Simplify CoreRT build
2020-01-17 00:20:24 -07:00
Alex Barney
3c7f1692b7
Create temporary savedata in EnsureApplicationSaveData
2020-01-13 21:31:18 -07:00
Alex Barney
5b0c81fcf9
Clean temp storage on FileSystemServer init
2020-01-13 21:31:18 -07:00
Alex Barney
5c1a7920d2
Open temp directory savedata properly
2020-01-13 21:31:18 -07:00
Alex Barney
9c402df18a
Add SaveDataIndexerLite
2020-01-13 21:31:18 -07:00
Alex Barney
6abe565de1
Add more savedata shim functions
2020-01-13 21:31:18 -07:00
Alex Barney
b868c8f51a
Cast enums to int before formatting in string
2020-01-03 22:06:18 -07:00
Alex Barney
76598cfac9
Filter savedata info rank correctly
2020-01-03 22:06:18 -07:00
Alex Barney
e8bef8af6a
Update SourceLink package/info and target .NET Core 3.1 with hactoolnet ( #106 )
...
Make hactoolnet target the LTS .NET Core version.
LibHac still targets .NET Core 3.0.
2019-12-30 23:05:29 -07:00
Alex Barney
5e4ea459cb
Update var usage based on ReSharper "when apparent" rules
2019-12-28 15:16:21 -07:00
Alex Barney
496250f094
hactoolnet: add nax0 support
2019-12-27 19:18:29 -07:00
Alex Barney
d68062c8b4
Fix keyblob key derivation regression
2019-12-26 23:16:46 -07:00
Alex Barney
70a879917a
hactoolnet: Print the key used to sign/verify savedata
2019-12-26 23:16:46 -07:00
Alex Barney
dd74f44297
hactoolnet: Improve save processing error messages
...
Return a message indicating keys may be missing when a commit fails after replacing files in a save.
2019-12-18 11:59:23 -06:00
Alex Barney
2b828bb50f
Use runtime instead of compile-time conditionals for result logging
2019-12-18 11:59:23 -06:00
Alex Barney
47f2f4954a
Ensure returned result codes are logged
2019-12-18 11:59:23 -06:00
Alex Barney
5d6dce7e1f
Properly pass the missing rights ID to MissingKeyException
2019-12-18 11:59:23 -06:00
Alex Barney
d08e6b060c
Add PartitionFileSystemCore
2019-12-07 16:12:49 -06:00
Alex Barney
0c4aad32a0
Ignore key name case when parsing a key file
2019-12-07 16:12:49 -06:00
Alex Barney
ba2a923296
Update FS enum and structure names
...
The new names should be all or mostly all official
2019-12-07 16:12:49 -06:00
Alex Barney
89d70757a3
Add MountApplicationPackage
2019-12-07 16:12:49 -06:00
Alex Barney
31563ad108
Add FileStorageBasedFileSystem
2019-12-07 16:12:49 -06:00
Alex Barney
3d7ff652e0
Add CommonMountNames
2019-12-07 16:12:49 -06:00
Alex Barney
ac70990fa0
Add Slice functions to U8Strings
2019-12-07 16:12:49 -06:00
Alex Barney
a6161e693c
Add MountContent shims
2019-12-07 16:12:49 -06:00
Alex Barney
c6a261eeee
Rename LocalAccessLogMode to AccessLogTarget
2019-12-07 16:12:49 -06:00
Alex Barney
57586d75fd
Target netstandard2.1 and netcoreapp3.0 ( #99 )
...
.NET Core 2.1 introduced some runtime changes to support Span<T> and ByReference. Along with this comes the ability to do things like reinterpret memory as a different type. In .NET Framework the garbage collector couldn't track these references. These features proved useful enough that support for .NET Framework was dropped.
* Target netstandard2.1 and netcoreapp3.0
* Build: Zip native builds. Put version in zip filename
* Always build native exe on AppVeyor
2019-11-29 13:11:04 -06:00
Alex Barney
fdc3a11692
Bump version to 0.7.0
2019-11-26 20:49:55 -06:00
Alex Barney
e18481b3b7
Use Sha256Generator throughout the library
2019-11-26 18:13:30 -06:00
Alex Barney
1efcf3327c
Add SHA-256 benchmark with the option to display cycles per byte
2019-11-26 18:13:30 -06:00
Alex Barney
1aa5c9438e
Add Sha256Generator
2019-11-26 18:13:30 -06:00
Alex Barney
f9232b9f12
Add ICipherWithIv interface
2019-11-25 11:39:57 -06:00
Alex Barney
99522b748e
Add optimized functions for decrypting a single AES block
2019-11-25 11:39:57 -06:00
Alex Barney
abce62dd4f
Avoid running into problems from a GC hole in runtimes that don't support fast span.
...
Support for .NET Framework probably needs to be removed soon. Having runtime support for CreateSpan has turned out to be rather useful.
2019-11-23 21:05:37 -06:00
Alex Barney
2f6b75a8eb
Remove use of Enum.TryParse
2019-11-23 20:06:19 -06:00
Alex Barney
3395ebff44
Improve AES key expansion performance
2019-11-23 20:05:05 -06:00
Alex Barney
e02e719ea5
Add crypto benchmarks
2019-11-23 18:56:31 -06:00
Alex Barney
ff23a9179c
Add some NACP enums
2019-11-22 19:53:55 -06:00
Alex Barney
a7c733f96c
Slightly change some BlitSpan methods
2019-11-22 19:53:55 -06:00
Alex Barney
be2c4d3959
Add SourceLink package
2019-11-22 19:53:55 -06:00
Alex Barney
5d2de68976
Slight renamings
2019-11-22 19:53:55 -06:00
Alex Barney
5b6ca9c160
Add BlitStruct<T> and BlitSpan<T>
2019-11-22 19:53:55 -06:00
Alex Barney
bfaf95026a
Add EnsureApplicationSaveData and dependencies
...
- CreateBcatSaveData
- CreateDeviceSaveData
- CreateTemporaryStorage
- ApplicationControlProperty struct
2019-11-22 19:53:55 -06:00
Alex Barney
df8dab542a
Allow setting system save owner to 0 for now
2019-11-22 19:53:55 -06:00
Alex Barney
db6269df5c
Interleave AES instructions to improve performance
2019-11-22 13:59:47 -05:00
Alex Barney
191b3d41f6
Ensure crypto works when the input and output buffers are the same
2019-11-22 13:59:47 -05:00
Alex Barney
d0caf6ca4f
Use new crypto in Keyset class
2019-11-22 13:59:47 -05:00
Alex Barney
2f4453404f
Rename Crypto namespace
2019-11-22 13:59:47 -05:00
Alex Barney
488bd8e682
Rename Aes class
2019-11-22 13:59:47 -05:00
Alex Barney
4b2c4d9553
Refactor non-NI AES code
2019-11-22 13:59:47 -05:00
Alex Barney
2752a7c3db
Avoid allocations when doing encryption with AES-NI
2019-11-22 13:59:47 -05:00
Alex Barney
df646fb503
Add functions to encrypt/decrypt entire buffers
2019-11-22 13:59:47 -05:00
Alex Barney
8b47be19c2
Add XTS mode and remove duplicate code
2019-11-22 13:59:47 -05:00
Alex Barney
df27d2a83b
Use AES-NI instructions
2019-11-22 13:59:47 -05:00
Alex Barney
f99bc3e0fe
Give a better error in LocalFileSystem when trying to initialize it with a file
2019-11-11 12:03:22 -06:00
Alex Barney
fcf46b1822
Reduce memory used by parsing CLI arguments and keys
...
These actions are usually only performed once per program run, but the objects they used were stored as static properties where they couldn't be cleared from memory. Free up a small bit of memory by only storing them locally.
Reduces memory used by ~150 KB and reduces object count by over 1500
2019-11-03 12:25:09 -07:00
Alex Barney
cccb811293
Add Result methods for debugging ( #90 )
...
- Allow setting a callback function for when Result.Log is called.
- Allow setting a function that returns a name for a Result value.
- Print Result name in error messages
2019-10-25 22:13:09 -05:00
Alex Barney
172817a7d5
Make EmulatedSdFileSystemCreator config easier
...
Also make unintentionally internal classes public and enforce var style
2019-10-24 15:28:36 -05:00
Alex Barney
f3b5cad94b
Merge pull request #89 from Thealexbarney/saveIndex
...
Add a save indexer with related functions
Adds IFileSystemProxy commands:
- DeleteSaveDataFileSystem
- DeleteSaveDataFileSystemBySaveDataSpaceId
- DeleteSaveDataFileSystemBySaveDataAttribute
- CreateSaveDataFileSystem
- CreateSaveDataFileSystemWithHashSalt
- CreateSaveDataFileSystemBySystemSaveDataId
- OpenSaveDataFileSystem
- OpenReadOnlySaveDataFileSystem
- OpenSaveDataInfoReader
- OpenSaveDataInfoReaderBySaveDataSpaceId
- OpenSaveDataInfoReaderWithFilter
- FindSaveDataWithFilter
2019-10-24 10:37:56 -05:00
Alex Barney
901b72a186
Make internally-used FileSystemProxy methods private
2019-10-23 17:45:28 -05:00
Alex Barney
436de21c86
Add ISaveDataIndexer.GetCount
2019-10-23 17:30:08 -05:00
Alex Barney
bf8b975fa6
Implement more OpenSaveDataInfoReader commands
2019-10-23 17:12:24 -05:00
Alex Barney
04b123f16e
Adjust opened SaveDataInfoReaders if the collection is modified
2019-10-23 15:44:00 -05:00
Alex Barney
f0aac13fab
Add some SaveDataInfoReader functions
2019-10-22 17:52:55 -05:00
Alex Barney
3af543e4e1
Do error handling in CreateSaveDataFileSystemImpl
2019-10-21 20:38:59 -05:00
Alex Barney
e74bda1a68
Implement DeleteSaveDataFileSystem
2019-10-21 00:29:54 -05:00
roblabla
d2cf1ecb1f
hactoolnet: Add Title Name to NCA output
...
When displaying an NCA containing an NPDM in the code partition, display the
title name.
2019-10-19 10:41:28 -05:00
Alex Barney
92049bf9b7
Add main parts of CreateSaveDataFileSystem
2019-10-18 18:57:45 -05:00
Alex Barney
fef6d19900
Rearrange some FS client functions
2019-10-17 15:52:29 -05:00
Alex Barney
ee9bee3efb
Make IFileSystem implement IDisposable
2019-10-17 14:52:44 -05:00
Alex Barney
d330d11de2
Add SaveDataIndexer
2019-10-17 10:52:35 -05:00
Alex Barney
c7f2f28a81
Fix CleanDirectoryRecursivelyGeneric
2019-10-16 20:28:46 -05:00
Alex Barney
dee7c93285
Use plain structs for kvdb
2019-10-15 12:33:15 -05:00
Alex Barney
be907ce4bb
Target .NET Core 3.0 ( #85 )
...
* Target .NET Core 3.0
* Update build and test project packages
* Update AppVeyor build image
2019-10-14 21:10:53 -05:00
Alex Barney
9b9e83f1dc
Increment GitVersion. Renaming
2019-10-14 17:26:47 -05:00
Alex Barney
102adb4a11
Update version to 0.6.0
2019-10-14 12:28:23 -05:00
Alex Barney
49ec3d6427
Add a path normalizer that behaves like the one in FS
2019-10-14 12:10:56 -05:00
Alex Barney
e05a37bb38
Ensure failed directory savedata commits can be recovered
2019-10-14 12:10:56 -05:00
Alex Barney
576049ce88
Add OperateRange to IFile and IStorage. Reorder methods
2019-10-11 21:20:20 -05:00
Alex Barney
8390e10ae0
Make FileBase abstract methods protected
2019-10-11 20:32:47 -05:00
Alex Barney
8f4c310b7e
Add FileSystemBase
2019-10-11 19:11:36 -05:00
Alex Barney
162fb4e389
Move IStorage classes to the new StorageBase
2019-10-11 14:48:31 -05:00
Alex Barney
bfc343e801
Add some validation to StorageBase
2019-10-11 12:53:29 -05:00
Alex Barney
54950c9b68
Handle more errors in LocalFileSystem
2019-10-10 19:01:46 -05:00
Alex Barney
089b5b4f63
Add EmulatedGameCardFsCreator
2019-10-08 20:39:07 -05:00
Alex Barney
f4aaa3b453
Merge from master
2019-10-08 16:29:05 -05:00
Alex Barney
6ed1f1297d
Make GameCardHandle.Value public
2019-10-08 11:29:33 -05:00
Alex Barney
b517085e92
Add DefaultFsServerObjects for creating a default server instance
2019-10-07 19:01:53 -05:00
Alex Barney
51a13068df
Add an emulated gamecard and storage creator
2019-10-07 18:39:06 -05:00
Alex Barney
9934f477d5
Add remaining GetRightsId methods and U8StringBuilder
2019-10-04 17:17:25 -05:00
Alex Barney
fdd7eebb4b
Add external key methods to FS client/server
2019-10-02 17:57:10 -05:00
roblabla
a68d8c16d8
Add developer fixed key modulus
2019-10-02 13:53:40 -05:00
Alex Barney
d291500b28
Add ExternalKeySet. Use C# 8.0
2019-10-02 13:45:58 -05:00
Alex Barney
d7f3e94577
Add a basic SaveDataFileSystemCreator
2019-10-01 16:32:20 -05:00
Alex Barney
5011a57d3e
Add an option to control which types of access events are logged
2019-09-30 16:15:31 -05:00
Alex Barney
22bbf07c2b
Add a function for handling possible access log output
2019-09-29 11:54:34 -05:00
Alex Barney
838bb18a09
Add some savedata client functions
2019-09-27 23:36:43 -05:00
Alex Barney
00eb988793
Move FileSystemManager into FileSystemClient
2019-09-25 17:50:07 -05:00
Alex Barney
955fff8efc
Add FileHandleStorage and a new SubStorage class
2019-09-25 17:16:59 -05:00
Alex Barney
c89bc1c706
Make FileSystemProxy implement IFileSystemProxy
2019-09-23 18:37:23 -05:00
Alex Barney
fd40b2fd77
Remove the old FileBase class
2019-09-23 00:36:47 -05:00
Alex Barney
6a449b7da1
Remove IFile.Mode and create a new FileBase class
2019-09-21 23:38:47 -05:00
Alex Barney
22940f20e5
Move custom storage client code together
2019-09-21 13:59:35 -05:00
Alex Barney
0fe3031701
Move common items to the Fs class
2019-09-21 13:05:45 -05:00
Alex Barney
0e01aa3984
Rename FS namespaces
2019-09-21 12:29:10 -05:00
Alex Barney
a7befc5612
Add AccessPermissions enum
2019-09-20 22:51:42 -05:00
Alex Barney
115d798905
Add more methods to IFileSystemProxy
2019-09-20 00:40:14 -05:00
Alex Barney
5ca698eda1
More IFileSystemProxy functions
2019-09-18 18:07:08 -05:00
Alex Barney
7e2dd22079
Add more methods to IFileSystemProxy
2019-09-18 16:29:27 -05:00
Alex Barney
7222c7d469
Add a few more method definitions to IFileSystemProxy
2019-09-16 22:05:22 -05:00
Alex Barney
4bbfa057d2
Add U8String class and some FileSystemClient functions
2019-09-16 16:42:32 -05:00
Alex Barney
2f49021405
Begin filling out FileSystemClient functions
2019-09-15 08:11:54 -05:00
Alex Barney
734d86d336
Change IDirectory to match the interface in FS
2019-09-14 18:35:25 -05:00
Alex Barney
104312bf06
Log result codes in access log
2019-09-08 15:16:37 -05:00
Alex Barney
9e9fd19f63
Return Result from IFileSystem methods
2019-09-08 14:28:42 -05:00
Alex Barney
69e7735666
Change IFile and IStorage classes to return Result
2019-09-03 12:35:34 -05:00
Alex Barney
d073bdfa54
Change IFile and IStorage interfaces
2019-09-01 18:35:59 -05:00
Alex Barney
6823aa7cb8
Add placeholder FileSystemClient functions
2019-09-01 18:17:35 -05:00
Alex Barney
f0ce5a9946
Change names of some enum members
2019-08-31 19:17:28 -05:00
Alex Barney
dfff3b1ccf
Create FileSystemClient
2019-08-31 10:15:49 -05:00
Alex Barney
d6165d1097
Add OpenSaveDataFileSystemBySystemSaveDataId
2019-08-29 18:54:51 -05:00
Alex Barney
d610d2262b
Add a Result.Log() method to aid in debugging
2019-08-27 12:27:07 -05:00
Alex Barney
cb705c5f0f
Add some file system creators
2019-08-25 21:41:48 -05:00
Alex Barney
82c5c5d9a0
Create FileSystemProxy class
2019-08-22 14:56:03 -05:00
Alex Barney
a052ebb8a1
Add fscreator interfaces
2019-08-19 21:24:30 -05:00
Alex Barney
c3dfaf14e8
Add content storage and content meta DB interfaces
2019-08-11 19:22:39 -05:00
Alex Barney
d69c1a4725
Bump version to 0.5.1
2019-08-11 16:42:17 -05:00
Alex Barney
2f4df2eef3
Derive additional SD card keys
2019-08-11 16:36:21 -05:00
Alex Barney
614adb2a31
Don't add unnecessary ".cnmt" to SwitchFs nca names
2019-08-09 20:47:21 -05:00
Alex Barney
9d813ade18
Use .NET Framework reference assemblies from NuGet ( #77 )
...
* Use .NET Framework reference assemblies from NuGet
* Update build packages. Specify --no-build when publishing
* Don't sign on Linux
2019-08-09 20:29:06 -05:00
Alex Barney
4ef297be7f
Fix getting structure size in RomFsDictionary
2019-08-08 18:12:07 -05:00
Alex Barney
7099b3cdf2
Make the value stored by HierarchicalRomFileTable generic ( #76 )
...
* Make the value stored by HierarchicalRomFileTable generic
* Don't use new language features yet
2019-08-08 17:46:49 -05:00
Alex Barney
ea2572c479
Ensure EnsureDirectoryExists works properly
2019-08-08 17:28:34 -05:00
Alex Barney
b03973dc48
hactoolnet: Savefile fixes
...
Only open as writable if needed
Only commit if needed
2019-07-19 19:50:42 -05:00
Alex Barney
7b8c3f0b4f
Add .NET Standard 2.0 target ( #73 )
...
* Add .NET Standard 2.0 target
* Update dependencies
2019-07-15 14:10:48 -05:00
Alex Barney
76550b0bd9
Remove LibHac.Nand and related projects ( #72 )
2019-07-14 19:56:02 -05:00
Alex Barney
ab8283183b
hactoolnet: Don't fix archive flag on non-Windows platforms
2019-07-09 21:27:11 -05:00
Alex Barney
90c048c389
Add basic docs for ConcatenationFileSystem
2019-07-08 13:27:23 -05:00
Alex Barney
74a3929eb9
Workaround the inability to access FAT attributes in Linux
2019-07-08 13:27:23 -05:00
Alex Barney
6f1596ae5f
More closely match original FS behavior in IFileSystem
2019-07-07 16:30:18 -05:00
Alex Barney
6adcc8cce0
Rethrow exceptions with external result code
2019-07-07 16:30:18 -05:00
Alex Barney
69658ae08e
Add result ranges and convert savedata results to external results
2019-07-07 16:30:18 -05:00
Alex Barney
bbf92766c0
Change behavior of IFileSystem.GetEntryType
...
GetEntryType now returns NotFound if the entry doesn't exist.
The FileExists and DirectoryExists functions were removed from IFileSystem and readded as extension methods
2019-06-28 23:08:27 -05:00
Alex Barney
8f37b2b1c4
Use more result codes in FS code
2019-06-28 23:08:27 -05:00
Alex Barney
46d4274686
Support xts nca. Handle more errors in switchfs
2019-06-26 13:26:37 -05:00
Alex Barney
abad1ee666
Fix NCA2 decryption bug
2019-06-26 13:26:37 -05:00
Alex Barney
89525c5eaa
hactoolnet: Use FileSystemManager in ProcessSave
2019-06-26 13:26:37 -05:00
Alex Barney
a43da54f95
Fix path normalizer bug
2019-06-26 13:26:37 -05:00
Alex Barney
a14b513b59
hactoolnet: Add an access log option and enable it for NCAs
...
Progress bars for NCA extraction now show the overall progress instead of per-file progress
2019-06-26 13:26:37 -05:00
Alex Barney
b51d4397e9
Add close and unmount methods. Add helpers for common fs tasks
2019-06-26 13:26:37 -05:00
Alex Barney
1859b4ce26
Add FS access log
2019-06-26 13:26:37 -05:00
Alex Barney
5d32150ad8
Update PathTools.IsNormalized to handle mount names
2019-06-26 13:26:37 -05:00
Alex Barney
b821ba9519
Add additional FileSystemManager methods
2019-06-26 13:26:37 -05:00
Alex Barney
9964483e83
Add basic FileSystemManager methods
2019-06-26 13:26:37 -05:00
Alex Barney
a44bdf780e
Make path normalizer work with mount names
2019-06-26 13:26:37 -05:00
Alex Barney
5a8744c6b5
Add basic filesystem accessors
2019-06-26 13:26:37 -05:00
Alex Barney
f45d4166eb
Add HorizonResultException
2019-06-26 13:26:37 -05:00
Somebody Whoisbored
fc149bf4c4
Add support to writing to the Nand class ( #64 )
2019-06-17 00:16:04 -05:00
Ac_K
0f110cf7e8
Update Nacp.cs
...
Fix wrong field who is UserAccountSwitchLock @0x3026 according to https://switchbrew.org/wiki/NACP_Format
2019-06-13 23:39:12 -05:00
Alex Barney
e8847243d9
Version 0.4.1
2019-06-05 00:29:29 -05:00
Alex Barney
775478fa16
Add read and write options to IFile interface
2019-06-04 23:40:48 -05:00
Alex Barney
fbeaff8d88
Make Nca.SectionExists return false for invalid type
2019-06-04 22:26:37 -05:00
Alex Barney
dc8aad1e71
Add IMKV database reader and writer ( #61 )
...
* Add Result struct
* Add IMKV database reading
* Add imkvdb writing
* Add get and set to kvdb
* Add Freeze method to IExportable
* Add generic kvdb value
* Add ContentMetaKey for use with kvdb
2019-06-03 20:24:38 -05:00
Alex Barney
61c66bc979
Update version to 0.4.0
2019-05-30 18:37:07 -05:00
Alex Barney
7cacc19b77
Remove DiscUtils csproj files
2019-05-30 18:24:22 -05:00
Alex Barney
9d03729e8a
Misc fixes
2019-05-24 15:24:10 -05:00
Alex Barney
1876e3b671
Add ReadOnlyFileSystem
2019-05-24 15:03:07 -05:00
Alex Barney
279e180466
Fix bug when opening patched nca filesystem with no base
2019-05-24 12:44:35 -05:00
Alex Barney
0fa9fccc5f
Add DirectorySaveDataFileSystem
2019-05-22 17:08:22 -05:00
Alex Barney
5b764e487e
Remove old SaveFsEntry file
2019-05-20 15:04:11 -05:00
Alex Barney
f7b983ccb2
Add PathTools.Combine
2019-05-20 15:01:14 -05:00
Alex Barney
353c538c6b
Properly handle opening patch NCAs with an empty base section
2019-05-14 17:03:53 -05:00
Alex Barney
d189826203
Rename IO namespace to Fs ( #58 )
2019-05-14 16:39:20 -05:00
Alex Barney
e3e6411aa6
Add rename functions to SaveDataFileSystemCore
2019-05-13 21:30:09 -05:00
Alex Barney
25a66cf4df
Fix issues with empty files in SaveDataFileSystemCore
2019-05-13 21:30:09 -05:00
Alex Barney
6f7de478eb
Implement CreateDirectory in SaveDataFileSystemCore
2019-05-13 21:30:09 -05:00
Alex Barney
b9236b973a
Fix bug in CachedStorage that would drop writes
...
If block 0 of the storage was written to before the cache was filled and then another block was accessed, any writes to block 0 would be lost.
2019-05-13 21:30:09 -05:00
Alex Barney
b83fb6c7fc
Add SaveFsList expansion
2019-05-13 21:30:09 -05:00
Alex Barney
823800945a
Add comments for the new functions
2019-05-13 21:30:09 -05:00
Alex Barney
c766a413e2
hactoolnet: Add option to replace a savedata's entire contents
2019-05-13 21:30:09 -05:00
Alex Barney
26ac0ed975
Fix bugs when running out of save data space
2019-05-13 21:30:09 -05:00
Alex Barney
47ba61db45
Add DeleteDirectory to savedata
2019-05-13 21:30:09 -05:00
Alex Barney
3c45e7e71b
Add DeleteDirectoryRecursively and CleanDirectoryRecursively
2019-05-13 21:30:09 -05:00
Alex Barney
6590cad251
Fix QueryEntry signature
2019-05-13 21:30:09 -05:00
Alex Barney
f1e839a64a
Add GetFreeSpaceSize and GetTotalSpaceSize
2019-05-13 21:30:09 -05:00
Alex Barney
bc22d6dd99
Add GetFileTimeStampRaw
2019-05-13 21:30:09 -05:00
Alex Barney
6aa15c0691
Match FS behavior when checking if an NCA section exists
2019-05-06 21:42:53 -05:00
Alex Barney
3888a03a92
Suppress ReSharper warnings
2019-05-06 19:51:41 -05:00
Alex Barney
da5a3449dd
hactoolnet: Set archive bit when missing from concat files
2019-05-06 19:04:17 -05:00
Alex Barney
67bf8b19ce
Add QueryEntry to IFileSystem
2019-05-06 19:04:05 -05:00
Alex Barney
87e9829892
switchfs: Allow missing save directory in all cases
2019-05-06 19:03:53 -05:00
Alex Barney
72915c0425
Refactor NCA-related classes ( #56 )
...
* Begin refactoring NCA classes
* Section opening
* Add NcaNewExtensions
* hactoolnet: Move most nca code to the new api
* Verify nca signatures
* hactoolnet: process patched ncas
* Add NCA encryption counter generation method
From what I can tell, this is the current method used to generate the counter. It's possible that may change in the future.
* Verify NCAs
* Use NcaNew in SwitchFs
* Remove old NCA code
* Rename new NCA classes
* Move struct constants around
* hactoolnet: verify patched nca sections
* Misc
2019-05-06 13:41:51 -05:00
Alex Barney
7804a919d1
SwitchFs: Don't try to open directories as NCA files
2019-04-30 15:40:31 -05:00
Alex Barney
cc9ca448f0
Add fstrim capability to savedata ( #54 )
...
* Properly commit version 4 savedata. Remove null span checks
* Add FsTrim to IntegrityVerificationStorage
* Remove dotsettings file
* Add trimming to all savedata layers
2019-04-26 09:48:57 -05:00
shchmue
fbdf6b3be9
Add support for 8.0.0 Kernel-embedded Ini1 ( #51 )
2019-04-23 18:13:46 -05:00
Alex Barney
6764dc7800
Merge pull request #52 from Thealexbarney/save-edit
...
Add more support for savedata FS editing
2019-04-23 15:14:10 -05:00
Alex Barney
0441d6e825
Small code cleanup
2019-04-23 15:08:27 -05:00
Alex Barney
c383b94632
Allow resizing when replacing file in savedata
2019-04-22 21:37:01 -05:00
Alex Barney
fdefd5cf36
Create a separate method for savedata debug export
2019-04-22 21:34:32 -05:00
Alex Barney
300a4335ea
Flush IVFC storage on savedata commit
2019-04-22 21:32:57 -05:00
Alex Barney
5bb46b2b36
Forward Savedata FS functions to core FS
2019-04-20 14:21:09 -04:00
Alex Barney
8914d89b32
Add SaveDataFile resizing
2019-04-20 14:15:00 -04:00
jonnysp
42ce382bf5
Add an NRO reader ( #44 )
2019-04-20 06:46:13 -05:00
Alex Barney
5c84f5c2a4
Add FsTrim for savedata
2019-04-15 23:49:04 -04:00
Alex Barney
9c0e6030e5
Add DeleteFile to savedata
2019-04-12 22:52:33 -04:00
Alex Barney
b1997806c1
Add savedata CreateFile
2019-04-11 18:08:17 -04:00
Alex Barney
c89b8be887
Add joining allocation table lists
2019-04-03 18:04:04 -05:00
Alex Barney
d7dd540b21
Move some logic to AllocationTable
2019-04-03 16:55:14 -05:00
Alex Barney
6112e35eb2
Read directly from save allocation table when requested
2019-04-02 17:21:38 -05:00
Alex Barney
90fc0e096c
Use generics for save file table entries
2019-04-01 21:15:08 -05:00
Alex Barney
079ffa6d3b
Implement adding entries to HierarchicalSaveFileTable
2019-03-29 16:25:22 -05:00
Alex Barney
dc2bd08823
Implement RenameDirectory for AesXtsFileSystem
2019-03-28 15:32:38 -05:00
Alex Barney
6e6c060e25
Allow setting length on more IStorage classes
2019-03-28 15:32:38 -05:00
Alex Barney
f570c56122
Add ConcatenationFile resizing
2019-03-28 15:32:38 -05:00
Alex Barney
1ee3841125
Add AesXtsFileSystem resizing and renaming
2019-03-28 15:32:38 -05:00
Alex Barney
5c1d8e0786
Fix bugs in the savedata file table
...
PathParser: Make sure IsFinished is properly set if the path is the root directory.
SaveFsList: When getting the index of a key, the wrong offset would be returned if the key did not exist.
Save/Rom FileTables: The rom file table code assumed the root directory was always at offset 0. This code was copied to the save file table, but the root directory in the save file table is never at index 0. Remove this assumption.
2019-03-23 16:56:08 -05:00
Alex Barney
4557665805
Change IStorage.Length to IStorage.GetSize()
2019-03-18 17:31:47 -05:00
jonnysp
7050b9a681
Avoid opening KIP files twice
2019-03-18 14:30:50 -05:00
Alex Barney
c73493b505
hactoolnet: Use new NCA APIs
2019-03-15 21:23:39 -05:00
Alex Barney
c267826dd1
Add NCA2 support
2019-03-15 21:23:39 -05:00
Alex Barney
56c4554d81
Fix opening decrypted NCAs
...
Fixes an issue where the decrypted NCA could be incorrect if the first section didn't start at offset 0x4000
2019-03-15 21:23:39 -05:00
Alex Barney
a1bdadb89b
Change NCA section open functions
...
Add an option to open by section type
2019-03-15 21:23:39 -05:00
Alex Barney
093d88a58e
Don't set PathMap on standard builds
2019-03-15 12:27:43 -05:00
Alex Barney
c6c2eb04c6
Merge pull request #43 from Thealexbarney/savedata
...
Directly read from the save FS file table
2019-03-15 10:48:52 -05:00
Alex Barney
d288a24c4e
hactoolnet: Add option to load keys from dev.keys
2019-03-14 18:00:52 -05:00
Alex Barney
85a3b56902
Work around DiscUtil's quirks
2019-03-12 17:02:16 -05:00
Alex Barney
d157619ad5
Auto-populate bis_key_source_03 from bis_key_source_02
2019-03-12 16:31:36 -05:00
Alex Barney
f0c09d7712
Add direct read support for the savedata file table
2019-03-11 23:47:48 -05:00
Alex Barney
1110c32cb1
Fix integrity verification performance regression
...
Integrity verification would always be done on savedata, even when not needed
2019-03-11 23:26:54 -05:00
Alex Barney
06fda75ab9
Fix NullFile not having an access mode set
2019-03-11 22:39:41 -05:00
Alex Barney
7bb99ff926
Add code for printing save FAT chains
2019-03-08 19:18:38 -06:00
Alex Barney
474e1e031e
hactoolnet: Write errors to stderr
2019-03-08 14:55:31 -06:00
Alex Barney
12ec4c7966
hactoolnet: Count all files in save data when printing
...
Previously only the files in the root directory would be counted
2019-03-08 14:48:07 -06:00
Alex Barney
f85eff4ab7
hactoolnet: Set a different exit code on error
2019-03-08 12:41:55 -06:00
jonnysp
7904772fc0
Fix Services
...
it can have multiple items of one Service
2019-03-08 12:31:42 -06:00
Alex Barney
f3d7054c79
Add an Attribute field to DirectoryEntry
...
Makes the behavior more like FS
2019-03-07 11:57:54 -06:00
Alex Barney
bc986a4d0b
Updated cnmt parsing
2019-03-01 15:02:27 -06:00
Alex Barney
caccc5a677
Support hashed partition FS building
2019-02-26 22:23:22 -06:00
Alex Barney
468c78aadd
Remove old Pfs0Builder
2019-02-26 22:23:22 -06:00
Alex Barney
1bcbe9f94a
Add a Partition FS builder
2019-02-26 22:23:22 -06:00
Alex Barney
4d655cdd19
Use the Unsafe class in RomFsDictionary
2019-02-25 22:25:49 -06:00
Alex Barney
1c918f705b
Do a binary search in ConcatenationStorage when finding a source
2019-02-25 22:25:49 -06:00
Alex Barney
53851ab897
Version 0.3.1
2019-02-22 20:51:53 -06:00
Alex Barney
b5bd5346d4
Fixed StorageStream and NxFileStream from possibly reading too much
2019-02-22 20:19:53 -06:00
Alex Barney
5e321b7601
Fix HierarchicalRomFileTable not working and add tests
2019-02-22 14:09:35 -06:00
Alex Barney
01b14c6476
tsec_root_keys starts counting at 0, not 6
2019-02-19 13:46:29 -06:00
Alex Barney
8d1c5449d1
Order exported keys differently
...
bis_key_source_03 is now required to derive bis_key_03
2019-02-17 21:14:12 -06:00
Alex Barney
b2e8ee53c0
Support 6.2.0 keygen
2019-02-17 21:14:12 -06:00
Somebody Whoisbored
41b9f3088e
Package2 opening and various tweaks ( #35 )
...
* Add package2 opening to LibHac.Nand
* Add utility methods for enumerating FileSystems
2019-02-17 19:49:00 -06:00
Alex Barney
632d508e40
Version 0.3.0
2019-02-16 20:50:49 -06:00
Alex Barney
b68261a092
Build script updates ( #33 )
...
- Make generated NuGet packages deterministic.
- Add a signing option to the build script.
- Set versions for pre-release builds.
- Publish packages to a MyGet feed.
- Make Windows-produced artifacts match Linux-produced ones
2019-02-16 19:03:56 -06:00
Alex Barney
0e118ae170
Fix RomFsDictionary off-by-one error
...
When retrieving an entry that happened to be the last entry in the table, the dictionary would incorrectly say that the lookup failed. Fixes #32
2019-02-15 13:54:37 -06:00
Alex Barney
46682cd4dd
Fix incorrect BitReader documentation
2019-02-11 20:47:26 -06:00
Alex Barney
017623c300
Add SetSize to AesXtsFileHeader
2019-02-10 17:04:13 -06:00
Alex Barney
2844466bbb
Fix AesXtsFileSystem bugs and add the option to specify keys
2019-02-10 17:04:13 -06:00
Alex Barney
fb7254684a
Produce an XML documentation file
2019-02-04 20:23:13 -06:00
Alex Barney
29d1cd110f
Add some RomFS and IFileStorage documentation.
2019-02-04 20:23:13 -06:00
Alex Barney
f8e724fe0b
Add RomFS building to hactoolnet
2019-02-04 20:23:13 -06:00
Alex Barney
e111805702
Remove leftover code
2019-02-04 20:23:13 -06:00
Alex Barney
cdc3800e8d
Allow adding individual files to the RomFS builder
2019-02-04 20:23:13 -06:00
Alex Barney
c1beb9d1fd
Automatically resize the romfs dictionary
2019-02-04 20:23:13 -06:00
Alex Barney
d2f7aa52dc
Remove unneeded code
2019-02-04 20:23:13 -06:00
Alex Barney
0520c25c37
Improve HierarchicalRomFileTable performance
2019-02-04 20:23:13 -06:00
Alex Barney
5457a81068
Improve rom file table read/write performance
2019-02-04 20:23:13 -06:00
Alex Barney
b99bb84e9c
Make RomFsDictionary hash table resizable
2019-02-04 20:23:13 -06:00
Alex Barney
eeb6ebf0a7
Add an initial functional RomFS builder
2019-02-04 20:23:13 -06:00
Alex Barney
19cf003160
Add an optional dynamic backing array to MemoryStorage
2019-02-04 20:23:13 -06:00
Alex Barney
34e926f2a4
Don't use IStorage for reading the romfs file table.
...
It's at least 2-3x faster reading it all from a byte array
2019-02-04 20:23:13 -06:00
Alex Barney
7004b22958
Create RomFs namespace
2019-02-04 20:23:13 -06:00
Alex Barney
7e5c8c4e8e
Improve XCI open performance
2019-02-04 20:23:13 -06:00
Alex Barney
fb4619f4ab
Use the dictionary in the romfs instead of creating our own
2019-02-04 20:23:13 -06:00
Alex Barney
e5f808cd2d
Don't read invalid NAX0 files
2019-01-27 19:39:06 -06:00
Alex Barney
bd73237e98
Move RomfsEntry class
2019-01-23 15:40:44 -06:00
Alex Barney
6e2fa012c2
Make IStorage array read/write extension methods
2019-01-23 15:40:44 -06:00
Alex Barney
42044d02ba
Add LocalStorage class
2019-01-23 15:40:44 -06:00
Alex Barney
1d07a98d1e
Make sure storage conversion extensions are in place
2019-01-23 15:40:44 -06:00
Alex Barney
8e151c4a1c
Make IStorage interface and classes less complex
2019-01-23 15:40:44 -06:00
Alex Barney
30b42eaf34
Add very basic read benchmark
2019-01-21 12:58:25 -06:00
Alex Barney
b6964589fa
Slightly speed up IntegrityVerificationStorage
2019-01-21 12:57:40 -06:00
Alex Barney
39f952015f
Catch errors when checking an AesXtsFile's size
2019-01-20 15:39:19 -06:00
Alex Barney
0ed67d87df
Add NDV0 support
2019-01-19 21:05:25 -06:00
Alex Barney
fba89fbb95
Add AesXtsFile creation and FileReader
2019-01-17 22:38:28 -06:00
Alex Barney
fe1400476a
DiscUtils: Workaround a bug by always assuming the long name is used
2019-01-17 22:38:28 -06:00
Alex Barney
c3026f04b6
Add ConcatenationFileSystem writing
2019-01-17 22:38:28 -06:00
Alex Barney
a33f829b55
Add GetEntryType to IFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
b8b57c9fb7
Add LayeredFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
edaccdfe81
Add initializers for SwitchFs
2019-01-17 22:38:28 -06:00
Alex Barney
4ded38c1d6
Add SubdirectoryFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
8861f25bc7
Get rid of old code
2019-01-17 22:38:28 -06:00
Alex Barney
3e4dcd9466
Add an IFileSystem provider for DiscUtils
2019-01-17 22:38:28 -06:00
Alex Barney
828c1f5b54
Add a pattern option to EnumerateEntries
2019-01-17 22:38:28 -06:00
Alex Barney
defab1a229
Add StreamFile. Make sure LocalFile closes the base file
2019-01-17 22:38:28 -06:00
Alex Barney
53288105c3
Initial AesXtsFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
cf48b5b21e
Add ConcatenationFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
404e05da53
Add IAttributeFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
8f977554f2
Add SaveDataFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
585c351917
Remove old Pfs and Romfs classes
2019-01-17 22:38:28 -06:00
Alex Barney
9a234575ac
Add PartitionFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
f94c6e83e9
Add LocalFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
71c4e6746b
Begin implementing IFileSystem
2019-01-17 22:38:28 -06:00
Alex Barney
b5dc0e4afa
Fix AES-CMAC for partial array segments
2018-12-28 12:35:43 -07:00
Alex Barney
4c950ab231
Forgot to add the check for Mono
2018-12-23 13:33:27 -07:00
Alex Barney
10e62b5ee1
Fix AES-CMAC for incomplete blocks
2018-12-20 17:11:40 -06:00
Alex Barney
d29f7b27a7
Add Mono compatibility for RSA-PSS
2018-12-20 12:32:58 -06:00
Alex Barney
9c3ddf11fb
Version 0.2.0
2018-12-11 17:43:33 -06:00
Alex Barney
1b3a0363ce
hactoolnet: Add an option to replace a file in save data
2018-12-11 15:11:44 -06:00
Alex Barney
9e3c41ed2c
Add keepOpen parameter to AsStream and AsStorage
2018-12-11 13:59:46 -06:00
Alex Barney
b5c9e13df3
Rename SaveFS and Savefile classes
2018-12-11 13:59:35 -06:00
Alex Barney
4a65a5da20
Fix save data off-by-one error
2018-12-10 16:22:51 -06:00
Alex Barney
fa91eea11d
Modify Switch FS print options
2018-12-10 15:00:20 -06:00
Alex Barney
5a15118706
Use Aes128CtrTransform in DecryptRsaKey
2018-12-09 18:31:53 -06:00
Alex Barney
ac6d528a30
Make StorageStream check the read/write status of base Storages
2018-12-09 18:31:53 -06:00
Alex Barney
bb14125542
Add build script ( #20 )
2018-11-21 22:57:18 -05:00