837 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			837 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*********************************************************************
 | |
| * Copyright (c) Intel Corporation 2011 - 2020
 | |
| * SPDX-License-Identifier: Apache-2.0
 | |
| **********************************************************************/
 | |
| 
 | |
| #ifndef _MINCORE
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| //
 | |
| //  File:       PTHICommand.h
 | |
| //
 | |
| //  Contents:   header file of PTHICommand class
 | |
| //
 | |
| //----------------------------------------------------------------------------
 | |
| #ifndef __PTHI_COMMAND_H__
 | |
| #define __PTHI_COMMAND_H__
 | |
| 
 | |
| #include "StatusCodeDefinitions.h"
 | |
| 
 | |
| #ifdef WIN32
 | |
| #include <windows.h>
 | |
| #include "HECIwin.h"
 | |
| #endif
 | |
| 
 | |
| #ifdef _POSIX
 | |
| #include "HECILinux.h"
 | |
| #endif
 | |
| #define CERT_HASH_MAX_LENGTH                    64
 | |
| #define CERT_HASH_MAX_NUMBER                    23
 | |
| #define NET_TLS_CERT_PKI_MAX_SERIAL_NUMS        3
 | |
| #define NET_TLS_CERT_PKI_MAX_SERIAL_NUM_LENGTH  16
 | |
| #define MPS_HOSTNAME_LENGTH                     256
 | |
| 
 | |
| #define CFG_MAX_ACL_USER_LENGTH 33
 | |
| #define CFG_MAX_ACL_PWD_LENGTH 33
 | |
| 
 | |
| #pragma pack(1)
 | |
| typedef struct _LOCAL_SYSTEM_ACCOUNT
 | |
| {
 | |
| 	// contain null terminated string
 | |
|  	char username[CFG_MAX_ACL_USER_LENGTH];
 | |
| 	// contain null terminated string
 | |
| 	char password[CFG_MAX_ACL_PWD_LENGTH];
 | |
| }LOCAL_SYSTEM_ACCOUNT;
 | |
| #pragma pack()
 | |
| 
 | |
| /*
 | |
| * Constants
 | |
| */
 | |
| 
 | |
| /*
 | |
| static #define IDER_LOG_ENTRIES = 16;
 | |
| 
 | |
| const UINT8 MAJOR_VERSION = 1;
 | |
| const UINT8 MINOR_VERSION = 1;
 | |
| const UINT8 AMT_MAJOR_VERSION = 1;
 | |
| const UINT8 AMT_MINOR_VERSION = 1;
 | |
| */
 | |
| 
 | |
| #define IDER_LOG_ENTRIES 16
 | |
| 
 | |
| #define MAJOR_VERSION 1
 | |
| #define MINOR_VERSION 1
 | |
| #define AMT_MAJOR_VERSION 1
 | |
| #define AMT_MINOR_VERSION 1
 | |
| 
 | |
| typedef enum _CFG_PROVISIONING_MODE
 | |
| {
 | |
| 	CFG_PROVISIONING_MODE_NONE = 0,
 | |
| 	CFG_PROVISIONING_MODE_ENTERPRISE,
 | |
| 	CFG_PROVISIONING_MODE_SMALL_BUSINESS,
 | |
| 	CFG_PROVISIONING_MODE_REMOTE_ASSISTANCE
 | |
| } CFG_PROVISIONING_MODE;
 | |
| 
 | |
| typedef enum _AMT_PROVISIONING_STATE
 | |
| {
 | |
| 	PROVISIONING_STATE_PRE = 0,
 | |
| 	PROVISIONING_STATE_IN = 1,
 | |
| 	PROVISIONING_STATE_POST = 2
 | |
| } AMT_PROVISIONING_STATE;
 | |
| 
 | |
| typedef enum _AMT_EHBC_STATE
 | |
| {
 | |
| 	EHBC_STATE_DISABLED = 0,
 | |
| 	EHBC_STATE_ENABLED = 1
 | |
| } AMT_EHBC_STATE;
 | |
| 
 | |
| typedef enum _AMT_FEATURE_STATE_REQUEST
 | |
| {
 | |
| 	REDIRECTION_SESSION = 0,
 | |
| 	SYSTEM_DEFENSE = 1,
 | |
| 	WEB_UI = 2
 | |
| } AMT_FEATURE_STATE_REQUEST;
 | |
| 
 | |
| typedef enum _AMT_LAST_HOST_RESET_REASON
 | |
| {
 | |
| 	RemoteControl = 0,
 | |
| 	Other = 1
 | |
| } AMT_LAST_HOST_RESET_REASON;
 | |
| 
 | |
| typedef enum _AMT_INTERFACE_INDEX
 | |
| {
 | |
| 	WIRED = 0,
 | |
| 	WIRELESS = 1
 | |
| } AMT_INTERFACE_INDEX;
 | |
| 
 | |
| typedef enum _AMT_DHCP_IP_ADDRESS
 | |
| {
 | |
| 	ACTIVE = 1,
 | |
| 	PASSIVE = 2
 | |
| } AMT_DHCP_IP_MODE;
 | |
| 
 | |
