diff options
author | Alex Barney <thealexbarney@gmail.com> | 2021-12-23 09:55:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-23 13:55:50 -0300 |
commit | aa932a6df1764b7c600ae0ba4e0c7a0ba802f312 (patch) | |
tree | 24a390cf2330620aeeab1efbd42ae4099f61ca86 /Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs | |
parent | cb43cc7e322014ce2bd0ee73b06d403be62fa8d5 (diff) |
Update to LibHac v0.14.3 (#2925)
* Update to LibHac v0.14.3
* Fix loading NCAs that don't have a data partition
Diffstat (limited to 'Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs')
-rw-r--r-- | Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs b/Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs index f8e59fb5..60c3cfdb 100644 --- a/Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs +++ b/Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs @@ -3,25 +3,23 @@ using LibHac.Common; using LibHac.Fs; using LibHac.Fs.Fsa; using LibHac.FsSrv.FsCreator; -using LibHac.FsSystem; namespace Ryujinx.HLE.FileSystem { public class EncryptedFileSystemCreator : IEncryptedFileSystemCreator { - public Result Create(out ReferenceCountedDisposable<IFileSystem> encryptedFileSystem, ReferenceCountedDisposable<IFileSystem> baseFileSystem, - EncryptedFsKeyId keyId, in EncryptionSeed encryptionSeed) - { - UnsafeHelpers.SkipParamInit(out encryptedFileSystem); - if (keyId < EncryptedFsKeyId.Save || keyId > EncryptedFsKeyId.CustomStorage) + public Result Create(ref SharedRef<IFileSystem> outEncryptedFileSystem, + ref SharedRef<IFileSystem> baseFileSystem, IEncryptedFileSystemCreator.KeyId idIndex, + in EncryptionSeed encryptionSeed) + { + if (idIndex < IEncryptedFileSystemCreator.KeyId.Save || idIndex > IEncryptedFileSystemCreator.KeyId.CustomStorage) { return ResultFs.InvalidArgument.Log(); } - // Force all-zero keys for now since people can open the emulator with different keys or sd seeds sometimes - var fs = new AesXtsFileSystem(baseFileSystem, new byte[0x32], 0x4000); - encryptedFileSystem = new ReferenceCountedDisposable<IFileSystem>(fs); + // Todo: Reenable when AesXtsFileSystem is fixed + outEncryptedFileSystem = SharedRef<IFileSystem>.CreateMove(ref baseFileSystem); return Result.Success; } |