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

NAME

6       tpm2_nvreadlock(1)  -  Lock  the  Non-Volatile  (NV)  index for further
7       reads.
8

SYNOPSIS

10       tpm2_nvreadlock [OPTIONS] [ARGUMENT]
11

DESCRIPTION

13       tpm2_nvreadlock(1) - Lock  the  Non-Volatile  (NV)  index  for  further
14       reads.   The lock on the NN index is unlocked when the TPM is restarted
15       and the NV index becomes readable again.  The index can be specified as
16       raw  handle  or  an offset value to the nv handle range “TPM2_HR_NV_IN‐
17       DEX”.
18

OPTIONS

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

Context Object Format

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

Authorization Formatting

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

COMMON OPTIONS

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

TCTI Configuration

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

TCTI OPTIONS

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

EXAMPLES

305   Lock an index
306              tpm2_nvdefine -Q   1 -C o -s 32 \
307              -a "ownerread|policywrite|ownerwrite|read_stclear"
308
309              echo "foobar" > nv.readlock
310
311              tpm2_nvwrite -Q   0x01000001 -C o -i nv.readlock
312
313              tpm2_nvread -Q   1 -C o -s 6 -o 0
314
315              tpm2_nvreadlock -Q   1 -C o
316

Returns

318       Tools can return any of the following codes:
319
320       • 0 - Success.
321
322       • 1 - General non-specific error.
323
324       • 2 - Options handling error.
325
326       • 3 - Authentication error.
327
328       • 4 - TCTI related error.
329
330       • 5 - Non supported scheme.  Applicable to tpm2_testparams.
331

BUGS

333       Github Issues (https://github.com/tpm2-software/tpm2-tools/issues)
334

HELP

336       See the Mailing List (https://lists.linuxfoundation.org/mailman/listin
337       fo/tpm2)
338
339
340
341tpm2-tools                                                  tpm2_nvreadlock(1)
Impressum