| //typedef UINT32 CFG_IPv4_ADDRESS
 | |
| 
 | |
| #define CFG_IPv4_ADDRESS UINT32
 | |
| 
 | |
| /*
 | |
| static #define BIOS_VERSION_LEN = 65;
 | |
| static #define VERSIONS_NUMBER = 50;
 | |
| static #define UNICODE_STRING_LEN = 20;
 | |
| */
 | |
| 
 | |
| #define BIOS_VERSION_LEN 65
 | |
| #define VERSIONS_NUMBER 50
 | |
| #define UNICODE_STRING_LEN 20
 | |
| 
 | |
| typedef enum _AMT_PROVISIONING_TLS_MODE
 | |
| {
 | |
| 	NOT_READY = 0,
 | |
| 	PSK  = 1,
 | |
| 	PKI  = 2
 | |
| } AMT_PROVISIONING_TLS_MODE;
 | |
| 
 | |
| typedef enum _AMT_RNG_STATUS
 | |
| {
 | |
| 	RNG_STATUS_EXIST  = 0,
 | |
| 	RNG_STATUS_IN_PROGRESS = 1,
 | |
| 	RNG_STATUS_NOT_EXIST = 2
 | |
| } AMT_RNG_STATUS;
 | |
| 
 | |
| #pragma pack(1)
 | |
| 
 | |
| typedef struct _AMT_UNICODE_STRING
 | |
| {
 | |
| 	UINT16 Length;
 | |
| 	UINT8 String[UNICODE_STRING_LEN];
 | |
| } AMT_UNICODE_STRING;
 | |
| 
 | |
| typedef struct _AMT_VERSION_TYPE
 | |
| {
 | |
| 	AMT_UNICODE_STRING Description;
 | |
| 	AMT_UNICODE_STRING Version;
 | |
| } AMT_VERSION_TYPE;
 | |
| 
 | |
| typedef struct _PTHI_VERSION
 | |
| {
 | |
| 	UINT8 MajorNumber;
 | |
| 	UINT8 MinorNumber;
 | |
| } PTHI_VERSION;
 | |
| 
 | |
| typedef struct _CODE_VERSIONS
 | |
| {
 | |
| 	UINT8 BiosVersion[BIOS_VERSION_LEN];
 | |
| 	UINT32 VersionsCount;
 | |
| 	AMT_VERSION_TYPE Versions[VERSIONS_NUMBER];
 | |
| } CODE_VERSIONS;
 | |
| 
 | |
| typedef struct _COMMAND_FMT
 | |
| {
 | |
| 	union
 | |
| 	{
 | |
| 		UINT32 val;
 | |
| 		struct
 | |
| 		{
 | |
| 			UINT32 Operation : 23;
 | |
| 			UINT32 IsResponse : 1;
 | |
| 			UINT32 Class : 8;
 | |
| 		} fields;
 | |
| 	} cmd;
 | |
| 
 | |
| } COMMAND_FMT;
 | |
| 
 | |
| typedef struct _AMT_ANSI_STRING
 | |
| {
 | |
| 	UINT16 Length;
 | |
| 	CHAR  *Buffer;
 | |
| } AMT_ANSI_STRING;
 | |
| 
 | |
| typedef struct _PTHI_MESSAGE_HEADER
 | |
| {
 | |
| 	PTHI_VERSION Version;
 | |
| 	UINT16 Reserved;
 | |
| 	COMMAND_FMT Command;
 | |
| 	UINT32 Length;
 | |
| } PTHI_MESSAGE_HEADER;
 | |
| 
 | |
| typedef struct _PTHI_RESPONSE_MESSAGE_HEADER
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| 	AMT_STATUS Status;
 | |
| } PTHI_RESPONSE_MESSAGE_HEADER;
 | |
| 
 | |
| typedef struct _CFG_GET_CODE_VERSIONS_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	CODE_VERSIONS CodeVersions;
 | |
| } CFG_GET_CODE_VERSIONS_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_PROVISIONING_MODE_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	CFG_PROVISIONING_MODE ProvisioningMode;
 | |
| 	AMT_BOOLEAN LegacyMode;
 | |
| } CFG_GET_PROVISIONING_MODE_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_PROVISIONING_STATE_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_PROVISIONING_STATE ProvisioningState;
 | |
| } CFG_GET_PROVISIONING_STATE_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_MAC_ADDRESSES_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	UINT8 DedicatedMac[6];
 | |
| 	UINT8 HostMac[6];
 | |
| } CFG_GET_MAC_ADDRESSES_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_FEATURES_STATE_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| 	UINT32 RequestID;
 | |
| } CFG_GET_FEATURES_STATE_REQUEST;
 | |
| 
 | |
| typedef struct _GET_FEATURES_REDIRECTION_SESSION_STATUS
 | |
| {
 | |
| 	AMT_BOOLEAN IderOpen;
 | |
| 	AMT_BOOLEAN SolOpen;
 | |
| 	AMT_BOOLEAN Reserved;
 | |
| } GET_FEATURES_REDIRECTION_SESSION_STATUS;
 | |
| 
 | |
| typedef struct _GET_FEATURES_SYSTEM_DEFENSE_STATE_RESPONSE
 | |
