tpm2_setco...uditstatus(1)
๐ tpm2_setcommandauditstatus(1) โ General Commands Manual ๐
okay bestie, pull up a chair, because this is the page for tpm2_setcommandauditstatus(1) and it's genuinely iconic. no cap.
โจ NAME โจ
tpm2_setcommandauditstatus(1) โ add or remove TPM2 commands from the audited commands list. that's it, that's the whole vibe. ๐
โจ SYNOPSIS โจ
tpm2_setcommandauditstatus [OPTIONS] [ARGUMENT]
โจ DESCRIPTION โจ
so, tpm2_setcommandauditstatus(1) does exactly what it says on the tin (iconic behaviour, honestly): it adds TPM2 commands to the audited commands list, or takes them off. ๐
as an argument it takes the command as an integer or as a friendly string value. the friendly-string-to-COMMAND-CODE mapping lives down in the COMMAND CODE MAPPINGS section, so scroll when you need it, iykyk. ๐ฆ
โจ OPTIONS โจ
-C,--hierarchy=OBJECTโ specify either the owner or platform hierarchy. defaults toTPM_RH_OWNERwhen no value has been specified. the supported options are:oforTPM_RH_OWNERpforTPM_RH_PLATFORM
-P,--hierarchy-auth=AUTHโ specifies the authorization value for the hierarchy. these authorization values should follow the "authorization formatting standards", see the section "Authorization Formatting". ๐ซถ-c,--clear-listโ says that the TPM command you specified has to be taken off the audit list. when it's not specified, the default behaviour is to add the TPM command to the audit list. literally that simple. โจ-g,--hash-algorithm=ALGORITHMโ sets up the hashing algorithm for the audit digest. when it's not specified, the default audit digest algorithm is set toSHA256. periodt. ๐ARGUMENTโ the command line argument that specifies the TPM2 command code. fr, that's what it's for. ๐
References
(this one's just a heading in the original, so hey, here it is โ hi bestie ๐)
โจ COMMON OPTIONS โจ
this little collection of options is common to many programs and provides information that many users may expect. consider it the shared wardrobe everyone borrows from. ๐ง
-h,--help=[man|no-man]โ display the tool's manpage. by default it tries to invoke the manpager for the tool, but on failure it will output a short tool summary. this is the same behavior if the "man" option argument is specified โ however, if explicit "man" is requested, the tool will provide errors from man on stderr. if the "no-man" option is specified (or the manpager just fails), the short options will be output to stdout. to successfully use the manpages feature you need the manpages installed or onMANPATHโ seeman(1)for more details. ๐-v,--versionโ display version information for this tool plus the supported tctis, then exit. short and sweet. ๐ซ-V,--verboseโ increase the information the tool prints to the console during its execution. when you use this option, the file and line number are printed. very "tell me everything" of it. ๐-Q,--quietโ silence normal tool output to stdout. shhh. ๐คซ-Z,--enable-errataโ enable the application of errata fixups. useful if an errata fixup needs to be applied to commands sent to the TPM. defining the environment variableTPM2TOOLS_ENABLE_ERRATAis equivalent. ๐ ๏ธ-z,--pwd-sessionโ use a password session instead of a HMAC session for authentication. a clear text password is passed to the TPM to authorize the action. this option can be used to avoid problems when unsalted sessions are used in OpenSSL FIPS mode. if auth values are used, a salted session should be used for authentication. ๐-R,--autoflushโ enable autoflush for transient objects created by the command. if a parent object is loaded from a context file, also the transient parent object will be flushed. autoflush can also be activated if the environment variableTPM2TOOLS_AUTOFLUSHis is set toyesortrue. information many users may expect. ๐ฝโจ
TCTI Configuration
the TCTI, or "Transmission Interface", is the communication mechanism with the TPM. TCTIs can be changed for communication with TPMs across different mediums. it's giving "universal adapter." ๐
to control the TCTI, the tools respect:
- the command line option
-Tor--tcti - the environment variable:
TPM2TOOLS_TCTI.
Note: the command line option always overrides the environment variable. always. no debate. ๐
the current known TCTIs are:
tabrmdโ the resource manager, called tabrmd. note thattabrmdandabrmdas a tcti name are synonymous. ๐ฏmssimโ typically used for communicating to the TPM software simulator. ๐ฅ๏ธdeviceโ used when talking directly to a TPM device file. ๐noneโ do not initalize a connection with the TPM. some tools allow for off-tpm options and thus support not using a TCTI. tools that do not support it will error when attempted to be used without a TCTI connection. does not support ANY options and MUST BE presented as the exact text of"none". ๐ซ
the arguments to either the command line option or the environment variable are in the form:
<tcti-name>:<tcti-option-config>
specifying an empty string for either the <tcti-name> or the <tcti-option-config> results in the default being used for that portion respectively. ๐
TCTI Defaults
when a TCTI is not specified, the default TCTI is searched for using dlopen(3) semantics. the tools will search for tabrmd, device and mssim TCTIs IN THAT ORDER and USE THE FIRST ONE FOUND. you can query what TCTI will be chosen as the default by using the -v option to print the version information. the "default-tcti" key-value pair will indicate which of the aforementioned TCTIs is the default. ๐
Custom TCTIs
any TCTI that implements the dynamic TCTI interface can be loaded. the tools internally use dlopen(3), and the raw tcti-name value is used for the lookup. thus, this could be a path to the shared library, or a library name as understood by dlopen(3) semantics. bring your own, bestie. ๐งโโ๏ธ
โจ TCTI OPTIONS โจ
this collection of options is used to configure the various known TCTI modules available:
deviceโ for the device TCTI, the TPM character device file for use by the device TCTI can be specified. the default is/dev/tpm0.
Example: -T device:/dev/tpm0 or export TPM2TOOLS_TCTI="device:/dev/tpm0"
mssimโ for the mssim TCTI, the domain name or IP address and port number used by the simulator can be specified. the defaults are127.0.0.1and2321.
Example: -T mssim:host=localhost,port=2321 or export TPM2TOOLS_TCTI="mssim:host=localhost,port=2321"
abrmdโ for the abrmd TCTI, the configuration string format is a series of simple key value pairs separated by a,character. each key and value string are separated by a=character.
the TCTI abrmd supports two keys:
bus_name: the name of the tabrmd service on the bus (a string).bus_type: the type of the dbus instance (a string) limited tosessionandsystem.
specify the tabrmd tcti name and a config string of bus_name=com.example.FooBar:
\--tcti=tabrmd:bus_name=com.example.FooBar
specify the default (abrmd) tcti and a config string of bus_type=session:
\--tcti:bus_type=session
NOTE:abrmdandtabrmdare synonymous. the various known TCTI modules. ๐ซถ
- hash algorithm options โ collection of options to specify hash algorithm. ๐งฎ
โจ COMMAND CODE MAPPINGS โจ
the friendly strings below can be used en lieu of the raw integer values. literally type the vibe, not the number. ๐ซ
-TPM2_CC_AC_GetCapability: 0x194
-TPM2_CC_AC_Send: 0x195
-TPM2_CC_ActivateCredential: 0x147
-TPM2_CC_Certify: 0x148
-TPM2_CC_CertifyCreation: 0x14a
-TPM2_CC_ChangeEPS: 0x124
-TPM2_CC_ChangePPS: 0x125
-TPM2_CC_Clear: 0x126
-TPM2_CC_ClearControl: 0x127
-TPM2_CC_ClockRateAdjust: 0x130
-TPM2_CC_ClockSet: 0x128
-TPM2_CC_Commit: 0x18b
-TPM2_CC_ContextLoad: 0x161
-TPM2_CC_ContextSave: 0x162
-TPM2_CC_Create: 0x153
-TPM2_CC_CreateLoaded: 0x191
-TPM2_CC_CreatePrimary: 0x131
-TPM2_CC_DictionaryAttackLockReset: 0x139
-TPM2_CC_DictionaryAttackParameters: 0x13a
-TPM2_CC_Duplicate: 0x14b
-TPM2_CC_ECC_Parameters: 0x178
-TPM2_CC_ECDH_KeyGen: 0x163
-TPM2_CC_ECDH_ZGen: 0x154
-TPM2_CC_EC_Ephemeral: 0x18e
-TPM2_CC_EncryptDecrypt: 0x164
-TPM2_CC_EncryptDecrypt2: 0x193
-TPM2_CC_EventSequenceComplete: 0x185
-TPM2_CC_EvictControl: 0x120
-TPM2_CC_FieldUpgradeData: 0x141
-TPM2_CC_FieldUpgradeStart: 0x12f
-TPM2_CC_FirmwareRead: 0x179
-TPM2_CC_FlushContext: 0x165
-TPM2_CC_GetCapability: 0x17a
-TPM2_CC_GetCommandAuditDigest: 0x133
-TPM2_CC_GetRandom: 0x17b
-TPM2_CC_GetSessionAuditDigest: 0x14d
-TPM2_CC_GetTestResult: 0x17c
-TPM2_CC_GetTime: 0x14c
-TPM2_CC_Hash: 0x17d
-TPM2_CC_HashSequenceStart: 0x186
-TPM2_CC_HierarchyChangeAuth: 0x129
-TPM2_CC_HierarchyControl: 0x121
-TPM2_CC_HMAC: 0x155
-TPM2_CC_HMAC_Start: 0x15b
-TPM2_CC_Import: 0x156
-TPM2_CC_IncrementalSelfTest: 0x142
-TPM2_CC_Load: 0x157
-TPM2_CC_LoadExternal: 0x167
-TPM2_CC_MakeCredential: 0x168
-TPM2_CC_NV_Certify: 0x184
-TPM2_CC_NV_ChangeAuth: 0x13b
-TPM2_CC_NV_DefineSpace: 0x12a
-TPM2_CC_NV_Extend: 0x136
-TPM2_CC_NV_GlobalWriteLock: 0x132
-TPM2_CC_NV_Increment: 0x134
-TPM2_CC_NV_Read: 0x14e
-TPM2_CC_NV_ReadLock: 0x14f
-TPM2_CC_NV_ReadPublic: 0x169
-TPM2_CC_NV_SetBits: 0x135
-TPM2_CC_NV_UndefineSpace: 0x122
-TPM2_CC_NV_UndefineSpaceSpecial: 0x11f
-TPM2_CC_NV_Write: 0x137
-TPM2_CC_NV_WriteLock: 0x138
-TPM2_CC_ObjectChangeAuth: 0x150
-TPM2_CC_PCR_Allocate: 0x12b
-TPM2_CC_PCR_Event: 0x13c
-TPM2_CC_PCR_Extend: 0x182
-TPM2_CC_PCR_Read: 0x17e
-TPM2_CC_PCR_Reset: 0x13d
-TPM2_CC_PCR_SetAuthPolicy: 0x12c
-TPM2_CC_PCR_SetAuthValue: 0x183
-TPM2_CC_Policy_AC_SendSelect: 0x196
-TPM2_CC_PolicyAuthorize: 0x16a
-TPM2_CC_PolicyAuthorizeNV: 0x192
-TPM2_CC_PolicyAuthValue: 0x16b
-TPM2_CC_PolicyCommandCode: 0x16c
-TPM2_CC_PolicyCounterTimer: 0x16d
-TPM2_CC_PolicyCpHash: 0x16e
-TPM2_CC_PolicyDuplicationSelect: 0x188
-TPM2_CC_PolicyGetDigest: 0x189
-TPM2_CC_PolicyLocality: 0x16f
-TPM2_CC_PolicyNameHash: 0x170
-TPM2_CC_PolicyNV: 0x149
-TPM2_CC_PolicyNvWritten: 0x18f
-TPM2_CC_PolicyOR: 0x171
-TPM2_CC_PolicyPassword: 0x18c
-TPM2_CC_PolicyPCR: 0x17f
-TPM2_CC_PolicyPhysicalPresence: 0x187
-TPM2_CC_PolicyRestart: 0x180
-TPM2_CC_PolicySecret: 0x151
-TPM2_CC_PolicySigned: 0x160
-TPM2_CC_PolicyTemplate: 0x190
-TPM2_CC_PolicyTicket: 0x172
-TPM2_CC_PP_Commands: 0x12d
-TPM2_CC_Quote: 0x158
-TPM2_CC_ReadClock: 0x181
-TPM2_CC_ReadPublic: 0x173
-TPM2_CC_Rewrap: 0x152
-TPM2_CC_RSA_Decrypt: 0x159
-TPM2_CC_RSA_Encrypt: 0x174
-TPM2_CC_SelfTest: 0x143
-TPM2_CC_SequenceComplete: 0x13e
-TPM2_CC_SequenceUpdate: 0x15c
-TPM2_CC_SetAlgorithmSet: 0x13f
-TPM2_CC_SetCommandCodeAuditStatus: 0x140
-TPM2_CC_SetPrimaryPolicy: 0x12e
-TPM2_CC_Shutdown: 0x145
-TPM2_CC_Sign: 0x15d
-TPM2_CC_StartAuthSession: 0x176
-TPM2_CC_Startup: 0x144
-TPM2_CC_StirRandom: 0x146
-TPM2_CC_TestParms: 0x18a
-TPM2_CC_Unseal: 0x15e
-TPM2_CC_Vendor_TCG_Test: 0x20000000
-TPM2_CC_VerifySignature: 0x177
-TPM2_CC_ZGen_2Phase: 0x18d
โจ EXAMPLES โจ
add TPM2_CC_Unseal to the list of audited commands. look at her go ๐ซถ
tpm2_setcommandauditstatus TPM2_CC_Unseal
โจ Returns โจ
tools can return any of the following codes:
0โ success. ๐1โ general non-specific error. ๐ญ2โ options handling error. ๐3โ authentication error. ๐4โ TCTI related error. ๐5โ non supported scheme. applicable totpm2_testparams. ๐
(part 1 done, but we're not done-done โ more coming, bestie ๐)
๐ LIMITATIONS ๐
Okay bestie, listen up because this one's important โ no cap.
This tool expects a session to be already established via tpm2_startauthsession(1), and it needs one of the following to actually work:
- direct device access ๐
- extended session support with
tpm2-abrmd
Without it, most resource managers will not save session state between command invocations. Like, the vibe check fails and your session justโฆ vanishes into the void ๐ญ. Fr fr, set up the session first or you're gonna have a bad time.
๐ BUGS ๐
Spotted a bug? Don't suffer in silence, bestie โ slide into the Github Issues. That's literally where the bug reports live. Go be the main character who files a clean repro. ๐ซถ
๐ HELP ๐
Need a human? See the Mailing List. The community is there, they're iconic, they will help you out. โจ
๐ LICENSE ๐
This work is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0). Slay, legally speaking. ๐
And that's a wrap on the whole page, bestie! ๐ This gem comes to you from tpm2-tools โ that's the source for the page you just read โ with the date chilling down in the footer where manpage footers always live. Go forth, audit those creation statuses, and remember: session first, questions later. ๐๐ฆโญ
๐ฆ where this page comes from
- arch rolling: tpm2-tools 5.8-1 ยท BSD-3-Clause
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms