From ef9ece38c27625ac3f7507b40a0a960753432e2c Mon Sep 17 00:00:00 2001 From: PowerShell Team Date: Wed, 6 Apr 2016 11:58:20 -0700 Subject: [PATCH] Update files from psl-monad This commit uses psl-monad branch source-depot 1ef187f49 And corresponds to [SD:693793] --- .../security/nativeMethods.cs | 70 +++++++++++++++++-- 1 file changed, 66 insertions(+), 4 deletions(-) diff --git a/src/System.Management.Automation/security/nativeMethods.cs b/src/System.Management.Automation/security/nativeMethods.cs index c08dfa39e..e20e69953 100644 --- a/src/System.Management.Automation/security/nativeMethods.cs +++ b/src/System.Management.Automation/security/nativeMethods.cs @@ -1973,10 +1973,51 @@ namespace System.Management.Automation.Security } } - /// - /// pinvoke methods from wintrust.dll - /// These are added to Generate and Validate Window Catalog Files - /// + // Constants needed for Catalog Error Handling + internal partial class NativeConstants + { + // CRYPTCAT_E_AREA_HEADER = "0x00000000"; + public const int CRYPTCAT_E_AREA_HEADER = 0; + + // CRYPTCAT_E_AREA_MEMBER = "0x00010000"; + public const int CRYPTCAT_E_AREA_MEMBER = 65536; + + // CRYPTCAT_E_AREA_ATTRIBUTE = "0x00020000"; + public const int CRYPTCAT_E_AREA_ATTRIBUTE = 131072; + + // CRYPTCAT_E_CDF_UNSUPPORTED = "0x00000001"; + public const int CRYPTCAT_E_CDF_UNSUPPORTED = 1; + + // CRYPTCAT_E_CDF_DUPLICATE = "0x00000002"; + public const int CRYPTCAT_E_CDF_DUPLICATE = 2; + + // CRYPTCAT_E_CDF_TAGNOTFOUND = "0x00000004"; + public const int CRYPTCAT_E_CDF_TAGNOTFOUND = 4; + + // CRYPTCAT_E_CDF_MEMBER_FILE_PATH = "0x00010001"; + public const int CRYPTCAT_E_CDF_MEMBER_FILE_PATH = 65537; + + // CRYPTCAT_E_CDF_MEMBER_INDIRECTDATA = "0x00010002"; + public const int CRYPTCAT_E_CDF_MEMBER_INDIRECTDATA = 65538; + + // CRYPTCAT_E_CDF_MEMBER_FILENOTFOUND = "0x00010004"; + public const int CRYPTCAT_E_CDF_MEMBER_FILENOTFOUND = 65540; + + // CRYPTCAT_E_CDF_BAD_GUID_CONV = "0x00020001"; + public const int CRYPTCAT_E_CDF_BAD_GUID_CONV = 131073; + + // CRYPTCAT_E_CDF_ATTR_TOOFEWVALUES = "0x00020002"; + public const int CRYPTCAT_E_CDF_ATTR_TOOFEWVALUES = 131074; + + // CRYPTCAT_E_CDF_ATTR_TYPECOMBO = "0x00020004"; + public const int CRYPTCAT_E_CDF_ATTR_TYPECOMBO = 131076; + + } + + /// + /// pinvoke methods from wintrust.dll + /// These are added to Generate and Validate Window Catalog Files + /// internal static partial class NativeMethods { [StructLayout(LayoutKind.Sequential)] @@ -2038,6 +2079,22 @@ namespace System.Management.Automation.Security DWORD dwReserved; }; + [StructLayout(LayoutKind.Sequential)] + internal struct CRYPTCATSTORE + { + DWORD cbStruct; + internal DWORD dwPublicVersion; + [MarshalAs(UnmanagedType.LPWStr)] + internal string pwszP7File; + IntPtr hProv; + DWORD dwEncodingType; + DWORD fdwStoreFlags; + IntPtr hReserved; + IntPtr hAttrs; + IntPtr hCryptMsg; + IntPtr hSorted; + }; + [DllImport("wintrust.dll", CharSet = CharSet.Unicode)] internal static extern IntPtr CryptCATCDFOpen( [MarshalAs(UnmanagedType.LPWStr)] @@ -2084,6 +2141,11 @@ namespace System.Management.Automation.Security IntPtr hCatalog ); + [DllImport("wintrust.dll", CharSet = CharSet.Unicode)] + internal static extern IntPtr CryptCATStoreFromHandle( + IntPtr hCatalog + ); + [DllImport("wintrust.dll", CharSet = CharSet.Unicode)] internal static extern bool CryptCATAdminAcquireContext2( ref IntPtr phCatAdmin,