| {
 | |
| 	AMT_BOOLEAN SystemDefenseActivated;
 | |
| } GET_FEATURES_SYSTEM_DEFENSE_STATUS_RESPONSE;
 | |
| 
 | |
| typedef struct _GET_FEATURES_WEB_UI_STATE_RESPONSE
 | |
| {
 | |
| 	AMT_BOOLEAN WebUiEnabled;
 | |
| } GET_FEATURES_WEB_UI_STATUS_RESPONSE;
 | |
| 
 | |
| typedef union _FEATURES_STATUS_DATA
 | |
| {
 | |
| 	GET_FEATURES_REDIRECTION_SESSION_STATUS rs;
 | |
| 	GET_FEATURES_SYSTEM_DEFENSE_STATUS_RESPONSE sd;
 | |
| 	GET_FEATURES_WEB_UI_STATUS_RESPONSE webUI;
 | |
| } FEATURES_STATUS_DATA;
 | |
| 
 | |
| typedef struct _CFG_GET_FEATURES_STATE_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	UINT32 RequestID;
 | |
| 	FEATURES_STATUS_DATA Data;
 | |
| } CFG_GET_FEATURES_STATE_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_CURRENT_POWER_POLICY_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| } CFG_GET_CURRENT_POWER_POLICY_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_CURRENT_POWER_POLICY_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_ANSI_STRING PolicyName;
 | |
| } CFG_GET_CURRENT_POWER_POLICY_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_LAST_HOST_RESET_REASON_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| } CFG_GET_LAST_HOST_RESET_REASON_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_LAST_HOST_RESET_REASON_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	UINT32 Reason;
 | |
| 	UINT32 RemoteControlTimeStamp;
 | |
| } CFG_GET_LAST_HOST_RESET_REASON_RESPONSE;
 | |
| 
 | |
| typedef struct _LAN_SETTINGS
 | |
| {
 | |
| 	AMT_BOOLEAN Enabled;
 | |
| 	CFG_IPv4_ADDRESS Ipv4Address;
 | |
| 	AMT_BOOLEAN DhcpEnabled;
 | |
| 	UINT8 DhcpIpMode;
 | |
| 	UINT8 LinkStatus;
 | |
| 	UINT8 MacAddress[6];
 | |
| } LAN_SETTINGS;
 | |
| 
 | |
| typedef struct _CFG_GET_LAN_INTERFACE_SETTINGS_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| 	UINT32 InterfaceIndex;
 | |
| } CFG_GET_LAN_INTERFACE_SETTINGS_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_LAN_INTERFACE_SETTINGS_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_BOOLEAN Enabled;
 | |
| 	CFG_IPv4_ADDRESS Ipv4Address;
 | |
| 	AMT_BOOLEAN DhcpEnabled;
 | |
| 	UINT8 DhcpIpMode;
 | |
| 	UINT8 LinkStatus;
 | |
| 	UINT8 MacAddress[6];
 | |
| } CFG_GET_LAN_INTERFACE_SETTINGS_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_SECURITY_PARAMETERS_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| } CFG_GET_SECURITY_PARAMETERS_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_SECURITY_PARAMETERS_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_BOOLEAN EnterpriseMode;
 | |
| 	AMT_BOOLEAN TLSEnabled;
 | |
| 	AMT_BOOLEAN HWCryptoEnabled;
 | |
| 	AMT_PROVISIONING_STATE ProvisioningState;
 | |
| 	AMT_BOOLEAN NetworkInterfaceEnabled;
 | |
| 	AMT_BOOLEAN SOLEnabled;
 | |
| 	AMT_BOOLEAN IDEREnabled;
 | |
| 	AMT_BOOLEAN FWUpdateEnabled;
 | |
| 	AMT_BOOLEAN LinkIsUp;
 | |
| 	AMT_BOOLEAN Reserved[8];
 | |
| } CFG_GET_SECURITY_PARAMETERS_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_DNS_SUFFIX_LIST_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| } CFG_GET_DNS_SUFFIX_LIST_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_DNS_SUFFIX_LIST_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	UINT16 DataLength;
 | |
| 	UINT8 Data[0];
 | |
| } CFG_GET_DNS_SUFFIX_LIST_RESPONSE;
 | |
| 
 | |
| /**
 | |
|  * CFG_SET_ENTERPRISE_ACCESS_REQUEST
 | |
|  *
 | |
|  * Flags	Bit 0 - If this bit is set then HostIPAddress is IPv6, otherwise HostIPAddress is IPv4 address.
 | |
|  *          Bits 1..7 - Reserved, should be zero.
 | |
|  * HostIPAddress	IPv4 / IPv6 address
 | |
|  * EnterpriseAccess	1 if LMS has access to enterprise network, otherwise 0.
 | |
|  */
 | |
| typedef struct _CFG_SET_ENTERPRISE_ACCESS_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| 	UINT8 Flags;
 | |
| 	UINT8 HostIPAddress[16];
 | |
| 	UINT8 EnterpriseAccess;
 | |
