Example #1
0
        /// <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);
            }
        }
Example #2
0
        /// <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);
            }
        }