Ejemplo n.º 1
0
        public WINTRUST_DATA(WINTRUST_FILE_INFO fileInfo)
        {
            cbStruct = (uint)Marshal.SizeOf(typeof(WINTRUST_DATA));

            pInfoStruct = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WINTRUST_FILE_INFO)));

            Marshal.StructureToPtr(fileInfo, pInfoStruct, false);

            dwUnionChoice = UnionChoice.File;


            pPolicyCallbackData = IntPtr.Zero;

            pSIPCallbackData = IntPtr.Zero;


            dwUIChoice = UiChoice.NoUI;

            fdwRevocationChecks = RevocationCheckFlags.None;

            dwStateAction = StateAction.Ignore;

            hWVTStateData = IntPtr.Zero;

            pwszURLReference = IntPtr.Zero;

            dwProvFlags = TrustProviderFlags.Safer;


            dwUIContext = UIContext.Execute;
        }
Ejemplo n.º 2
0
        private static uint WinVerifyTrust(string fileName)
        {
            var  wintrust_action_generic_verify_v2 = new Guid("{00AAC56B-CD44-11d0-8CC2-00C04FC295EE}");
            uint result = 0;

            using (var fileInfo = new WINTRUST_FILE_INFO(fileName,
                                                         Guid.Empty))
                using (var guidPtr = new UnmanagedPointer(Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Guid))),
                                                          AllocMethod.HGlobal))
                    using (var wvtDataPtr = new UnmanagedPointer(Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WINTRUST_DATA))),
                                                                 AllocMethod.HGlobal))
                    {
                        var    data  = new WINTRUST_DATA(fileInfo);
                        IntPtr pGuid = guidPtr;
                        IntPtr pData = wvtDataPtr;
                        Marshal.StructureToPtr(wintrust_action_generic_verify_v2,
                                               pGuid,
                                               true);
                        Marshal.StructureToPtr(data,
                                               pData,
                                               true);
                        result = WinVerifyTrust(IntPtr.Zero,
                                                pGuid,
                                                pData);
                    }
            return(result);
        }
Ejemplo n.º 3
0
        private void Dispose(bool disposing)
        {
            if (dwUnionChoice == UnionChoice.File)
            {
                var info = new WINTRUST_FILE_INFO();

                Marshal.PtrToStructure(pInfoStruct, info);

                info.Dispose();

                Marshal.DestroyStructure(pInfoStruct, typeof(WINTRUST_FILE_INFO));
            }


            Marshal.FreeHGlobal(pInfoStruct);
        }
Ejemplo n.º 4
0
        public WINTRUST_DATA(WINTRUST_FILE_INFO fileInfo)
        {
            cbStruct = (uint) Marshal.SizeOf(typeof (WINTRUST_DATA));

            pInfoStruct = Marshal.AllocHGlobal(Marshal.SizeOf(typeof (WINTRUST_FILE_INFO)));

            Marshal.StructureToPtr(fileInfo, pInfoStruct, false);

            dwUnionChoice = UnionChoice.File;

            pPolicyCallbackData = IntPtr.Zero;

            pSIPCallbackData = IntPtr.Zero;

            dwUIChoice = UiChoice.NoUI;

            fdwRevocationChecks = RevocationCheckFlags.None;

            dwStateAction = StateAction.Ignore;

            hWVTStateData = IntPtr.Zero;

            pwszURLReference = IntPtr.Zero;

            dwProvFlags = TrustProviderFlags.Safer;

            dwUIContext = UIContext.Execute;
        }
Ejemplo n.º 5
0
 private static uint WinVerifyTrust(string fileName)
 {
     var wintrust_action_generic_verify_v2 = new Guid("{00AAC56B-CD44-11d0-8CC2-00C04FC295EE}");
     uint result = 0;
     using (var fileInfo = new WINTRUST_FILE_INFO(fileName,
         Guid.Empty))
     using (var guidPtr = new UnmanagedPointer(Marshal.AllocHGlobal(Marshal.SizeOf(typeof (Guid))),
         AllocMethod.HGlobal))
     using (var wvtDataPtr = new UnmanagedPointer(Marshal.AllocHGlobal(Marshal.SizeOf(typeof (WINTRUST_DATA))),
         AllocMethod.HGlobal))
     {
         var data = new WINTRUST_DATA(fileInfo);
         IntPtr pGuid = guidPtr;
         IntPtr pData = wvtDataPtr;
         Marshal.StructureToPtr(wintrust_action_generic_verify_v2,
             pGuid,
             true);
         Marshal.StructureToPtr(data,
             pData,
             true);
         result = WinVerifyTrust(IntPtr.Zero,
             pGuid,
             pData);
     }
     return result;
 }
Ejemplo n.º 6
0
        private void Dispose(bool disposing)
        {
            if (dwUnionChoice == UnionChoice.File)
            {
                var info = new WINTRUST_FILE_INFO();

                Marshal.PtrToStructure(pInfoStruct, info);

                info.Dispose();

                Marshal.DestroyStructure(pInfoStruct, typeof (WINTRUST_FILE_INFO));
            }

            Marshal.FreeHGlobal(pInfoStruct);
        }