| } CFG_SET_ENTERPRISE_ACCESS_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_SET_ENTERPRISE_ACCESS_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| } CFG_SET_ENTERPRISE_ACCESS_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_OPEN_USER_INITIATED_CONNECTION_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER     Header;
 | |
| } CFG_OPEN_USER_INITIATED_CONNECTION_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_OPEN_USER_INITIATED_CONNECTION_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER     Header;
 | |
| } CFG_OPEN_USER_INITIATED_CONNECTION_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_CLOSE_USER_INITIATED_CONNECTION_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER     Header;
 | |
| } CFG_CLOSE_USER_INITIATED_CONNECTION_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_CLOSE_USER_INITIATED_CONNECTION_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER     Header;
 | |
| } CFG_CLOSE_USER_INITIATED_CONNECTION_RESPONSE;
 | |
| 
 | |
| typedef enum
 | |
| {
 | |
| 	AMT_NETWORK_CONNECTION_DIRECT = 0,
 | |
| 	AMT_NETWORK_CONNECTION_VPN,
 | |
| 	AMT_NETWORK_CONNECTION_OUTSIDE_ENTERPRISE
 | |
| } AMT_NETWORK_CONNECTION_STATUS;
 | |
| 
 | |
| typedef enum
 | |
| {
 | |
| 	REMOTE_ACCESS_CONNECTION_STATUS_NOT_CONNECTED = 0,
 | |
| 	REMOTE_ACCESS_CONNECTION_STATUS_CONNECTING,
 | |
| 	REMOTE_ACCESS_CONNECTION_STATUS_CONNECTED
 | |
| } REMOTE_ACCESS_CONNECTION_STATUS;
 | |
| 
 | |
| typedef enum
 | |
| {
 | |
| 	REMOTE_ACCESS_CONNECTION_TRIGGER_USER_INITIATED = 0,
 | |
| 	REMOTE_ACCESS_CONNECTION_TRIGGER_ALERT,
 | |
| 	REMOTE_ACCESS_CONNECTION_TRIGGER_PROVISIONING,
 | |
| 	REMOTE_ACCESS_CONNECTION_TRIGGER_PERIODIC
 | |
| } REMOTE_ACCESS_CONNECTION_TRIGGER;
 | |
| 
 | |
| typedef struct _CFG_GET_REMOTE_ACCESS_CONNECTION_STATUS_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER     Header;
 | |
| } CFG_GET_REMOTE_ACCESS_CONNECTION_STATUS_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_REMOTE_ACCESS_CONNECTION_STATUS_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER     Header;
 | |
| 	AMT_NETWORK_CONNECTION_STATUS    AmtNetworkConnectionStatus;
 | |
| 	REMOTE_ACCESS_CONNECTION_STATUS  RemoteAccessConnectionStatus;
 | |
| 	REMOTE_ACCESS_CONNECTION_TRIGGER RemoteAccessConnectionTrigger;
 | |
| 	AMT_ANSI_STRING MpsHostname;
 | |
| } CFG_GET_REMOTE_ACCESS_CONNECTION_STATUS_RESPONSE;
 | |
| 
 | |
| typedef struct _REMOTE_ACCESS_STATUS
 | |
| {
 | |
| 	AMT_NETWORK_CONNECTION_STATUS    AmtNetworkConnectionStatus;
 | |
| 	REMOTE_ACCESS_CONNECTION_STATUS  RemoteAccessConnectionStatus;
 | |
| 	REMOTE_ACCESS_CONNECTION_TRIGGER RemoteAccessConnectionTrigger;
 | |
| 	AMT_ANSI_STRING MpsHostname;
 | |
| } REMOTE_ACCESS_STATUS;
 | |
| 
 | |
| 
 | |
| typedef UINT8 AMT_UUID[16];
 | |
| 
 | |
| //const AMT_UUID AMT_UUID_LINK_STATE;
 | |
| 
 | |
| typedef struct _STATE_DATA
 | |
| {
 | |
| 	UINT8 LinkStatus; // (0 - down; 1 - up)
 | |
| 	UINT8 HardSKU;
 | |
| 	UINT8 CryptoFuse; // (0 -  disabled; 1 - enabled)
 | |
| 	UINT8 FlashProtaction; // (0 - disabled; 1 - enabled)
 | |
| 	UINT8 LastMEResetReason;
 | |
| } STATE_DATA;
 | |
| 
 | |
| typedef struct _STATE_GET_AMT_STATE_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| 	AMT_UUID StateVariableIdentifier;
 | |
| } STATE_GET_AMT_STATE_REQUEST;
 | |
| 
 | |
| typedef struct _STATE_GET_AMT_STATE_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_UUID      StateDataIdentifier;
 | |
| 	UINT32        ByteCount;
 | |
| 	STATE_DATA    StateData;
 | |
| } STATE_GET_AMT_STATE_RESPONSE;
 | |
| 
 | |
| 
 | |
| typedef struct _AMT_HASH_HANDLES
 | |
| {
 | |
| 	UINT32	Length;
 | |
| 	UINT32	Handles[CERT_HASH_MAX_NUMBER];
 | |
| } AMT_HASH_HANDLES;
 | |
| 
 | |
| typedef struct _CERTHASH_ENTRY
 | |
