1tpm2_nvincrement(1)         General Commands Manual        tpm2_nvincrement(1)
2
3
4

NAME

6       tpm2_nvincrement(1) - Increment counter in a Non-Volatile (NV) index.
7

SYNOPSIS

9       tpm2_nvincrement [OPTIONS] [ARGUMENT]
10

DESCRIPTION

12       tpm2_nvincrement(1) - Increment value of a Non-Volatile (NV) index set‐
13       up as a counter.  The index can be specified as raw handle or an offset
14       value to the nv handle range “TPM2_HR_NV_INDEX”.
15

OPTIONS

17-C, --hierarchy=OBJECT:
18         Specifies the hierarchy used to authorize.  Supported options are:
19
20o for TPM_RH_OWNER
21
22p for TPM_RH_PLATFORM
23
24<num> where a hierarchy handle or nv-index may be used.
25
26         When  -C isn’t explicitly passed the index handle will be used to au‐
27         thorize against the index.  The index auth value is set  via  the  -p
28         option to tpm2_nvdefine(1).
29
30-P, --auth=AUTH:
31
32         Specifies the authorization value for the hierarchy.
33
34--cphash=FILE
35
36         File path to record the hash of the command parameters.  This is com‐
37         monly termed as cpHash.  NOTE: When this option is selected, The tool
38         will not actually execute the command, it simply returns a cpHash un‐
39         less rphash is also required.
40
41--rphash=FILE
42
43         File path to record the hash of the  response  parameters.   This  is
44         commonly termed as rpHash.
45
46-S, --session=FILE:
47
48         The session created using tpm2_startauthsession.  This can be used to
49         specify an auxiliary session for auditing and  or  encryption/decryp‐
50         tion of the parameters.
51
52-n, --name=FILE:
53
54         The  name of the NV index that must be provided when only calculating
55         the cpHash without actually dispatching the command to the TPM.
56
57ARGUMENT the command line argument specifies the NV index  or  offset
58         number.
59
60   References

Context Object Format

62       The  type  of a context object, whether it is a handle or file name, is
63       determined according to the following logic in-order:
64
65       • If the argument is a file path, then the file is loaded as a restored
66         TPM transient object.
67
68       • If the argument is a prefix match on one of:
69
70         • owner: the owner hierarchy
71
72         • platform: the platform hierarchy
73
74         • endorsement: the endorsement hierarchy
75
76         • lockout: the lockout control persistent object
77
78       • If  the  argument argument can be loaded as a number it will be treat
79         as a handle, e.g. 0x81010013 and used directly._OBJECT_.
80

Authorization Formatting

