104 lines
3.3 KiB
C#

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