| {
 | |
| 	AMT_BOOLEAN     IsDefault;
 | |
| 	AMT_BOOLEAN     IsActive;
 | |
| 	UINT8           CertificateHash[CERT_HASH_MAX_LENGTH];
 | |
| 	UINT8           HashAlgorithm;
 | |
| 	AMT_ANSI_STRING Name;
 | |
| } CERTHASH_ENTRY;
 | |
| 
 | |
| typedef enum
 | |
| {
 | |
| 	CERT_HASH_ALGORITHM_MD5 = 0,  // 16 bytes
 | |
| 	CERT_HASH_ALGORITHM_SHA1,     // 20 bytes
 | |
| 	CERT_HASH_ALGORITHM_SHA256,   // 32 bytes
 | |
| 	CERT_HASH_ALGORITHM_SHA512,   // 64 bytes
 | |
| } CERT_HASH_ALGORITHM;
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
| 	UINT16      Year;
 | |
| 	UINT16      Month;
 | |
| 	UINT16      DayOfWeek;
 | |
| 	UINT16      Day;
 | |
| 	UINT16      Hour;
 | |
| 	UINT16      Minute;
 | |
| 	UINT16      Second;
 | |
| } TIME_DATE;
 | |
| 
 | |
| typedef struct _AMT_PROV_AUDIT_RECORD
 | |
| {
 | |
| 	UINT8                ProvisioningTLSMode;
 | |
| 	AMT_BOOLEAN          SecureDNS;
 | |
| 	AMT_BOOLEAN          HostInitiated;
 | |
| 	CERT_HASH_ALGORITHM  SelectedHashType;
 | |
| 	UINT8                SelectedHashData[CERT_HASH_MAX_LENGTH];
 | |
| 	UINT8                CaCertificateSerials[NET_TLS_CERT_PKI_MAX_SERIAL_NUMS*NET_TLS_CERT_PKI_MAX_SERIAL_NUM_LENGTH];
 | |
| 	AMT_BOOLEAN          AdditionalCaSerialNums;
 | |
| 	AMT_BOOLEAN          IsOemDefault;
 | |
| 	AMT_BOOLEAN          IsTimeValid;
 | |
| 	UINT32               ProvServerIP;
 | |
| 	TIME_DATE            TlsStartTime;
 | |
| 	AMT_ANSI_STRING      ProvServerFQDN;
 | |
| } AMT_PROV_AUDIT_RECORD;
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER                Header;
 | |
| 	AMT_STATUS                         Status;
 | |
| 	AMT_BOOLEAN                        SharedFQDN;
 | |
| 	AMT_BOOLEAN                        DDNSUpdateEnabled;
 | |
| 	UINT32                             DDNSPeriodicUpdateInterval;
 | |
| 	UINT32                             DDNSTTL;
 | |
| 	UINT32                             HostNameLength;
 | |
| 	AMT_ANSI_STRING                    FQDN;
 | |
| }  CFG_GET_FQDN_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GENERATE_RNG_SEED_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| } CFG_GENERATE_RNG_SEED_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_RNG_SEED_STATUS_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_RNG_STATUS RngStatus;
 | |
| } CFG_GET_RNG_SEED_STATUS_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_ZERO_TOUCH_ENABLED_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_BOOLEAN ZeroTouchEnabled;
 | |
| } CFG_GET_ZERO_TOUCH_ENABLED_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_PROVISIONING_TLS_MODE_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_PROVISIONING_TLS_MODE ProvisioningTlsMode;
 | |
| } CFG_GET_PROVISIONING_TLS_MODE_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_START_CONFIGURATION_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| } CFG_START_CONFIGURATION_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_STOP_CONFIGURATION_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| } CFG_STOP_CONFIGURATION_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_SET_PROVISIONING_SERVER_OTP_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| } CFG_SET_PROVISIONING_SERVER_OTP_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_SET_DNS_SUFFIX_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| } CFG_SET_DNS_SUFFIX_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_HASH_HANDLES_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_HASH_HANDLES HashHandles;
 | |
| } CFG_GET_HASH_HANDLES_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_CERTHASH_ENTRY_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| 	UINT32 HashHandle;
 | |
| } CFG_GET_CERTHASH_ENTRY_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_CERTHASH_ENTRY_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	CERTHASH_ENTRY Hash;
 | |
| } CFG_GET_CERTHASH_ENTRY_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_PKI_FQDN_SUFFIX_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_ANSI_STRING Suffix;
 | |
| } CFG_GET_PKI_FQDN_SUFFIX_RESPONSE;
 | |
| 
 | |
| typedef struct CFG_SET_HOST_FQDN_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER	Header;
 | |
| 	UINT16 FQDNL;
 | |
| 	char   FQDN[256];
 | |
| }CFG_SET_HOST_FQDN_REQUEST;
 | |
| 
 | |
| typedef struct CFG_GET_HOST_FQDN_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER	Header;
 | |
| } CFG_GET_HOST_FQDN_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_SET_HOST_FQDN_RESPONSE
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER	Header;
 | |
| 	AMT_STATUS 	Status;
 | |