82       Authorization for use of an object in TPM2.0 can come  in  3  different
83       forms: 1.  Password 2.  HMAC 3.  Sessions
84
85       NOTE:  “Authorizations  default  to  the EMPTY PASSWORD when not speci‐
86       fied”.
87
88   Passwords
89       Passwords are interpreted in the following  forms  below  using  prefix
90       identifiers.
91
92       Note:  By  default  passwords are assumed to be in the string form when
93       they do not have a prefix.
94
95   String
96       A string password, specified by prefix  “str:”  or  it’s  absence  (raw
97       string without prefix) is not interpreted, and is directly used for au‐
98       thorization.
99
100   Examples
101              foobar
102              str:foobar
103
104   Hex-string
105       A hex-string password, specified by prefix “hex:” is converted  from  a
106       hexidecimal  form  into a byte array form, thus allowing passwords with
107       non-printable and/or terminal un-friendly characters.
108
109   Example
110              hex:1122334455667788
111
112   File
113       A file based password, specified be prefix “file:” should be  the  path
114       of  a  file  containing the password to be read by the tool or a “-” to
115       use stdin.  Storing passwords in files  prevents  information  leakage,
116       passwords passed as options can be read from the process list or common
117       shell history features.
118
119   Examples
120              # to use stdin and be prompted
121              file:-
122
123              # to use a file from a path
124              file:path/to/password/file
125
126              # to echo a password via stdin:
127              echo foobar | tpm2_tool -p file:-
128
129              # to use a bash here-string via stdin:
130
131              tpm2_tool -p file:- <<< foobar
132
133   Sessions
134       When using a policy session to authorize the use of an  object,  prefix
135       the  option argument with the session keyword.  Then indicate a path to
136       a session file that was created with tpm2_startauthsession(1).  Option‐
137       ally, if the session requires an auth value to be sent with the session
138       handle (eg policy password), then append a + and a string as  described
139       in the Passwords section.
140
141   Examples
142       To use a session context file called session.ctx.
143
144              session:session.ctx
145
146       To use a session context file called session.ctx AND send the authvalue
147       mypassword.
148
149              session:session.ctx+mypassword
150
151       To use a session context file called session.ctx AND send the HEX auth‐
152       value 0x11223344.
153
154              session:session.ctx+hex:11223344
155
156   PCR Authorizations
157       You  can satisfy a PCR policy using the “pcr:” prefix and the PCR mini‐
158       language.      The     PCR     minilanguage     is     as      follows:
159       <pcr-spec>=<raw-pcr-file>
160
161       The PCR spec is documented in in the section “PCR bank specifiers”.
162
163       The  raw-pcr-file  is  an optional argument that contains the output of
164       the raw PCR contents as returned by tpm2_pcrread(1).
165
166       PCR bank specifiers (pcr.md)
167
168   Examples
169       To satisfy a PCR policy of sha256 on banks 0, 1, 2 and 3 use a specifi‐
170       er of:
171
172              pcr:sha256:0,1,2,3
173
174       specifying AUTH.
175

COMMON OPTIONS

177       This  collection of options are common to many programs and provide in‐
178       formation that many users may expect.
179
180-h, --help=[man|no-man]: Display the tools manpage.  By  default,  it
181         attempts  to  invoke  the  manpager for the tool, however, on failure
182         will output a short tool summary.  This is the same behavior  if  the
183         “man”  option argument is specified, however if explicit “man” is re‐
184         quested, the tool will provide errors from man  on  stderr.   If  the
185         “no-man”  option  if  specified, or the manpager fails, the short op‐
186         tions will be output to stdout.
187
188         To successfully use the manpages feature requires the manpages to  be
189         installed or on MANPATH, See man(1) for more details.
190
191-v,  --version:  Display version information for this tool, supported
192         tctis and exit.
193
194-V, --verbose: Increase the information that the tool prints  to  the
195         console  during  its  execution.  When using this option the file and
196         line number are printed.
197
198-Q, --quiet: Silence normal tool output to stdout.
199
200-Z, --enable-errata: Enable the application of errata fixups.  Useful
201         if  an  errata fixup needs to be applied to commands sent to the TPM.
202         Defining the environment TPM2TOOLS_ENABLE_ERRATA is equivalent.   in‐
203         formation many users may expect.
204

TCTI Configuration

