Exemple #1
0
        public void Dispose()
        {
            if (UnionChoice == UnionChoice.File)
            {
                using (var info = new WintrustFileInfo()) {
                    Marshal.PtrToStructure(InfoStruct, info);
                }

                Marshal.DestroyStructure(InfoStruct, typeof(WintrustFileInfo));
            }

            Marshal.FreeHGlobal(InfoStruct);
        }
Exemple #2
0
        private static uint WinVerifyTrust(string fileName)
        {
            var actionGenericVerifyV2 = new Guid("{00AAC56B-CD44-11d0-8CC2-00C04FC295EE}");

            using (var fileInfo = new WintrustFileInfo(fileName, Guid.Empty))
                using (var guidPtr = new UnmanagedPointer(Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Guid))), AllocMethod.HGlobal))
                    using (var dataPtr = new UnmanagedPointer(Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WintrustData))), AllocMethod.HGlobal)) {
                        var    data = new WintrustData(fileInfo);
                        IntPtr pGuid = guidPtr, pData = dataPtr;
                        Marshal.StructureToPtr(actionGenericVerifyV2, pGuid, true);
                        Marshal.StructureToPtr(data, pData, true);
                        return(WinVerifyTrust(IntPtr.Zero, pGuid, pData));
                    }
        }
Exemple #3
0
 public WintrustData(WintrustFileInfo fileInfo)
 {
     CbStruct   = (uint)Marshal.SizeOf(typeof(WintrustData));
     InfoStruct = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WintrustFileInfo)));
     Marshal.StructureToPtr(fileInfo, InfoStruct, false);
     UnionChoice        = UnionChoice.File;
     PolicyCallbackData = IntPtr.Zero;
     SipCallbackData    = IntPtr.Zero;
     UiChoice           = UiChoice.NoUi;
     RevocationChecks   = RevocationCheckFlags.None;
     StateAction        = StateAction.Ignore;
     StateData          = IntPtr.Zero;
     UrlReference       = IntPtr.Zero;
     ProviderFlags      = TrustProviderFlags.Safer;
     UiContext          = UiContext.Execute;
 }