| } CFG_SET_HOST_FQDN_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_LOCAL_SYSTEM_ACCOUNT_RESPONSE
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER		Header;
 | |
| 	AMT_STATUS				Status;
 | |
| 	LOCAL_SYSTEM_ACCOUNT	Account;
 | |
|  } CFG_GET_LOCAL_SYSTEM_ACCOUNT_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_LOCAL_SYSTEM_ACCOUNT_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER	Header;
 | |
| 	UINT8				Reserved[40];
 | |
| } CFG_GET_LOCAL_SYSTEM_ACCOUNT_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_UNPROVISION_RESPONSE
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER	Header;
 | |
| 	AMT_STATUS			Status;
 | |
|  } CFG_UNPROVISION_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_UNPROVISION_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| 	UINT32				Mode;
 | |
| } CFG_UNPROVISION_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GETEHBPSTATE_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| } CFG_GETEHBPSTATE_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GETEHBPSTATE_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_EHBC_STATE EHBCState;
 | |
| } CFG_GETEHBPSTATE_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_CONTROL_MODE_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| } CFG_GET_CONTROL_MODE_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_CONTROL_MODE_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	int state;
 | |
| } CFG_GET_CONTROL_MODE_RESPONSE;
 | |
| 
 | |
| typedef struct _CFG_GET_UUID_REQUEST
 | |
| {
 | |
| 	PTHI_MESSAGE_HEADER Header;
 | |
| } CFG_GET_UUID_REQUEST;
 | |
| 
 | |
| typedef struct _CFG_GET_UUID_RESPONSE
 | |
| {
 | |
| 	PTHI_RESPONSE_MESSAGE_HEADER Header;
 | |
| 	AMT_UUID 					 UUID;
 | |
| } CFG_GET_UUID_RESPONSE;
 | |
| 
 | |
| #pragma pack()
 | |
| 
 | |
| 
 | |
| AMT_STATUS pthi_GetCodeVersions(CODE_VERSIONS *codeVersions);
 | |
| AMT_STATUS pthi_GetProvisioningMode(CFG_PROVISIONING_MODE *provisioningMode, AMT_BOOLEAN *legacy);
 | |
| AMT_STATUS pthi_GetProvisioningState(AMT_PROVISIONING_STATE *state);
 | |
| AMT_STATUS pthi_GetMacAddresses(UINT8 DedicatedMac[6], UINT8 HostMac[6]);
 | |
| AMT_STATUS pthi_GetFeaturesState(UINT32 requestID, AMT_BOOLEAN (*requestStatus)[2]);
 | |
| AMT_STATUS pthi_GetLastHostResetReason(UINT32 *Reason, UINT32 *RemoteControlTimeStamp);
 | |
| AMT_STATUS pthi_GetCurrentPowerPolicy(AMT_ANSI_STRING *policyName);
 | |
| AMT_STATUS pthi_GetLanInterfaceSettings(UINT32 interfaceSettings, LAN_SETTINGS *lanSettings);
 | |
| AMT_STATUS pthi_GetHeciVersion(HECI_VERSION *hecVersion);
 | |
| AMT_STATUS pthi_GetTLSEnabled(AMT_BOOLEAN *tlsEnabled);
 | |
| //AMT_STATUS pthi_GetDNSSuffixList(std::list<std::string> *dnsSuffixList);
 | |
| AMT_STATUS pthi_SetEnterpriseAccess(UINT8 Flags, UINT8 HostIPAddress[16], UINT8 EnterpriseAccess);
 | |
| AMT_STATUS pthi_GetFWResetReason(UINT8 *MEResetReason);
 | |
| AMT_STATUS pthi_OpenUserInitiatedConnection();
 | |
| AMT_STATUS pthi_CloseUserInitiatedConnection();
 | |
| AMT_STATUS pthi_GetRemoteAccessConnectionStatus(REMOTE_ACCESS_STATUS *remoteAccessStatus);
 | |
| AMT_STATUS pthi_GenerateRngKey();
 | |
| AMT_STATUS pthi_GetRngSeedStatus(AMT_RNG_STATUS *rngStatus);
 | |
| AMT_STATUS pthi_GetZeroTouchEnabled(AMT_BOOLEAN *zeroTouchEnabled);
 | |
| AMT_STATUS pthi_GetProvisioningTlsMode(AMT_PROVISIONING_TLS_MODE *provisioningTlsMode);
 | |
| AMT_STATUS pthi_StartConfiguration();
 | |
| AMT_STATUS pthi_StopConfiguration();
 | |
| AMT_STATUS pthi_SetProvisioningServerOTP(AMT_ANSI_STRING passwordOTP);
 | |
| AMT_STATUS pthi_SetDnsSuffix(AMT_ANSI_STRING dnsSuffix);
 | |
| AMT_STATUS pthi_EnumerateHashHandles(AMT_HASH_HANDLES *hashHandles);
 | |
| AMT_STATUS pthi_GetCertificateHashEntry(UINT32 hashHandle, CERTHASH_ENTRY *hashEntry);
 | |
| AMT_STATUS pthi_GetDnsSuffix(AMT_ANSI_STRING *dnsSuffix);
 | |
| AMT_STATUS pthi_SetHostFQDN(char* str);
 | |
