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); } }