206       The  TCTI  or  “Transmission  Interface” is the communication mechanism
207       with the TPM.  TCTIs can be changed for communication with TPMs  across
208       different mediums.
209
210       To control the TCTI, the tools respect:
211
212       1. The command line option -T or --tcti
213
214       2. The environment variable: TPM2TOOLS_TCTI.
215
216       Note:  The  command  line option always overrides the environment vari‐
217       able.
218
219       The current known TCTIs are:
220
221       • tabrmd     -     The     resource     manager,     called      tabrmd
222         (https://github.com/tpm2-software/tpm2-abrmd).   Note that tabrmd and
223         abrmd as a tcti name are synonymous.
224
225       • mssim - Typically used for communicating to the TPM software  simula‐
226         tor.
227
228       • device - Used when talking directly to a TPM device file.
229
230       • none  - Do not initalize a connection with the TPM.  Some tools allow
231         for off-tpm options and thus support not using a TCTI.  Tools that do
232         not  support  it  will error when attempted to be used without a TCTI
233         connection.  Does not support ANY options and MUST  BE  presented  as
234         the exact text of “none”.
235
236       The  arguments  to  either  the  command line option or the environment
237       variable are in the form:
238
239       <tcti-name>:<tcti-option-config>
240
241       Specifying an empty string for  either  the  <tcti-name>  or  <tcti-op‐
242       tion-config> results in the default being used for that portion respec‐
243       tively.
244
245   TCTI Defaults
246       When a TCTI is not specified, the default TCTI is  searched  for  using
247       dlopen(3)  semantics.   The  tools  will  search for tabrmd, device and
248       mssim TCTIs IN THAT ORDER and USE THE FIRST ONE FOUND.  You  can  query
249       what TCTI will be chosen as the default by using the -v option to print
250       the version information.  The “default-tcti” key-value pair will  indi‐
251       cate which of the aforementioned TCTIs is the default.
252
253   Custom TCTIs
254       Any TCTI that implements the dynamic TCTI interface can be loaded.  The
255       tools internally use dlopen(3), and the raw tcti-name value is used for
256       the lookup.  Thus, this could be a path to the shared library, or a li‐
257       brary name as understood by dlopen(3) semantics.
258

TCTI OPTIONS

260       This collection of options are used to configure the various known TCTI
261       modules available:
262
263device: For the device TCTI, the TPM character device file for use by
264         the device TCTI can be specified.  The default is /dev/tpm0.
265
266         Example:   -T   device:/dev/tpm0   or   export    TPM2TOOLS_TCTI=“de‐
267         vice:/dev/tpm0”
268
269mssim:  For  the  mssim  TCTI, the domain name or IP address and port
270         number used by the simulator  can  be  specified.   The  default  are
271         127.0.0.1 and 2321.
272
273         Example:  -T  mssim:host=localhost,port=2321  or export TPM2TOOLS_TC‐
274         TI=“mssim:host=localhost,port=2321”
275
276abrmd: For the abrmd TCTI, the configuration string format is  a  se‐
277         ries  of  simple  key value pairs separated by a `,' character.  Each
278         key and value string are separated by a `=' character.
279
280         • TCTI abrmd supports two keys:
281
282           1. `bus_name' : The name of  the  tabrmd  service  on  the  bus  (a
283              string).
284
285           2. `bus_type' : The type of the dbus instance (a string) limited to
286              `session' and `system'.
287
288         Specify the tabrmd tcti name and a config string of  bus_name=com.ex‐
289         ample.FooBar:
290
291                \--tcti=tabrmd:bus_name=com.example.FooBar
292
293         Specify the default (abrmd) tcti and a config string of bus_type=ses‐
294         sion:
295
296                \--tcti:bus_type=session
297
298         NOTE: abrmd and tabrmd are synonymous.  the various known  TCTI  mod‐
299         ules.
300

EXAMPLES

302   To increment the counter at index 0x150016
303              tpm2_nvdefine -C o -s 8 -a "ownerread|authread|authwrite|nt=1" 0x1500016 -p index
304
305              tpm2_nvincrement -C 0x1500016  0x1500016 -P "index"
306
307              tpm2_nvread 0x1500016 -P index | xxd -p
308

Returns

310       Tools can return any of the following codes:
311
312       • 0 - Success.
313
314       • 1 - General non-specific error.
315
316       • 2 - Options handling error.
317
318       • 3 - Authentication error.
319
320       • 4 - TCTI related error.
321
322       • 5 - Non supported scheme.  Applicable to tpm2_testparams.
323

BUGS

325       Github Issues (https://github.com/tpm2-software/tpm2-tools/issues)
326

HELP

328       See the Mailing List (https://lists.linuxfoundation.org/mailman/listin
329       fo/tpm2)
330
331
332
333tpm2-tools                                                 tpm2_nvincrement(1)
Impressum