| AMT_STATUS pthi_GetHostFQDN(CFG_GET_FQDN_RESPONSE* fqdn);
 | |
| AMT_STATUS pthi_GetLocalSystemAccount(LOCAL_SYSTEM_ACCOUNT *localAccount);
 | |
| AMT_STATUS pthi_Unprovision(CFG_PROVISIONING_MODE provisionMode);
 | |
| AMT_STATUS pthi_GetStateEHBC(AMT_EHBC_STATE *state);
 | |
| AMT_STATUS pthi_GetControlMode(int *state);
 | |
| AMT_STATUS pthi_GetUUID(AMT_UUID *uuid);
 | |
| 
 | |
| #define PROVISIONING_MODE_REQUEST 0x04000008
 | |
| #define PROVISIONING_MODE_RESPONSE 0x04800008
 | |
| const PTHI_MESSAGE_HEADER GET_PROVISIONING_MODE_HEADER;
 | |
| 
 | |
| #define UNPROVISION_REQUEST 0x04000010
 | |
| #define UNPROVISION_RESPONSE 0x04800010
 | |
| const PTHI_MESSAGE_HEADER UNPROVISION_HEADER;
 | |
| 
 | |
| #define PROVISIONING_STATE_REQUEST 0x04000011
 | |
| #define PROVISIONING_STATE_RESPONSE 0x04800011
 | |
| const PTHI_MESSAGE_HEADER GET_PROVISIONING_STATE_HEADER;
 | |
| 
 | |
| #define CODE_VERSIONS_REQUEST 0x0400001A
 | |
| #define CODE_VERSIONS_RESPONSE 0x0480001A
 | |
| const PTHI_MESSAGE_HEADER GET_CODE_VERSION_HEADER;
 | |
| 
 | |
| #define GET_SECURITY_PARAMETERS_REQUEST	0x0400001B
 | |
| #define GET_SECURITY_PARAMETERS_RESPONSE 0x0480001B
 | |
| //const PTHI_MESSAGE_HEADER GET_SECURITY_PARAMETERS_HEADER;
 | |
| 
 | |
| #define GET_MAC_ADDRESSES_REQUEST 0x04000025
 | |
| #define GET_MAC_ADDRESSES_RESPONSE 0x04800025
 | |
| const PTHI_MESSAGE_HEADER GET_MAC_ADDRESSES_HEADER;
 | |
| 
 | |
| #define GENERATE_RNG_SEED_REQUEST    0x04000028
 | |
| #define GENERATE_RNG_SEED_RESPONSE   0x04800028
 | |
| //const PTHI_MESSAGE_HEADER GENERATE_RNG_SEED_HEADER;
 | |
| 
 | |
| #define SET_PROVISIONING_SERVER_OTP_REQUEST     0x0400002A
 | |
| #define SET_PROVISIONING_SERVER_OTP_RESPONSE    0x0480002A
 | |
| 
 | |
| #define SET_DNS_SUFFIX_REQUEST     0x0400002F
 | |
| #define SET_DNS_SUFFIX_RESPONSE    0x0480002F
 | |
| 
 | |
| #define ENUMERATE_HASH_HANDLES_REQUEST     0x0400002C
 | |
| #define ENUMERATE_HASH_HANDLES_RESPONSE    0x0480002C
 | |
| //const PTHI_MESSAGE_HEADER ENUMERATE_HASH_HANDLES_HEADER;
 | |
| 
 | |
| #define GET_RNG_SEED_STATUS_REQUEST   0x0400002E
 | |
| #define GET_RNG_SEED_STATUS_RESPONSE  0x0480002E
 | |
| //const PTHI_MESSAGE_HEADER GET_RNG_SEED_STATUS_HEADER;
 | |
| 
 | |
| #define GET_DNS_SUFFIX_LIST_REQUEST        0x0400003E
 | |
| #define GET_DNS_SUFFIX_LIST_RESPONSE       0x0480003E
 | |
| //const PTHI_MESSAGE_HEADER GET_DNS_SUFFIX_LIST_HEADER;
 | |
| 
 | |
| #define SET_ENTERPRISE_ACCESS_REQUEST   0x0400003F
 | |
| #define SET_ENTERPRISE_ACCESS_RESPONSE  0x0480003F
 | |
| //const PTHI_MESSAGE_HEADER SET_ENTERPRISE_ACCESS_HEADER;
 | |
| 
 | |
| #define OPEN_USER_INITIATED_CONNECTION_REQUEST    0x04000044
 | |
| #define OPEN_USER_INITIATED_CONNECTION_RESPONSE   0x04800044
 | |
| //const PTHI_MESSAGE_HEADER OPEN_USER_INITIATED_CONNECTION_HEADER;
 | |
| 
 | |
| #define CLOSE_USER_INITIATED_CONNECTION_REQUEST   0x04000045
 | |
| #define CLOSE_USER_INITIATED_CONNECTION_RESPONSE  0x04800045
 | |
| //const PTHI_MESSAGE_HEADER CLOSE_USER_INITIATED_CONNECTION_HEADER;
 | |
| 
 | |
