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.
42
43ARGUMENT the command line argument specifies the NV index  or  offset
44         number.
45
46   References

Context Object Format

48       The  type  of a context object, whether it is a handle or file name, is
49       determined according to the following logic in-order:
50
51       • If the argument is a file path, then the file is loaded as a restored
52         TPM transient object.
53
54       • If the argument is a prefix match on one of:
55
56         • owner: the owner hierarchy
57
58         • platform: the platform hierarchy
59
60         • endorsement: the endorsement hierarchy
61
62         • lockout: the lockout control persistent object
63
64       • If  the  argument argument can be loaded as a number it will be treat
65         as a handle, e.g. 0x81010013 and used directly._OBJECT_.
66

Authorization Formatting

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

COMMON OPTIONS

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

TCTI Configuration

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

TCTI OPTIONS

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

EXAMPLES

288   Lock an index
289              tpm2_nvdefine -Q   1 -C o -s 32 \
290              -a "ownerread|policywrite|ownerwrite|read_stclear"
291
292              echo "foobar" > nv.readlock
293
294              tpm2_nvwrite -Q   0x01000001 -C o -i nv.readlock
295
296              tpm2_nvread -Q   1 -C o -s 6 -o 0
297
298              tpm2_nvreadlock -Q   1 -C o
299

Returns

301       Tools can return any of the following codes:
302
303       • 0 - Success.
304
305       • 1 - General non-specific error.
306
307       • 2 - Options handling error.
308
309       • 3 - Authentication error.
310
311       • 4 - TCTI related error.
312
313       • 5 - Non supported scheme.  Applicable to tpm2_testparams.
314

BUGS

316       Github Issues (https://github.com/tpm2-software/tpm2-tools/issues)
317

HELP

319       See the Mailing List (https://lists.01.org/mailman/listinfo/tpm2)
320
321
322
323tpm2-tools                                                  tpm2_nvreadlock(1)
Impressum