From aa932a6df1764b7c600ae0ba4e0c7a0ba802f312 Mon Sep 17 00:00:00 2001
From: Alex Barney <thealexbarney@gmail.com>
Date: Thu, 23 Dec 2021 09:55:50 -0700
Subject: Update to LibHac v0.14.3 (#2925)

* Update to LibHac v0.14.3

* Fix loading NCAs that don't have a data partition
---
 Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

(limited to 'Ryujinx.HLE/FileSystem/EncryptedFileSystemCreator.cs')

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;
         }
-- 
cgit v1.2.3-70-g09d2