Commit graph

70 commits

Author SHA1 Message Date
Alex Barney
f7030aef4f Add a new KeySet class 2020-10-01 18:06:32 -07:00
Alex Barney
49711b12db Tweaks and cleanup for PR #164
- Fully span-ify CalculateCmac and update callers.
- Modify CalculateCmac signature to match Nintendo's.
- Avoid doing stackalloc based on an input length parameter.
- Use ReadOnlySpan instead of Span where appropriate.
- Standardize XML comments to use triple slashes.
- Make use of the entire rented buffer when copying.

Unrelated to the PR
- Slip in a missed enum to string conversion in hactoolnet for CoreRT reflection-free mode.
2020-09-05 21:10:39 -07:00
Xpl0itR
265147b678
Changes to CryptoOld
- Remove AES functions and replace references with functions from the Crypto.Aes class
- Edit and move the AES-CMAC function into the Crypto.Aes class
- Move BigInteger functions to the Utilities class
- Reduce duplication between the RSA functions
- Edit and move the Rsa parameter recovery function into the Crypto.Rsa class
2020-09-02 19:09:27 +01:00
Alex Barney
4552a2d94f Add permission checks to DeleteSaveDataFileSystem 2020-08-26 17:10:12 -07:00
Alex Barney
1f25b87d20 Add RegisterProgramIndexMapInfo shim and tests 2020-08-26 17:10:12 -07:00
Alex Barney
6496a2c1bc Honor permissions in OpenFileSystemWithId. Add basic AC test 2020-08-26 17:10:12 -07:00
Alex Barney
071b608f5f Tweak how the Horizon class and service manager work
- Store IServiceObjects in the service manager that return the usable objects instead of storing the objects directly
- Register FS services in the service manager instead of giving them special treatment
- Give each created HorizonClient its own "process ID"
2020-08-26 17:10:12 -07:00
Alex Barney
a005b40022 Build updates
Use the version in the .csproj if there is no local git repository.
Always use Windows line endings in codegen output.
Update build dependency versions. We're still using GitVersion 5.1.3 because of https://github.com/nuke-build/nuke/issues/509.
2020-08-15 23:34:48 -07:00
Alex Barney
81340027fc Rename FsService to FsSrv 2020-08-07 18:32:01 -07:00
Alex Barney
730167785e Add a few save data management tests 2020-08-07 10:02:50 -07:00
Alex Barney
c1b9eb8903 Change ref to in where possible in SaveDataIndexer and kvdb 2020-08-07 10:02:50 -07:00
Alex Barney
37251968c0 Add FlatMapKeyValueStore with tests 2020-08-07 10:02:50 -07:00
Alex Barney
717e54fe4e Rename TitleId to ProgramId and add other NCM ID types 2020-08-07 10:02:50 -07:00
Alex Barney
ff96c8575b Use "Result" and "Success" asserts in tests 2020-07-06 11:43:48 -07:00
Alex Barney
106c36492b Move IFileSystem etc. into fsa namespace 2020-06-09 22:55:59 -07:00
Alex Barney
ef1481b04c Replace old fsa classes with new ones 2020-06-07 15:23:51 -07:00
Alex Barney
064da36453 Rename old IFile option enums 2020-06-06 14:18:03 -07:00
Alex Barney
cb8b088487
Misc additions and warning fixes (#134)
* Run codegen and fix DeliveryCacheFileMetaEntry layout

* Use KipReader instead of Kip

* Ensure feature parity between U8String structs

* Don't use the obsolete Nacp class

* Add some null checks

* Address ReSharper warnings

* The Result structs should be readonly
2020-05-12 17:06:55 -07:00
Alex Barney
44e4c7a311
Add some fssystem utility functions and use them in DirectorySaveDataFileSystem (#133)
* Accurately implement DirectorySaveDataFileSystem

* DirectorySaveDataFileSystem updates from FS 10.0
2020-05-12 13:17:06 -07:00
Alex Barney
12775895eb Add non-system BCAT mount shim 2020-04-04 14:19:36 -07:00
Alex Barney
7bcb09b714 Add BIS shim functions with tests 2020-04-04 14:16:17 -07:00
Alex Barney
0e26c31a2f Enable OpenHostFileSystem in FileSystemProxy and add XML docs 2020-03-16 15:07:09 -07:00
Alex Barney
f7957b4cc8 Remove some old code 2020-03-14 23:27:49 -07:00
Alex Barney
328968c630 Use U8Span more in FilleSystemClient 2020-03-09 00:06:39 -07:00
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
7ce9ea09e6 Misc build updates 2020-02-29 01:36:23 -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
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
ac3c496018 Run common tests on xts and subdir filesystems 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
9034c54318 Refactor the Result struct 2020-01-26 15:34:26 -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
857bde67ee Simplify CoreRT build 2020-01-17 00:20:24 -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
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
526864c456 Update build and test dependencies 2019-11-26 20:47:05 -06:00
Alex Barney
1aa5c9438e Add Sha256Generator 2019-11-26 18:13:30 -06: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
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
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