/// <summary>
        /// Parsing header data from encrypted file.
        /// <param name="data">Raw data.</param>
        /// <param name="offset">Offset from the start of the raw data <see cref="byte"/>[].</param>
        /// </summary>
        public void ParseStandardInformation(byte[] data, int offset)
        {
            if (data.Length < offset)
            {
                throw new Exception("File is corrupted.");
            }

            //                                                                                              position
            Type = (AttributeType)BitConverter.ToUInt32(data, offset);                                  //      0

            if (Type != AttributeType.STANDARD_INFORMATION)
            {
                throw new Exception("File is corrupted.");
            }

            TotalLength = BitConverter.ToUInt32(data, offset + 4);                                      //      4

            CreationTime = EnigmaEfsUtility.ConverteToWinTime(data, offset + 8);                        //      8
            OwnerId      = BitConverter.ToUInt32(data, offset + 16);                                    //     16

            AlteredTime = EnigmaEfsUtility.ConverteToWinTime(data, offset + 20);                        //     20
            ATimeUserId = BitConverter.ToUInt32(data, offset + 28);                                     //     28

            ReadTime    = EnigmaEfsUtility.ConverteToWinTime(data, offset + 32);                        //     32
            RTimeUserId = BitConverter.ToUInt32(data, offset + 40);                                     //     40
        }