2 Public API for the Tcg Core library to perform the lowest level TCG Data encoding.
4 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 #include <IndustryStandard/TcgStorageCore.h>
20 #define ERROR_CHECK(arg) \
22 TCG_RESULT ret = (arg); \
23 if (ret != TcgResultSuccess) { \
24 DEBUG ((DEBUG_INFO, "ERROR_CHECK failed at %s:%u\n", __FILE__, __LINE__)); \
29 #define METHOD_STATUS_ERROR_CHECK(arg, failRet) \
30 if ((arg) != TCG_METHOD_STATUS_CODE_SUCCESS) { \
31 DEBUG ((DEBUG_INFO, "Method Status error: 0x%02X (%s)\n", arg, TcgMethodStatusString(arg))); \
35 #define NULL_CHECK(arg) \
37 if ((arg) == NULL) { \
38 DEBUG ((DEBUG_INFO, "NULL_CHECK(%s) failed at %s:%u\n", #arg, __FILE__, __LINE__)); \
39 return TcgResultFailureNullPointer; \
48 The result code indicates if the Tcg function call was successful or not
52 // This is the return result upon successful completion of a Tcg function call
57 // This is the return "catchall" result for the failure of a Tcg function call
62 // This is the return result if a required parameter was Null for a Tcg function call
64 TcgResultFailureNullPointer
,
67 // This is the return result if a required buffersize was 0 for a Tcg function call
69 TcgResultFailureZeroSize
,
72 // This is the return result if a Tcg function call was executed out of order.
73 // For instance, starting a Tcg subpacket before starting its Tcg packet.
75 TcgResultFailureInvalidAction
,
78 // This is the return result if the buffersize provided is not big enough to add a requested Tcg encoded item.
80 TcgResultFailureBufferTooSmall
,
83 // This is the return result for a Tcg parse function if the end of the parsed Buffer is reached, yet Data is still attempted to be retrieved.
84 // For instance, attempting to retrieve another Tcg token from the Buffer after it has reached the end of the Tcg subpacket payload.
86 TcgResultFailureEndBuffer
,
89 // This is the return result for a Tcg parse function if the Tcg Token item requested is not the expected type.
90 // For instance, the caller requested to receive an integer and the Tcg token was a byte sequence.
92 TcgResultFailureInvalidType
,
96 // Structure that is used to build the Tcg ComPacket. It contains the start Buffer pointer and the current position of the
97 // Tcg ComPacket, current Tcg Packet and Tcg SubPacket. This structure must be initialized
98 // by calling tcgInitTcgCreateStruct before it is used as parameter to any other Tcg function.
99 // This structure should NOT be directly modified by the client of this library.
101 // NOTE: WE MAY MAKE THIS AN ABSTRACT STRUCTURE WITH A DEFINED SIZE AND KEEP THE VARIABLES
102 // INTERNAL AND ONLY KNOWN TO THE TCG LIBRARY
104 // tcgInitTcgCreateStruct
108 // Buffer allocated and freed by the client of the Tcg library.
109 // This is the Buffer that shall contain the final Tcg encoded compacket.
114 // Size of the Buffer provided.
119 //Pointer to the start of the Tcg ComPacket. It should point to a location within Buffer.
121 TCG_COM_PACKET
*ComPacket
;
124 // Current Tcg Packet that is being created. It should point to a location within Buffer.
126 TCG_PACKET
*CurPacket
;
129 // Current Tcg SubPacket that is being created. It should point to a location within Buffer.
131 TCG_SUB_PACKET
*CurSubPacket
;
134 // Flag used to indicate if the Buffer of the structure should be filled out.
135 // This is intended to be used to support a use-case where the client of library
136 // can perform all the desired tcg calls to determine what the actual Size of the final compacket will be.
137 // Then the client can allocate the required Buffer Size and re-run the tcg calls.
138 // THIS MAY NOT BE IMPLEMENTED... REQUIRES MORE THOUGHT BECAUSE YOU CANNOT SOLVE ISSUE FOR RECEIVE
144 // Structure that is used to parse the Tcg response received. It contains the response Buffer pointer
145 // and the current position of the Tcg ComPacket, current Tcg Packet and Tcg SubPacket being parsed.
146 // This structure must be initialized by calling tcgInitTcgParseStruct before it is used as parameter to any other Tcg parse function.
147 // This structure should NOT be directly modified by the client of this library.
149 // NOTE: WE MAY MAKE THIS AN ABSTRACT STRUCTURE WITH A DEFINED SIZE AND KEEP THE VARIABLES
150 // INTERNAL AND ONLY KNOWN TO THE TCG LIBRARY
152 // @sa tcgInitTcgParseStruct
156 // Buffer allocated and freed by the client of the Tcg library.
157 // This is the Buffer that contains the Tcg response to decode/parse.
162 //Size of the Buffer provided.
167 // Pointer to the start of the Tcg ComPacket. It should point to a location within Buffer.
169 TCG_COM_PACKET
*ComPacket
;
172 // Current Tcg Packet that is being created. It should point to a location within Buffer.
174 TCG_PACKET
*CurPacket
;
177 // Current Tcg SubPacket that is being created. It should point to a location within Buffer.
179 TCG_SUB_PACKET
*CurSubPacket
;
182 // Current pointer within the current subpacket payload.
189 // Structure that is used to represent a Tcg Token that is retrieved by Tcg parse functions.
193 // Describes the type of Tcg token the Hdr start points to.
198 // Pointer to the beginning of the Header of the Tcg token
205 Required to be called before calling any other Tcg functions with the TCG_CREATE_STRUCT.
206 Initializes the packet variables to NULL. Additionally, the buffer will be memset.
208 @param[in/out] CreateStruct Structure to initialize
209 @param[in] Buffer Buffer allocated by client of library. It will contain the Tcg encoded packet. This cannot be null.
210 @param[in] BufferSize Size of buffer provided. It cannot be 0.
215 TcgInitTcgCreateStruct(
216 TCG_CREATE_STRUCT
*CreateStruct
,
224 Encodes the ComPacket header to the data structure.
226 @param[in/out] CreateStruct Structure to initialize
227 @param[in] ComId ComID of the Tcg ComPacket.
228 @param[in] ComIdExtension ComID Extension of the Tcg ComPacket.
234 TCG_CREATE_STRUCT
*CreateStruct
,
236 UINT16 ComIdExtension
242 Starts a new ComPacket in the Data structure.
244 @param[in/out] CreateStruct Structure used to add Tcg Packet
245 @param[in] Tsn Packet Tper session number
246 @param[in] Hsn Packet Host session number
247 @param[in] SeqNumber Packet Sequence Number
248 @param[in] AckType Packet Acknowledge Type
249 @param[in] Ack Packet Acknowledge
255 TCG_CREATE_STRUCT
*CreateStruct
,
265 Starts a new SubPacket in the Data structure.
267 @param[in/out] CreateStruct Structure used to start Tcg SubPacket
268 @param[in] Kind SubPacket kind
274 TCG_CREATE_STRUCT
*CreateStruct
,
281 Ends the current SubPacket in the Data structure. This function will also perform the 4-byte padding
282 required for Subpackets.
284 @param[in/out] CreateStruct Structure used to end the current Tcg SubPacket
290 TCG_CREATE_STRUCT
*CreateStruct
296 Ends the current Packet in the Data structure.
298 @param[in/out] CreateStruct Structure used to end the current Tcg Packet
304 TCG_CREATE_STRUCT
*CreateStruct
310 Ends the ComPacket in the Data structure and ret
312 @param[in/out] CreateStruct Structure used to end the Tcg ComPacket
313 @param[in/out] Size Describes the Size of the entire ComPacket (Header and payload). Filled out by function.
319 TCG_CREATE_STRUCT
*CreateStruct
,
324 Adds a single raw token byte to the Data structure.
326 @param[in/out] CreateStruct Structure used to add the byte
327 @param [in] Byte Byte to add
333 TCG_CREATE_STRUCT
*CreateStruct
,
340 Adds the Data parameter as a byte sequence to the Data structure.
342 @param [in/out] CreateStruct Structure used to add the byte sequence
343 @param[in] Data Byte sequence that will be encoded and copied into Data structure
344 @param[in] DataSize Length of Data provided
345 @param[in] Continued TRUE if byte sequence is continued or
346 FALSE if the Data contains the entire byte sequence to be encoded
352 TCG_CREATE_STRUCT
*CreateStruct
,
361 Adds an arbitrary-Length integer to the Data structure.
363 The integer will be encoded using the shortest possible atom.
365 @param[in/out] CreateStruct Structure used to add the integer
366 @param[in] Data Integer in host byte order that will be encoded and copied into Data structure
367 @param[in] DataSize Length in bytes of the Data provided
368 @param[in] SignedInteger TRUE if the integer is signed or FALSE if the integer is unsigned
374 TCG_CREATE_STRUCT
*CreateStruct
,
377 BOOLEAN SignedInteger
382 Adds an 8-bit unsigned integer to the Data structure.
384 @param[in/out] CreateStruct Structure used to add the integer
385 @param[in] Value Integer Value to add
391 TCG_CREATE_STRUCT
*CreateStruct
,
397 Adds a 16-bit unsigned integer to the Data structure.
399 @param[in/out] CreateStruct Structure used to add the integer
400 @param[in] Value Integer Value to add
406 TCG_CREATE_STRUCT
*CreateStruct
,
412 Adds a 32-bit unsigned integer to the Data structure.
414 @param[in/out] CreateStruct Structure used to add the integer
415 @param[in] Value Integer Value to add
421 TCG_CREATE_STRUCT
*CreateStruct
,
428 Adds a 64-bit unsigned integer to the Data structure.
430 @param[in/out] CreateStruct Structure used to add the integer
431 @param[in] Value Integer Value to add
437 TCG_CREATE_STRUCT
*CreateStruct
,
442 Adds a BOOLEAN to the Data structure.
444 @param[in/out] CreateStruct Structure used to add the integer
445 @param[in] Value BOOLEAN Value to add
451 TCG_CREATE_STRUCT
*CreateStruct
,
458 @param [in/out] CreateStruct Structure used to add the integer
459 @param Uid Input uid info.
461 @retval return the action result.
467 TCG_CREATE_STRUCT
*CreateStruct
,
472 Adds a Start List token to the Data structure.
474 @param[in/out] CreateStruct Structure used to add the token
480 TCG_CREATE_STRUCT
*CreateStruct
486 Adds an End List token to the Data structure.
488 @param [in/out] CreateStruct Structure used to add the token
494 TCG_CREATE_STRUCT
*CreateStruct
499 Adds a Start Name token to the Data structure.
501 @param[in/out] CreateStruct Structure used to add the token
507 TCG_CREATE_STRUCT
*CreateStruct
513 Adds an End Name token to the Data structure.
515 @param [in/out] CreateStruct Structure used to add the token
521 TCG_CREATE_STRUCT
*CreateStruct
526 Adds a Call token to the Data structure.
528 @param [in/out] CreateStruct Structure used to add the token
534 TCG_CREATE_STRUCT
*CreateStruct
540 Adds an End of Data token to the Data structure.
542 @param[in/out] CreateStruct Structure used to add the token
548 TCG_CREATE_STRUCT
*CreateStruct
554 Adds an End of Session token to the Data structure.
556 @param [in/out] CreateStruct Structure used to add the token
562 TCG_CREATE_STRUCT
*CreateStruct
567 Adds a Start Transaction token to the Data structure.
569 @param [in/out] CreateStruct Structure used to add the token
574 TcgAddStartTransaction(
575 TCG_CREATE_STRUCT
*CreateStruct
580 Adds an End Transaction token to the Data structure.
582 @param[in/out] CreateStruct Structure used to add the token
587 TcgAddEndTransaction(
588 TCG_CREATE_STRUCT
*CreateStruct
592 Initial the tcg parse stucture.
594 @param ParseStruct Input parse structure.
595 @param Buffer Input buffer data.
596 @param BufferSize Input buffer size.
598 @retval return the action result.
603 TcgInitTcgParseStruct(
604 TCG_PARSE_STRUCT
*ParseStruct
,
612 @param ParseStruct Input parse structure info.
613 @param TcgToken return the tcg token info.
615 @retval return the action result.
621 TCG_PARSE_STRUCT
*ParseStruct
,
628 @param ParseStruct Input parse structure.
629 @param Type Input the type need to check.
631 @retval return the action result.
637 TCG_PARSE_STRUCT
*ParseStruct
,
644 @param TcgToken Input token info.
645 @param HeaderLength return the header length.
646 @param DataLength return the data length.
647 @param ByteOrInt return the atom Type.
648 @param SignOrCont return the sign or count info.
650 @retval return the action result.
656 const TCG_TOKEN
*TcgToken
,
657 UINT32
*HeaderLength
,
664 Get token byte sequence.
666 @param TcgToken Input token info.
667 @param Length Input the length info.
669 @retval Return the value data.
674 TcgGetTokenByteSequence(
675 const TCG_TOKEN
*TcgToken
,
680 Get token specified value.
682 @param TcgToken Input token info.
683 @param Value return the value.
685 @retval return the action result.
691 const TCG_TOKEN
*TcgToken
,
697 Get next specify value.
699 @param ParseStruct Input parse structure.
700 @param Value Return vlaue.
702 @retval return the action result.
708 TCG_PARSE_STRUCT
*ParseStruct
,
714 Get next specify value.
716 @param ParseStruct Input parse structure.
717 @param Value Return vlaue.
719 @retval return the action result.
725 TCG_PARSE_STRUCT
*ParseStruct
,
730 Get next specify value.
732 @param ParseStruct Input parse structure.
733 @param Value Return vlaue.
735 @retval return the action result.
741 TCG_PARSE_STRUCT
*ParseStruct
,
746 Get next specify value.
748 @param ParseStruct Input parse structure.
749 @param Value Return vlaue.
751 @retval return the action result.
757 TCG_PARSE_STRUCT
*ParseStruct
,
762 Get next specify value.
764 @param ParseStruct Input parse structure.
765 @param Value Return vlaue.
767 @retval return the action result.
773 TCG_PARSE_STRUCT
*ParseStruct
,
778 Get next tcg uid info.
780 @param ParseStruct Input parse structure.
781 @param Uid Get the uid info.
783 @retval return the action result.
789 TCG_PARSE_STRUCT
*ParseStruct
,
794 Get next byte sequence.
796 @param ParseStruct Input parse structure.
797 @param Data return the data.
798 @param Length return the length.
800 @retval return the action result.
805 TcgGetNextByteSequence(
806 TCG_PARSE_STRUCT
*ParseStruct
,
814 @param ParseStruct Input parse structure.
816 @retval return the action result.
822 TCG_PARSE_STRUCT
*ParseStruct
828 @param ParseStruct Input parse structure.
830 @retval return the action result.
836 TCG_PARSE_STRUCT
*ParseStruct
842 @param ParseStruct Input parse structure.
844 @retval return the action result.
850 TCG_PARSE_STRUCT
*ParseStruct
856 @param ParseStruct Input parse structure.
858 @retval return the action result.
864 TCG_PARSE_STRUCT
*ParseStruct
870 @param ParseStruct Input parse structure.
872 @retval return the action result.
878 TCG_PARSE_STRUCT
*ParseStruct
884 @param ParseStruct Input parse structure.
886 @retval return the action result.
892 TCG_PARSE_STRUCT
*ParseStruct
896 Get next end of session.
898 @param ParseStruct Input parse structure.
900 @retval return the action result.
905 TcgGetNextEndOfSession(
906 TCG_PARSE_STRUCT
*ParseStruct
910 Get next start transaction.
912 @param ParseStruct Input parse structure.
914 @retval return the action result.
919 TcgGetNextStartTransaction(
920 TCG_PARSE_STRUCT
*ParseStruct
924 Get next end transaction.
926 @param ParseStruct Input parse structure.
928 @retval return the action result.
933 TcgGetNextEndTransaction(
934 TCG_PARSE_STRUCT
*ParseStruct
937 // end of parse functions
942 (EFIAPI
* TCG_LEVEL0_ENUM_CALLBACK
) (
943 const TCG_LEVEL0_DISCOVERY_HEADER
*DiscoveryHeader
,
944 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER
*Feature
,
945 UINTN FeatureSize
, // includes header
950 Adds call token and method Header (invoking id, and method id).
952 @param CreateStruct The input create structure.
953 @param InvokingId Invoking id.
954 @param MethodId Method id.
960 TCG_CREATE_STRUCT
*CreateStruct
,
966 Adds START LIST token.
968 @param CreateStruct The input create structure.
974 TCG_CREATE_STRUCT
*CreateStruct
980 @param CreateStruct The input create structure.
986 TCG_CREATE_STRUCT
*CreateStruct
990 Adds END Data token and method list.
992 @param CreateStruct The input create structure.
998 TCG_CREATE_STRUCT
*CreateStruct
1003 Adds Start Session call to the data structure. This creates the entire ComPacket structure and
1004 returns the size of the entire compacket in the size parameter.
1006 @param [in/out] CreateStruct Structure used to add the start session call
1007 @param [in/out] Size Describes the size of the entire ComPacket (header and payload). Filled out by function.
1008 @param [in] ComId ComID for the ComPacket
1009 @param [in] ComIdExtension Extended ComID for the ComPacket
1010 @param [in] HostSessionId Host Session ID
1011 @param [in] SpId Security Provider to start session with
1012 @param [in] Write Write option for start session. TRUE = start session requests write access
1013 @param [in] HostChallengeLength Length of the host challenge. Length should be 0 if hostChallenge is NULL
1014 @param [in] HostChallenge Host challenge for Host Signing Authority. If NULL, then no Host Challenge shall be sent.
1015 @param [in] HostSigningAuthority Host Signing Authority used for start session. If NULL, then no Host Signing Authority shall be sent.
1020 TcgCreateStartSession(
1021 TCG_CREATE_STRUCT
*CreateStruct
,
1024 UINT16 ComIdExtension
,
1025 UINT32 HostSessionId
,
1028 UINT32 HostChallengeLength
,
1029 const VOID
*HostChallenge
,
1030 TCG_UID HostSigningAuthority
1034 Creates ComPacket with a Method call that sets the PIN column for the row specified.
1035 This assumes a start session has already been opened with the desired SP.
1037 @param [in/out] CreateStruct Structure used to add method call.
1038 @param [in/out] Size Describes the size of the entire ComPacket (header and payload). Filled out by function.
1039 @param [in] ComId ComID for the ComPacket
1040 @param [in] ComIdExtension Extended ComID for the ComPacket
1041 @param [in] TperSession Tper Session ID for the Packet
1042 @param [in] HostSession Host Session ID for the Packet
1043 @param [in] SidRow UID of row of current SP to set PIN column
1044 @param [in] Password value of PIN to set
1045 @param [in] PasswordSize Size of PIN
1051 TCG_CREATE_STRUCT
*CreateStruct
,
1054 UINT16 ComIdExtension
,
1058 const VOID
*Password
,
1063 Creates ComPacket with a Method call that sets the "Enabled" column for the row specified using the value specified.
1064 This assumes a start session has already been opened with the desired SP.
1066 @param [in/out] CreateStruct Structure used to add method call
1067 @param [in/out] Size Describes the size of the entire ComPacket (header and payload). Filled out by function.
1068 @param [in] ComId ComID for the ComPacket
1069 @param [in] ComIdExtension Extended ComID for the ComPacket
1070 @param [in] TperSession Tper Session ID for the Packet
1071 @param [in] HostSession Host Session ID for the Packet
1072 @param [in] AuthorityUid Authority UID to modify the "Enabled" column for
1073 @param [in] Enabled Value to set the "Enabled" column to
1078 TcgSetAuthorityEnabled(
1079 TCG_CREATE_STRUCT
*CreateStruct
,
1082 UINT16 ComIdExtension
,
1085 TCG_UID AuthorityUid
,
1091 Creates ComPacket with EndSession.
1092 This assumes a start session has already been opened.
1094 @param [in/out] CreateStruct Structure used to add Endsession
1095 @param [in/out] Size Describes the size of the entire ComPacket (header and payload). Filled out by function.
1096 @param [in] ComId ComID for the ComPacket
1097 @param [in] ComIdExtension Extended ComID for the ComPacket
1098 @param [in] HostSessionId Host Session ID for the Packet
1099 @param [in] TpSessionId Tper Session ID for the Packet
1104 TcgCreateEndSession(
1105 TCG_CREATE_STRUCT
*CreateStruct
,
1108 UINT16 ComIdExtension
,
1109 UINT32 HostSessionId
,
1116 Retrieves human-readable token type name.
1118 @param[in] Type Token type to retrieve
1128 Returns the method status of the current subpacket. Does not affect the current position
1129 in the ComPacket. In other words, it can be called whenever you have a valid SubPacket.
1131 @param [in/out] ParseStruct Structure used to parse received TCG response
1132 @param [in/out] MethodStatus Method status retrieved of the current SubPacket
1138 const TCG_PARSE_STRUCT
*ParseStruct
,
1143 Returns a human-readable string representing a method status return code.
1145 @param[in] MethodStatus Method status to translate to a string
1148 @retval return the string info.
1152 TcgMethodStatusString(
1158 Retrieves the comID and Extended comID of the ComPacket in the Tcg response.
1159 It is intended to be used to confirm the received Tcg response is intended for user that received it.
1161 @param [in] ParseStruct Structure used to parse received TCG response.
1162 @param [in/out] ComId comID retrieved from received ComPacket.
1163 @param [in/out] ComIdExtension Extended comID retrieved from received ComPacket
1169 const TCG_PARSE_STRUCT
*ParseStruct
,
1171 UINT16
*ComIdExtension
1175 Checks if the ComIDs of the response match the expected values.
1177 @param[in] ParseStruct Structure used to parse received TCG response
1178 @param[in] ExpectedComId Expected comID
1179 @param[in] ExpectedComIdExtension Expected extended comID
1185 const TCG_PARSE_STRUCT
*ParseStruct
,
1186 UINT16 ExpectedComId
,
1187 UINT16 ExpectedComIdExtension
1191 Parses the Sync Session response contained in the parseStruct to retrieve Tper session ID. If the Sync Session response
1192 parameters do not match the comID, extended ComID and host session ID then a failure is returned.
1194 @param[in/out] ParseStruct Structure used to parse received TCG response, contains Sync Session response.
1195 @param[in] ComId Expected ComID that is compared to actual ComID of response
1196 @param[in] ComIdExtension Expected Extended ComID that is compared to actual Extended ComID of response
1197 @param[in] HostSessionId Expected Host Session ID that is compared to actual Host Session ID of response
1198 @param[in/out] TperSessionId Tper Session ID retrieved from the Sync Session response.
1203 TcgParseSyncSession(
1204 const TCG_PARSE_STRUCT
*ParseStruct
,
1206 UINT16 ComIdExtension
,
1207 UINT32 HostSessionId
,
1208 UINT32
*TperSessionId
1214 @param CreateStruct Input create structure.
1215 @param Size size info.
1216 @param ComId ComId info.
1217 @param ComIdExtension ComId extension info.
1218 @param TperSession Tper session data.
1219 @param HostSession Host session data.
1220 @param AceRow Ace row info.
1221 @param Authority1 Authority 1 info.
1222 @param LogicalOperator Logiccal operator info.
1223 @param Authority2 Authority 2 info.
1225 @retval Return the action result.
1231 TCG_CREATE_STRUCT
*CreateStruct
,
1234 UINT16 ComIdExtension
,
1239 BOOLEAN LogicalOperator
,
1244 Enum level 0 discovery.
1246 @param DiscoveryHeader Discovery header.
1247 @param Callback Callback function.
1248 @param Context The context for the function.
1250 @retval return true if the callback return TRUE, else return FALSE.
1255 TcgEnumLevel0Discovery(
1256 const TCG_LEVEL0_DISCOVERY_HEADER
*DiscoveryHeader
,
1257 TCG_LEVEL0_ENUM_CALLBACK Callback
,
1262 Get Feature code from the header.
1264 @param DiscoveryHeader The discovery header.
1265 @param FeatureCode reutrn the Feature code.
1266 @param FeatureSize return the Feature size.
1268 @retval return the Feature code data.
1270 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER
*
1273 const TCG_LEVEL0_DISCOVERY_HEADER
*DiscoveryHeader
,
1279 Determines if the protocol provided is part of the provided supported protocol list.
1281 @param[in] ProtocolList Supported protocol list to investigate
1282 @param[in] Protocol Protocol value to determine if supported
1284 @return TRUE = protocol is supported, FALSE = protocol is not supported
1288 TcgIsProtocolSupported(
1289 const TCG_SUPPORTED_SECURITY_PROTOCOLS
*ProtocolList
,
1294 Determines if the Locking Feature "Locked" bit is set in the level 0 discovery response.
1296 @param[in] Discovery Level 0 discovery response
1298 @return TRUE = Locked is set, FALSE = Locked is false
1304 const TCG_LEVEL0_DISCOVERY_HEADER
*Discovery
1310 #endif // _TCG_CORE_H_