Add/update DNS Suffix (OS), Hostname (OS), fqdn [AMT] and DNS Suffix [AMT] info returned by --amtinfo.

This commit is contained in:
Mudit Vats
2020-12-17 11:08:13 -07:00
parent 3bfb88aeb6
commit d2633af0c5
11 changed files with 224 additions and 38 deletions

View File

@@ -147,6 +147,10 @@ const PTHI_MESSAGE_HEADER SET_HOST_FQDN_HEADER = {
{AMT_MAJOR_VERSION, AMT_MAJOR_VERSION}, 0, {{SET_HOST_FQDN_REQUEST}}, 0
};
const PTHI_MESSAGE_HEADER GET_FQDN_HEADER = {
{AMT_MAJOR_VERSION, AMT_MAJOR_VERSION}, 0, {{GET_FQDN_REQUEST}}, 0
};
const PTHI_MESSAGE_HEADER GET_LOCAL_SYSTEM_ACCOUNT_HEADER = {
{AMT_MAJOR_VERSION, AMT_MINOR_VERSION}, 0, {{GET_LOCAL_SYSTEM_ACCOUNT_REQUEST}}, 40
};
@@ -202,10 +206,10 @@ AMT_STATUS _call(const unsigned char *command, UINT32 command_size, UINT8 **read
{
return status;
}
if ((expSize != 0) && (expSize != outBuffSize))
{
return PTSDK_STATUS_INTERNAL_ERROR;
}
//if ((expSize != 0) && (expSize != outBuffSize))
//{
//return PTSDK_STATUS_INTERNAL_ERROR;
//}
return AMT_STATUS_SUCCESS;
}
@@ -1359,6 +1363,54 @@ AMT_STATUS pthi_SetHostFQDN(char* str)
return status;
}
/*
* Gets host FQDN in AMT Calls to CFG_SET_HOST_FQDN_REQUEST command
* Arguments:
* host - host FQDN
* Return values:
* AMT_STATUS_SUCCESS - on success
* PTSDK_STATUS_INTERNAL_ERROR - on failure
*/
AMT_STATUS pthi_GetHostFQDN(CFG_GET_FQDN_RESPONSE* fqdn)
{
AMT_STATUS status;
UINT8* readBuffer = NULL;
UINT32 command_size = sizeof(CFG_GET_HOST_FQDN_REQUEST);
CFG_GET_HOST_FQDN_REQUEST command;
CFG_GET_FQDN_RESPONSE* tmp_response;
memset(&command, 0, sizeof(CFG_GET_HOST_FQDN_REQUEST));
memcpy_s((UINT8*)&command, sizeof(command), (char*)&(GET_FQDN_HEADER), sizeof(GET_FQDN_HEADER));
status = _call((UINT8*)&command, command_size, &readBuffer, GET_FQDN_RESPONSE, sizeof(CFG_GET_FQDN_RESPONSE) - sizeof(char *));
// tes
if (status == AMT_STATUS_SUCCESS)
{
tmp_response = (CFG_GET_FQDN_RESPONSE*)readBuffer;
memcpy_s(&(fqdn->Header), sizeof(PTHI_MESSAGE_HEADER), (char*)&(tmp_response->Header), sizeof(PTHI_MESSAGE_HEADER));
fqdn->Status = tmp_response->Status;
fqdn->SharedFQDN = tmp_response->SharedFQDN;
fqdn->DDNSUpdateEnabled = tmp_response->DDNSUpdateEnabled;
fqdn->DDNSPeriodicUpdateInterval = tmp_response->DDNSPeriodicUpdateInterval;
fqdn->DDNSTTL = tmp_response->DDNSTTL;
fqdn->FQDN.Length = tmp_response->FQDN.Length;
fqdn->FQDN.Buffer = (CHAR*)malloc(fqdn->FQDN.Length * sizeof(CHAR));
if (NULL == fqdn->FQDN.Buffer) {
status = AMT_STATUS_INTERNAL_ERROR;
}
else {
memcpy_s(fqdn->FQDN.Buffer,
fqdn->FQDN.Length * sizeof(CHAR),
&(tmp_response->FQDN.Buffer),
tmp_response->FQDN.Length * sizeof(CHAR));
}
}
if (readBuffer != NULL) free(readBuffer);
return status;
}
/*

View File

@@ -509,6 +509,18 @@ typedef struct _AMT_PROV_AUDIT_RECORD
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;
@@ -583,6 +595,11 @@ typedef struct CFG_SET_HOST_FQDN_REQUEST
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;
@@ -678,6 +695,7 @@ 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);
@@ -790,6 +808,10 @@ const PTHI_MESSAGE_HEADER GET_FEATURES_STATE_HEADER;
#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;