using System;
namespace Lithnet.CredentialProvider
{
[Flags]
public enum ConsentUIFlags
{
SkipSignatureVerification = 0x01,
///
/// Indicates to ConsentUI that it needs to switch to the Secure Desktop
///
SecureDesktop = 0x02,
Unknown1 = 0x04,
Unknown2 = 0x08,
Unknown3 = 0x10,
///
/// This flag seems to cause ConsentUI to
/// skip all signature verification related code.
///
SkipVerification = 0x20,
///
/// Indicates that the executable file is contained within a Windows directory.
/// As all the executables in System32, etc. are unsigned, ConsentUI
/// uses this to toggle catalog verification, if required.
///
InWindowsDirectory = 0x40,
///
/// Seems to indicates to ConsentUI that automatic elevation should occur,
/// and that the executable is in a safe Windows location
///
AutoElevationWindows = 0x80,
///
/// Like `AutoElevationWindows`, this seems indicates to ConsentUI that
/// automatic elevation should occur, but that further verification
/// inside ConsentUI should occur.
///
AutoElevationOther = 0x100,
Unknown4 = 0x200,
///
/// ConsentUI uses this flag to determine if it should pass
/// SIF_BASE_VERIFICATION | SIF_AUTHENTICODE_SIGNED to WTGetSignatureInfo
///
PerformBaseVerification = 0x400,
///
/// Indicates that the publisher is untrusted - this is what seems to trigger
/// an AMSI scan (i.e., SmartScreen)
///
UntrustedPublisher = 0x800,
///
/// This flag seems to cause ConsentUI to skip all elevation-related code and exit.
///
BlockElevation = 0x1000,
///
/// Corresponds to `ConsentUIElevationType.AutomaticAdmin`
/// This seems to be an instance where UAC creates a local, secondary
/// account called '%username%_admin' which is used to elevate a process.
///
AutomaticAdminMode = 0x2000
}
}