aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Ryujinx.HLE/HOS/Services/Ro/Types/NRRCertification.cs23
-rw-r--r--Ryujinx.HLE/HOS/Services/Ro/Types/NrrHeader.cs30
2 files changed, 41 insertions, 12 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Ro/Types/NRRCertification.cs b/Ryujinx.HLE/HOS/Services/Ro/Types/NRRCertification.cs
new file mode 100644
index 00000000..a95f44f8
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ro/Types/NRRCertification.cs
@@ -0,0 +1,23 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Ro
+{
+ [StructLayout(LayoutKind.Explicit, Size = 0x220)]
+ unsafe struct NRRCertification
+ {
+ [FieldOffset(0)]
+ public ulong ApplicationIdMask;
+
+ [FieldOffset(0x8)]
+ public ulong ApplicationIdPattern;
+
+ [FieldOffset(0x10)]
+ public fixed byte Reserved[0x10];
+
+ [FieldOffset(0x20)]
+ public fixed byte Modulus[0x100];
+
+ [FieldOffset(0x120)]
+ public fixed byte Signature[0x100];
+ }
+}
diff --git a/Ryujinx.HLE/HOS/Services/Ro/Types/NrrHeader.cs b/Ryujinx.HLE/HOS/Services/Ro/Types/NrrHeader.cs
index ec06feb4..af692628 100644
--- a/Ryujinx.HLE/HOS/Services/Ro/Types/NrrHeader.cs
+++ b/Ryujinx.HLE/HOS/Services/Ro/Types/NrrHeader.cs
@@ -1,4 +1,4 @@
-using System.Runtime.InteropServices;
+using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Services.Ro
{
@@ -8,31 +8,37 @@ namespace Ryujinx.HLE.HOS.Services.Ro
[FieldOffset(0)]
public uint Magic;
- [FieldOffset(0x10)]
- public ulong TitleIdMask;
-
- [FieldOffset(0x18)]
- public ulong TitleIdPattern;
+ [FieldOffset(0x4)]
+ public uint CertificationSignatureKeyGeneration; // 9.0.0+
- [FieldOffset(0x30)]
- public fixed byte Modulus[0x100];
+ [FieldOffset(0x8)]
+ public ulong Reserved;
- [FieldOffset(0x130)]
- public fixed byte FixedKeySignature[0x100];
+ [FieldOffset(0x10)]
+ public NRRCertification Certification;
[FieldOffset(0x230)]
public fixed byte NrrSignature[0x100];
[FieldOffset(0x330)]
- public ulong TitleIdMin;
+ public ulong TitleId;
[FieldOffset(0x338)]
public uint NrrSize;
+ [FieldOffset(0x33C)]
+ public byte Type; // 7.0.0+
+
+ [FieldOffset(0x33D)]
+ public fixed byte Reserved2[0x3];
+
[FieldOffset(0x340)]
public uint HashOffset;
[FieldOffset(0x344)]
public uint HashCount;
+
+ [FieldOffset(0x348)]
+ public ulong Reserved3;
}
-} \ No newline at end of file
+}