// Copyright (C) Intel Corporation, 2010 All Rights Reserved. using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; namespace Intel.Management.Mei { /// /// Represents a Local Intel Management Engine Device /// [InterfaceType(ComInterfaceType.InterfaceIsDual)] [Guid("2DCE50E0-7AC4-40a1-B6F9-06A31F818574")] [ComVisible(true)] public interface IMeDevice { /// /// Gets a Local (OS Admin) Wsman Connection to the device /// Wsman.IWsmanConnection LocalConnection { get; } /// /// Enables AMT State Independence (Manageablity mode becomes AMT) /// bool Enable(); /// /// Gets basic discovery information /// bool Discover(); /// /// Starts remote configuration /// This will open the network interface for PKI provisioning /// bool StartRemoteConfiguration(string otp, bool enableIPv6); /// /// Gets the core version of the device /// IMeVersionInfo CoreVersion { get; } /// /// Gets a value that indicates the Setup status of the device /// MeSetupStatus SetupStatus { get; } /// /// Gets a specific code version of the device /// /// Specific code version string /// An IMeVersionInfo object containing version information IMeVersionInfo GetCodeVersion(string name); /// /// Gets the reported BIOS version of the device /// string BiosVersion { get; } /// /// Gets the Configuration Nonce for host setup signatures /// string ConfigurationNonce { get; } /// /// Returns the Digest Realm host master passwords /// string DigestRealm { get; } /// /// Unprovisions the ME using the local Driver /// /// This method is only support when in Client Control Mode. Use Wsman for other modes /// Returns true if sucessfull bool Unprovision(); /// /// Gets a list of active supported root hashes /// string[] ActiveHashes { get; } /// /// Gets a value that indicates if Client Control Mode is supported /// bool ClientControlSupported { get; } /// /// Gets a value that indicates if Host Based Configuration is supported /// bool HostConfigurationSupported { get; } /// /// Gets a value that indicates if Remote setup of the device is enabled /// bool RemoteConfigurationSupported { get; } SecureString CreateRandomPassword(int length); string GetPasswordHash(string user, string realm, SecureString password); } }