public bool FillHeaderData(byte[] data)
        {
            int    len = Marshal.SizeOf(Signature.GetType());
            IntPtr @in = Marshal.AllocHGlobal(len);

            Marshal.Copy(data, 0, @in, len);
            Signature = (RpmStruct.RPMSignature)Marshal.PtrToStructure(@in, Signature.GetType());
            Marshal.FreeHGlobal(@in);
            unchecked
            {
                Signature.bytesDataCount = (int)(((uint)Signature.bytesDataCount).ReverseBytes());
                Signature.entryCount     = (int)(((uint)Signature.entryCount).ReverseBytes());
                byte[] buffer = new byte[RpmStruct.RPM_MAGIC_SIGNATURE_NUMBER.Length];
                unsafe
                {
                    fixed(byte *ptr = Signature.magic)
                    {
                        int i = 0;

                        for (byte *d = ptr; i < RpmStruct.RPM_MAGIC_SIGNATURE_NUMBER.Length; ++i, ++d)
                        {
                            buffer[i] = *d;
                        }
                    }
                }
                return(ByteArrayCompare(buffer, RpmStruct.RPM_MAGIC_SIGNATURE_NUMBER));
            }
        }
 public bool FillHeaderData(byte[] data)
 {
     int len = Marshal.SizeOf(Signature.GetType());
     IntPtr @in = Marshal.AllocHGlobal(len);
     Marshal.Copy(data, 0, @in, len);
     Signature = (RpmStruct.RPMSignature)Marshal.PtrToStructure(@in, Signature.GetType());
     Marshal.FreeHGlobal(@in);
     unchecked
     {
         Signature.bytesDataCount = (int)(((uint)Signature.bytesDataCount).ReverseBytes());
         Signature.entryCount = (int)(((uint)Signature.entryCount).ReverseBytes());
         byte[] buffer = new byte[RpmStruct.RPM_MAGIC_SIGNATURE_NUMBER.Length];
         unsafe
         {
             fixed (byte* ptr = Signature.magic)
             {
                 int i = 0;
                 for (byte* d = ptr; i < RpmStruct.RPM_MAGIC_SIGNATURE_NUMBER.Length; ++i, ++d)
                 {
                     buffer[i] = *d;
                 }
             }
         }
         return ByteArrayCompare(buffer, RpmStruct.RPM_MAGIC_SIGNATURE_NUMBER);
     }
 }