/// <summary> /// Read from a stream and get access control info, if possible /// </summary> /// <param name="reader">BinaryReader representing the input stream</param> /// <returns>Access control info object, null on error</returns> public static AccessControlInfo Read(BinaryReader reader) { AccessControlInfo aci = new AccessControlInfo(); try { aci.ARM11LocalSystemCapabilities = ARM11LocalSystemCapabilities.Read(reader); aci.ARM11KernelCapabilities = ARM11KernelCapabilities.Read(reader); aci.ARM9AccessControl = ARM9AccessControl.Read(reader); return(aci); } catch { return(null); } }
/// <summary> /// Read from a stream and get a CXI extended header, if possible /// </summary> /// <param name="reader">BinaryReader representing the input stream</param> /// <returns>CXI extended header object, null on error</returns> public static CXIExtendedHeader Read(BinaryReader reader) { CXIExtendedHeader header = new CXIExtendedHeader(); try { header.SCI = SystemControlInfo.Read(reader); header.ACI = AccessControlInfo.Read(reader); header.AccessDescSignature = reader.ReadBytes(0x100); header.NCCHHDRPublicKey = reader.ReadBytes(0x100); header.ACIForLimitations = AccessControlInfo.Read(reader); return(header); } catch { return(null); } }