| #define GET_REMOTE_ACCESS_CONNECTION_STATUS_REQUEST      0x04000046
 | |
| #define GET_REMOTE_ACCESS_CONNECTION_STATUS_RESPONSE     0x04800046
 | |
| //const PTHI_MESSAGE_HEADER GET_REMOTE_ACCESS_CONNECTION_STATUS_HEADER;
 | |
| 
 | |
| #define GET_CURRENT_POWER_POLICY_REQUEST 0x04000047
 | |
| #define GET_CURRENT_POWER_POLICY_RESPONSE 0x04800047
 | |
| const PTHI_MESSAGE_HEADER GET_CURRENT_POWER_POLICY_HEADER;
 | |
| 
 | |
| #define GET_LAN_INTERFACE_SETTINGS_REQUEST	0x04000048
 | |
| #define GET_LAN_INTERFACE_SETTINGS_RESPONSE	0x04800048
 | |
| //const PTHI_MESSAGE_HEADER GET_LAN_INTERFACE_SETTINGS_HEADER;
 | |
| 
 | |
| #define GET_FEATURES_STATE_REQUEST 0x04000049
 | |
| #define GET_FEATURES_STATE_RESPONSE	0x04800049
 | |
| const PTHI_MESSAGE_HEADER GET_FEATURES_STATE_HEADER;
 | |
| 
 | |
| #define GET_LAST_HOST_RESET_REASON_REQUEST 0x0400004A
 | |
| #define GET_LAST_HOST_RESET_REASON_RESPONSE	0x0480004A
 | |
| //const PTHI_MESSAGE_HEADER GET_LAST_HOST_RESET_REASON_HEADER;
 | |
| 
 | |
| #define GET_AMT_STATE_REQUEST         0x01000001
 | |
| #define GET_AMT_STATE_RESPONSE        0x01800001
 | |
| //const PTHI_MESSAGE_HEADER GET_AMT_STATE_HEADER;
 | |
| 
 | |
| #define GET_ZERO_TOUCH_ENABLED_REQUEST   0x04000030
 | |
| #define GET_ZERO_TOUCH_ENABLED_RESPONSE  0x04800030
 | |
| //const PTHI_MESSAGE_HEADER GET_ZERO_TOUCH_ENABLED_HEADER;
 | |
| 
 | |
| #define GET_PROVISIONING_TLS_MODE_REQUEST    0x0400002B
 | |
| #define GET_PROVISIONING_TLS_MODE_RESPONSE   0x0480002B
 | |
| //const PTHI_MESSAGE_HEADER GET_PROVISIONING_TLS_MODE_HEADER;
 | |
| 
 | |
| #define START_CONFIGURATION_REQUEST     0x04000029
 | |
| #define START_CONFIGURATION_RESPONSE    0x04800029
 | |
| //const PTHI_MESSAGE_HEADER START_CONFIGURATION_HEADER;
 | |
| 
 | |
| #define GET_CERTHASH_ENTRY_REQUEST 0x0400002D
 | |
| #define GET_CERTHASH_ENTRY_RESPONSE 0x0480002D
 | |
| //const PTHI_MESSAGE_HEADER GET_CERTHASH_ENTRY_HEADER;
 | |
| 
 | |
| #define GET_PKI_FQDN_SUFFIX_REQUEST 0x04000036
 | |
| #define GET_PKI_FQDN_SUFFIX_RESPONSE 0x04800036
 | |
| //
 | |
| 
 | |
| #define SET_HOST_FQDN_REQUEST 0x0400005b
 | |
| #define SET_HOST_FQDN_RESPONSE  0x0480005b
 | |
| //const PTHI_MESSAGE_HEADER GET_PKI_FQDN_SUFFIX_HEADER;
 | |
| 
 | |
| #define GET_FQDN_REQUEST 0x4000056
 | |
| #define GET_FQDN_RESPONSE  0x4800056 
 | |
| 
 | |
| 
 | |
| #define GET_LOCAL_SYSTEM_ACCOUNT_REQUEST 0x04000067
 | |
| #define GET_LOCAL_SYSTEM_ACCOUNT_RESPONSE 0x04800067
 | |
| //const PTHI_MESSAGE_HEADER GET_LOCAL_SYSTEM_ACCOUNT_HEADER;
 | |
| 
 | |
| #define GET_EHBC_STATE_REQUEST 0x4000084
 | |
| #define GET_EHBC_STATE_RESPONSE 0x4800084
 | |
| 
 | |
| const PTHI_MESSAGE_HEADER GET_EHBC_STATE_HEADER;
 | |
| 
 | |
| #define GET_CONTROL_MODE_REQUEST 0x400006b
 | |
| #define GET_CONTROL_MODE_RESPONSE 0x480006b
 | |
| const PTHI_MESSAGE_HEADER GET_CONTROL_MODE_HEADER;
 | |
| 
 | |
| #define STOP_CONFIGURATION_REQUEST 0x400005e
 | |
| #define STOP_CONFIGURATION_RESPONSE 0x480005e
 | |
| 
 | |
| #define GET_UUID_REQUEST 0x400005c
 | |
| #define GET_UUID_RESPONSE 0x480005c
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #endif
 |