#pragma pack(1)\r
\r
typedef struct {\r
- TPM2_COMMAND_HEADER Header;\r
- TPM_CAP Capability;\r
- UINT32 Property;\r
- UINT32 PropertyCount;\r
+ TPM2_COMMAND_HEADER Header;\r
+ TPM_CAP Capability;\r
+ UINT32 Property;\r
+ UINT32 PropertyCount;\r
} TPM2_GET_CAPABILITY_COMMAND;\r
\r
typedef struct {\r
- TPM2_RESPONSE_HEADER Header;\r
- TPMI_YES_NO MoreData;\r
- TPMS_CAPABILITY_DATA CapabilityData;\r
+ TPM2_RESPONSE_HEADER Header;\r
+ TPMI_YES_NO MoreData;\r
+ TPMS_CAPABILITY_DATA CapabilityData;\r
} TPM2_GET_CAPABILITY_RESPONSE;\r
\r
typedef struct {\r
- TPM2_COMMAND_HEADER Header;\r
- TPMT_PUBLIC_PARMS Parameters;\r
+ TPM2_COMMAND_HEADER Header;\r
+ TPMT_PUBLIC_PARMS Parameters;\r
} TPM2_TEST_PARMS_COMMAND;\r
\r
typedef struct {\r
- TPM2_RESPONSE_HEADER Header;\r
+ TPM2_RESPONSE_HEADER Header;\r
} TPM2_TEST_PARMS_RESPONSE;\r
\r
#pragma pack()\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapability (\r
- IN TPM_CAP Capability,\r
- IN UINT32 Property,\r
- IN UINT32 PropertyCount,\r
- OUT TPMI_YES_NO *MoreData,\r
- OUT TPMS_CAPABILITY_DATA *CapabilityData\r
+ IN TPM_CAP Capability,\r
+ IN UINT32 Property,\r
+ IN UINT32 PropertyCount,\r
+ OUT TPMI_YES_NO *MoreData,\r
+ OUT TPMS_CAPABILITY_DATA *CapabilityData\r
)\r
{\r
- EFI_STATUS Status;\r
- TPM2_GET_CAPABILITY_COMMAND SendBuffer;\r
- TPM2_GET_CAPABILITY_RESPONSE RecvBuffer;\r
- UINT32 SendBufferSize;\r
- UINT32 RecvBufferSize;\r
+ EFI_STATUS Status;\r
+ TPM2_GET_CAPABILITY_COMMAND SendBuffer;\r
+ TPM2_GET_CAPABILITY_RESPONSE RecvBuffer;\r
+ UINT32 SendBufferSize;\r
+ UINT32 RecvBufferSize;\r
\r
//\r
// Construct command\r
//\r
- SendBuffer.Header.tag = SwapBytes16(TPM_ST_NO_SESSIONS);\r
- SendBuffer.Header.commandCode = SwapBytes32(TPM_CC_GetCapability);\r
+ SendBuffer.Header.tag = SwapBytes16 (TPM_ST_NO_SESSIONS);\r
+ SendBuffer.Header.commandCode = SwapBytes32 (TPM_CC_GetCapability);\r
\r
- SendBuffer.Capability = SwapBytes32 (Capability);\r
- SendBuffer.Property = SwapBytes32 (Property);\r
+ SendBuffer.Capability = SwapBytes32 (Capability);\r
+ SendBuffer.Property = SwapBytes32 (Property);\r
SendBuffer.PropertyCount = SwapBytes32 (PropertyCount);\r
\r
- SendBufferSize = (UINT32) sizeof (SendBuffer);\r
+ SendBufferSize = (UINT32)sizeof (SendBuffer);\r
SendBuffer.Header.paramSize = SwapBytes32 (SendBufferSize);\r
\r
//\r
// send Tpm command\r
//\r
RecvBufferSize = sizeof (RecvBuffer);\r
- Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer );\r
+ Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
//\r
// Fail if command failed\r
//\r
- if (SwapBytes32(RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
- DEBUG ((DEBUG_ERROR, "Tpm2GetCapability: Response Code error! 0x%08x\r\n", SwapBytes32(RecvBuffer.Header.responseCode)));\r
+ if (SwapBytes32 (RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
+ DEBUG ((DEBUG_ERROR, "Tpm2GetCapability: Response Code error! 0x%08x\r\n", SwapBytes32 (RecvBuffer.Header.responseCode)));\r
return EFI_DEVICE_ERROR;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityFamily (\r
- OUT CHAR8 *Family\r
+ OUT CHAR8 *Family\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
CopyMem (Family, &TpmCap.data.tpmProperties.tpmProperty->value, 4);\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityManufactureID (\r
- OUT UINT32 *ManufactureId\r
+ OUT UINT32 *ManufactureId\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
*ManufactureId = TpmCap.data.tpmProperties.tpmProperty->value;\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityFirmwareVersion (\r
- OUT UINT32 *FirmwareVersion1,\r
- OUT UINT32 *FirmwareVersion2\r
+ OUT UINT32 *FirmwareVersion1,\r
+ OUT UINT32 *FirmwareVersion2\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
*FirmwareVersion1 = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
\r
Status = Tpm2GetCapability (\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
*FirmwareVersion2 = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityMaxCommandResponseSize (\r
- OUT UINT32 *MaxCommandSize,\r
- OUT UINT32 *MaxResponseSize\r
+ OUT UINT32 *MaxCommandSize,\r
+ OUT UINT32 *MaxResponseSize\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilitySupportedAlg (\r
- OUT TPML_ALG_PROPERTY *AlgList\r
+ OUT TPML_ALG_PROPERTY *AlgList\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- UINTN Index;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ UINTN Index;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_ALGS,\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityLockoutCounter (\r
- OUT UINT32 *LockoutCounter\r
+ OUT UINT32 *LockoutCounter\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
*LockoutCounter = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityLockoutInterval (\r
- OUT UINT32 *LockoutInterval\r
+ OUT UINT32 *LockoutInterval\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
*LockoutInterval = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityInputBufferSize (\r
- OUT UINT32 *InputBufferSize\r
+ OUT UINT32 *InputBufferSize\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
*InputBufferSize = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityPcrs (\r
- OUT TPML_PCR_SELECTION *Pcrs\r
+ OUT TPML_PCR_SELECTION *Pcrs\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
- UINTN Index;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_PCRS,\r
}\r
\r
for (Index = 0; Index < Pcrs->count; Index++) {\r
- Pcrs->pcrSelections[Index].hash = SwapBytes16 (TpmCap.data.assignedPCR.pcrSelections[Index].hash);\r
+ Pcrs->pcrSelections[Index].hash = SwapBytes16 (TpmCap.data.assignedPCR.pcrSelections[Index].hash);\r
Pcrs->pcrSelections[Index].sizeofSelect = TpmCap.data.assignedPCR.pcrSelections[Index].sizeofSelect;\r
if (Pcrs->pcrSelections[Index].sizeofSelect > PCR_SELECT_MAX) {\r
DEBUG ((DEBUG_ERROR, "Tpm2GetCapabilityPcrs - sizeofSelect error %x\n", Pcrs->pcrSelections[Index].sizeofSelect));\r
return EFI_DEVICE_ERROR;\r
}\r
+\r
CopyMem (Pcrs->pcrSelections[Index].pcrSelect, TpmCap.data.assignedPCR.pcrSelections[Index].pcrSelect, Pcrs->pcrSelections[Index].sizeofSelect);\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilitySupportedAndActivePcrs (\r
- OUT UINT32 *TpmHashAlgorithmBitmap,\r
- OUT UINT32 *ActivePcrBanks\r
+ OUT UINT32 *TpmHashAlgorithmBitmap,\r
+ OUT UINT32 *ActivePcrBanks\r
)\r
{\r
- EFI_STATUS Status;\r
- TPML_PCR_SELECTION Pcrs;\r
- UINTN Index;\r
- UINT8 ActivePcrBankCount;\r
+ EFI_STATUS Status;\r
+ TPML_PCR_SELECTION Pcrs;\r
+ UINTN Index;\r
+ UINT8 ActivePcrBankCount;\r
\r
//\r
// Get supported PCR\r
DEBUG ((DEBUG_ERROR, "GetSupportedAndActivePcrs - Tpm2GetCapabilityPcrs fail!\n"));\r
*TpmHashAlgorithmBitmap = HASH_ALG_SHA1;\r
*ActivePcrBanks = HASH_ALG_SHA1;\r
- ActivePcrBankCount = 1;\r
+ ActivePcrBankCount = 1;\r
}\r
//\r
// Otherwise, process the return data to determine what algorithms are supported\r
*ActivePcrBanks = 0;\r
for (Index = 0; Index < Pcrs.count; Index++) {\r
switch (Pcrs.pcrSelections[Index].hash) {\r
- case TPM_ALG_SHA1:\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 present.\n"));\r
- *TpmHashAlgorithmBitmap |= HASH_ALG_SHA1;\r
- if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 active.\n"));\r
- *ActivePcrBanks |= HASH_ALG_SHA1;\r
- ActivePcrBankCount++;\r
- }\r
- break;\r
- case TPM_ALG_SHA256:\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 present.\n"));\r
- *TpmHashAlgorithmBitmap |= HASH_ALG_SHA256;\r
- if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 active.\n"));\r
- *ActivePcrBanks |= HASH_ALG_SHA256;\r
- ActivePcrBankCount++;\r
- }\r
- break;\r
- case TPM_ALG_SHA384:\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 present.\n"));\r
- *TpmHashAlgorithmBitmap |= HASH_ALG_SHA384;\r
- if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 active.\n"));\r
- *ActivePcrBanks |= HASH_ALG_SHA384;\r
- ActivePcrBankCount++;\r
- }\r
- break;\r
- case TPM_ALG_SHA512:\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 present.\n"));\r
- *TpmHashAlgorithmBitmap |= HASH_ALG_SHA512;\r
- if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 active.\n"));\r
- *ActivePcrBanks |= HASH_ALG_SHA512;\r
- ActivePcrBankCount++;\r
- }\r
- break;\r
- case TPM_ALG_SM3_256:\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 present.\n"));\r
- *TpmHashAlgorithmBitmap |= HASH_ALG_SM3_256;\r
- if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 active.\n"));\r
- *ActivePcrBanks |= HASH_ALG_SM3_256;\r
- ActivePcrBankCount++;\r
- }\r
- break;\r
- default:\r
- DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - Unsupported bank 0x%04x.\n", Pcrs.pcrSelections[Index].hash));\r
- continue;\r
- break;\r
+ case TPM_ALG_SHA1:\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 present.\n"));\r
+ *TpmHashAlgorithmBitmap |= HASH_ALG_SHA1;\r
+ if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 active.\n"));\r
+ *ActivePcrBanks |= HASH_ALG_SHA1;\r
+ ActivePcrBankCount++;\r
+ }\r
+\r
+ break;\r
+ case TPM_ALG_SHA256:\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 present.\n"));\r
+ *TpmHashAlgorithmBitmap |= HASH_ALG_SHA256;\r
+ if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 active.\n"));\r
+ *ActivePcrBanks |= HASH_ALG_SHA256;\r
+ ActivePcrBankCount++;\r
+ }\r
+\r
+ break;\r
+ case TPM_ALG_SHA384:\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 present.\n"));\r
+ *TpmHashAlgorithmBitmap |= HASH_ALG_SHA384;\r
+ if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 active.\n"));\r
+ *ActivePcrBanks |= HASH_ALG_SHA384;\r
+ ActivePcrBankCount++;\r
+ }\r
+\r
+ break;\r
+ case TPM_ALG_SHA512:\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 present.\n"));\r
+ *TpmHashAlgorithmBitmap |= HASH_ALG_SHA512;\r
+ if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 active.\n"));\r
+ *ActivePcrBanks |= HASH_ALG_SHA512;\r
+ ActivePcrBankCount++;\r
+ }\r
+\r
+ break;\r
+ case TPM_ALG_SM3_256:\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 present.\n"));\r
+ *TpmHashAlgorithmBitmap |= HASH_ALG_SM3_256;\r
+ if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 active.\n"));\r
+ *ActivePcrBanks |= HASH_ALG_SM3_256;\r
+ ActivePcrBankCount++;\r
+ }\r
+\r
+ break;\r
+ default:\r
+ DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - Unsupported bank 0x%04x.\n", Pcrs.pcrSelections[Index].hash));\r
+ continue;\r
+ break;\r
}\r
}\r
}\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityAlgorithmSet (\r
- OUT UINT32 *AlgorithmSet\r
+ OUT UINT32 *AlgorithmSet\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_TPM_PROPERTIES,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
*AlgorithmSet = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
Tpm2GetCapabilityIsCommandImplemented (\r
- IN TPM_CC Command,\r
- OUT BOOLEAN *IsCmdImpl\r
+ IN TPM_CC Command,\r
+ OUT BOOLEAN *IsCmdImpl\r
)\r
{\r
- TPMS_CAPABILITY_DATA TpmCap;\r
- TPMI_YES_NO MoreData;\r
- EFI_STATUS Status;\r
- UINT32 Attribute;\r
+ TPMS_CAPABILITY_DATA TpmCap;\r
+ TPMI_YES_NO MoreData;\r
+ EFI_STATUS Status;\r
+ UINT32 Attribute;\r
\r
Status = Tpm2GetCapability (\r
TPM_CAP_COMMANDS,\r
}\r
\r
CopyMem (&Attribute, &TpmCap.data.command.commandAttributes[0], sizeof (UINT32));\r
- *IsCmdImpl = (Command == (SwapBytes32(Attribute) & TPMA_CC_COMMANDINDEX_MASK));\r
+ *IsCmdImpl = (Command == (SwapBytes32 (Attribute) & TPMA_CC_COMMANDINDEX_MASK));\r
\r
return EFI_SUCCESS;\r
}\r
EFI_STATUS\r
EFIAPI\r
Tpm2TestParms (\r
- IN TPMT_PUBLIC_PARMS *Parameters\r
+ IN TPMT_PUBLIC_PARMS *Parameters\r
)\r
{\r
- EFI_STATUS Status;\r
- TPM2_TEST_PARMS_COMMAND SendBuffer;\r
- TPM2_TEST_PARMS_RESPONSE RecvBuffer;\r
- UINT32 SendBufferSize;\r
- UINT32 RecvBufferSize;\r
- UINT8 *Buffer;\r
+ EFI_STATUS Status;\r
+ TPM2_TEST_PARMS_COMMAND SendBuffer;\r
+ TPM2_TEST_PARMS_RESPONSE RecvBuffer;\r
+ UINT32 SendBufferSize;\r
+ UINT32 RecvBufferSize;\r
+ UINT8 *Buffer;\r
\r
//\r
// Construct command\r
//\r
- SendBuffer.Header.tag = SwapBytes16(TPM_ST_NO_SESSIONS);\r
- SendBuffer.Header.commandCode = SwapBytes32(TPM_CC_TestParms);\r
+ SendBuffer.Header.tag = SwapBytes16 (TPM_ST_NO_SESSIONS);\r
+ SendBuffer.Header.commandCode = SwapBytes32 (TPM_CC_TestParms);\r
\r
Buffer = (UINT8 *)&SendBuffer.Parameters;\r
WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->type));\r
- Buffer += sizeof(UINT16);\r
+ Buffer += sizeof (UINT16);\r
switch (Parameters->type) {\r
- case TPM_ALG_KEYEDHASH:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.scheme));\r
- Buffer += sizeof(UINT16);\r
- switch (Parameters->parameters.keyedHashDetail.scheme.scheme) {\r
- case TPM_ALG_HMAC:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.hmac.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_XOR:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.kdf));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- default:\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- case TPM_ALG_SYMCIPHER:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.algorithm));\r
- Buffer += sizeof(UINT16);\r
- switch (Parameters->parameters.symDetail.algorithm) {\r
- case TPM_ALG_AES:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.aes));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.aes));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_SM4:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.SM4));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.SM4));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_XOR:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.xor));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_NULL:\r
- break;\r
- default:\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- break;\r
- case TPM_ALG_RSA:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.algorithm));\r
- Buffer += sizeof(UINT16);\r
- switch (Parameters->parameters.rsaDetail.symmetric.algorithm) {\r
- case TPM_ALG_AES:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.aes));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.aes));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_SM4:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.SM4));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.SM4));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_NULL:\r
- break;\r
- default:\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.scheme));\r
- Buffer += sizeof(UINT16);\r
- switch (Parameters->parameters.rsaDetail.scheme.scheme) {\r
- case TPM_ALG_RSASSA:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsassa.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_RSAPSS:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsapss.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_RSAES:\r
- break;\r
- case TPM_ALG_OAEP:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.oaep.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_NULL:\r
- break;\r
- default:\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.keyBits));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned32 ((UINT32 *)Buffer, SwapBytes32 (Parameters->parameters.rsaDetail.exponent));\r
- Buffer += sizeof(UINT32);\r
- break;\r
- case TPM_ALG_ECC:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.algorithm));\r
- Buffer += sizeof(UINT16);\r
- switch (Parameters->parameters.eccDetail.symmetric.algorithm) {\r
- case TPM_ALG_AES:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.aes));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.aes));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_SM4:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.SM4));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.SM4));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_NULL:\r
- break;\r
- default:\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.scheme));\r
- Buffer += sizeof(UINT16);\r
- switch (Parameters->parameters.eccDetail.scheme.scheme) {\r
- case TPM_ALG_ECDSA:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdsa.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_ECDAA:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdaa.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_ECSCHNORR:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecSchnorr.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_ECDH:\r
- break;\r
- case TPM_ALG_NULL:\r
- break;\r
- default:\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.curveID));\r
- Buffer += sizeof(UINT16);\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.scheme));\r
- Buffer += sizeof(UINT16);\r
- switch (Parameters->parameters.eccDetail.kdf.scheme) {\r
- case TPM_ALG_MGF1:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.mgf1.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_KDF1_SP800_108:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_sp800_108.hashAlg));\r
- Buffer += sizeof(UINT16);\r
- break;\r
- case TPM_ALG_KDF1_SP800_56a:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_SP800_56a.hashAlg));\r
- Buffer += sizeof(UINT16);\r
+ case TPM_ALG_KEYEDHASH:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.scheme));\r
+ Buffer += sizeof (UINT16);\r
+ switch (Parameters->parameters.keyedHashDetail.scheme.scheme) {\r
+ case TPM_ALG_HMAC:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.hmac.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_XOR:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.kdf));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ case TPM_ALG_SYMCIPHER:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.algorithm));\r
+ Buffer += sizeof (UINT16);\r
+ switch (Parameters->parameters.symDetail.algorithm) {\r
+ case TPM_ALG_AES:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.aes));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.aes));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_SM4:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.SM4));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.SM4));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_XOR:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.xor));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_NULL:\r
+ break;\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
break;\r
- case TPM_ALG_KDF2:\r
- WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf2.hashAlg));\r
- Buffer += sizeof(UINT16);\r
+ case TPM_ALG_RSA:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.algorithm));\r
+ Buffer += sizeof (UINT16);\r
+ switch (Parameters->parameters.rsaDetail.symmetric.algorithm) {\r
+ case TPM_ALG_AES:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.aes));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.aes));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_SM4:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.SM4));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.SM4));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_NULL:\r
+ break;\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.scheme));\r
+ Buffer += sizeof (UINT16);\r
+ switch (Parameters->parameters.rsaDetail.scheme.scheme) {\r
+ case TPM_ALG_RSASSA:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsassa.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_RSAPSS:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsapss.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_RSAES:\r
+ break;\r
+ case TPM_ALG_OAEP:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.oaep.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_NULL:\r
+ break;\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.keyBits));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned32 ((UINT32 *)Buffer, SwapBytes32 (Parameters->parameters.rsaDetail.exponent));\r
+ Buffer += sizeof (UINT32);\r
break;\r
- case TPM_ALG_NULL:\r
+ case TPM_ALG_ECC:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.algorithm));\r
+ Buffer += sizeof (UINT16);\r
+ switch (Parameters->parameters.eccDetail.symmetric.algorithm) {\r
+ case TPM_ALG_AES:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.aes));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.aes));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_SM4:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.SM4));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.SM4));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_NULL:\r
+ break;\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.scheme));\r
+ Buffer += sizeof (UINT16);\r
+ switch (Parameters->parameters.eccDetail.scheme.scheme) {\r
+ case TPM_ALG_ECDSA:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdsa.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_ECDAA:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdaa.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_ECSCHNORR:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecSchnorr.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_ECDH:\r
+ break;\r
+ case TPM_ALG_NULL:\r
+ break;\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.curveID));\r
+ Buffer += sizeof (UINT16);\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.scheme));\r
+ Buffer += sizeof (UINT16);\r
+ switch (Parameters->parameters.eccDetail.kdf.scheme) {\r
+ case TPM_ALG_MGF1:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.mgf1.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_KDF1_SP800_108:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_sp800_108.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_KDF1_SP800_56a:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_SP800_56a.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_KDF2:\r
+ WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf2.hashAlg));\r
+ Buffer += sizeof (UINT16);\r
+ break;\r
+ case TPM_ALG_NULL:\r
+ break;\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
break;\r
default:\r
return EFI_INVALID_PARAMETER;\r
- }\r
- break;\r
- default:\r
- return EFI_INVALID_PARAMETER;\r
}\r
\r
- SendBufferSize = (UINT32)((UINTN)Buffer - (UINTN)&SendBuffer);\r
+ SendBufferSize = (UINT32)((UINTN)Buffer - (UINTN)&SendBuffer);\r
SendBuffer.Header.paramSize = SwapBytes32 (SendBufferSize);\r
\r
//\r
// send Tpm command\r
//\r
RecvBufferSize = sizeof (RecvBuffer);\r
- Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);\r
+ Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
DEBUG ((DEBUG_ERROR, "Tpm2TestParms - RecvBufferSize Error - %x\n", RecvBufferSize));\r
return EFI_DEVICE_ERROR;\r
}\r
- if (SwapBytes32(RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
- DEBUG ((DEBUG_ERROR, "Tpm2TestParms - responseCode - %x\n", SwapBytes32(RecvBuffer.Header.responseCode)));\r
+\r
+ if (SwapBytes32 (RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
+ DEBUG ((DEBUG_ERROR, "Tpm2TestParms - responseCode - %x\n", SwapBytes32 (RecvBuffer.Header.responseCode)));\r
return EFI_UNSUPPORTED;\r
}\r
\r