]> git.proxmox.com Git - swtpm.git/blob - man/man8/swtpm_ioctl.8
swtpm_setup: Add support for RSA 3072 bit EK keys
[swtpm.git] / man / man8 / swtpm_ioctl.8
1 .\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings. \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 . ds -- \(*W-
28 . ds PI pi
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31 . ds L" ""
32 . ds R" ""
33 . ds C` ""
34 . ds C' ""
35 'br\}
36 .el\{\
37 . ds -- \|\(em\|
38 . ds PI \(*p
39 . ds L" ``
40 . ds R" ''
41 . ds C`
42 . ds C'
43 'br\}
44 .\"
45 .\" Escape single quotes in literal strings from groff's Unicode transform.
46 .ie \n(.g .ds Aq \(aq
47 .el .ds Aq '
48 .\"
49 .\" If the F register is turned on, we'll generate index entries on stderr for
50 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51 .\" entries marked with X<> in POD. Of course, you'll have to process the
52 .\" output yourself in some meaningful fashion.
53 .\"
54 .\" Avoid warning from groff about undefined register 'F'.
55 .de IX
56 ..
57 .nr rF 0
58 .if \n(.g .if rF .nr rF 1
59 .if (\n(rF:(\n(.g==0)) \{
60 . if \nF \{
61 . de IX
62 . tm Index:\\$1\t\\n%\t"\\$2"
63 ..
64 . if !\nF==2 \{
65 . nr % 0
66 . nr F 2
67 . \}
68 . \}
69 .\}
70 .rr rF
71 .\"
72 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
73 .\" Fear. Run. Save yourself. No user-serviceable parts.
74 . \" fudge factors for nroff and troff
75 .if n \{\
76 . ds #H 0
77 . ds #V .8m
78 . ds #F .3m
79 . ds #[ \f1
80 . ds #] \fP
81 .\}
82 .if t \{\
83 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
84 . ds #V .6m
85 . ds #F 0
86 . ds #[ \&
87 . ds #] \&
88 .\}
89 . \" simple accents for nroff and troff
90 .if n \{\
91 . ds ' \&
92 . ds ` \&
93 . ds ^ \&
94 . ds , \&
95 . ds ~ ~
96 . ds /
97 .\}
98 .if t \{\
99 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
100 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
101 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
102 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
103 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
104 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
105 .\}
106 . \" troff and (daisy-wheel) nroff accents
107 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
108 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
109 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
110 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
111 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
112 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
113 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
114 .ds ae a\h'-(\w'a'u*4/10)'e
115 .ds Ae A\h'-(\w'A'u*4/10)'E
116 . \" corrections for vroff
117 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
118 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
119 . \" for low resolution devices (crt and lpr)
120 .if \n(.H>23 .if \n(.V>19 \
121 \{\
122 . ds : e
123 . ds 8 ss
124 . ds o a
125 . ds d- d\h'-1'\(ga
126 . ds D- D\h'-1'\(hy
127 . ds th \o'bp'
128 . ds Th \o'LP'
129 . ds ae ae
130 . ds Ae AE
131 .\}
132 .rm #[ #] #H #V #F C
133 .\" ========================================================================
134 .\"
135 .IX Title "swtpm_ioctl 8"
136 .TH swtpm_ioctl 8 "2017-11-13" "swtpm" ""
137 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
138 .\" way too many mistakes in technical documents.
139 .if n .ad l
140 .nh
141 .SH "NAME"
142 swtpm_ioctl \- Utility for sending control commands to swtpm
143 .SH "SYNOPSIS"
144 .IX Header "SYNOPSIS"
145 \&\fBswtpm_ioctl [\s-1COMMAND\s0] <device>\fR
146 .SH "DESCRIPTION"
147 .IX Header "DESCRIPTION"
148 \&\fBswtpm_ioctl\fR implements a client tool for controlling the
149 \&\fIswtpm_cuse\fR \s-1TPM\s0 software emulator, such as for example its
150 initialization and shutdown. Once the swtpm_cuse has been
151 initialized, \s-1TPM\s0 commands can be sent to it.
152 .PP
153 The full path to the swtpm_cuse's character device must be provided such
154 as for example /dev/vtpm\-200.
155 .PP
156 The environment variable \s-1SWTPM_IOCTL_BUFFERSIZE\s0 can be set to the size
157 for the buffer for state blob transfer to use. If it is not set, the \fIioctl()\fR
158 interface is used for transferring the state. This environment variable
159 is primarily used for testing purposes.
160 .PP
161 The following commands are supported:
162 .IP "\fB\-\-tpm\-device <device>\fR" 4
163 .IX Item "--tpm-device <device>"
164 Use the given device.
165 .Sp
166 This option can be used instead of providing the device as the last parameter.
167 .IP "\fB\-\-tcp <server>:<port>\fR" 4
168 .IX Item "--tcp <server>:<port>"
169 Connect to the given server and port; if no server is given, 127.0.0.1 is used;
170 if port is not given, the default port 6545 is used.
171 .IP "\fB\-\-unixio <path>\fR" 4
172 .IX Item "--unixio <path>"
173 Connect to the given UnixIO path.
174 .IP "\fB\-c\fR" 4
175 .IX Item "-c"
176 Get the swtpm_cuse's capability flags indicating which commands
177 are supported.
178 .IP "\fB\-i\fR" 4
179 .IX Item "-i"
180 Send a hardware initialization signal to the swtpm_cuse. Volatile
181 state previously written by the \s-1TPM\s0 will be read and the file automatically
182 delete.
183 .IP "\fB\-s\fR" 4
184 .IX Item "-s"
185 Gracefully shut the swtpm_cuse down.
186 .IP "\fB\-\-stop\fR" 4
187 .IX Item "--stop"
188 Stop the swtpm_cuse. This does not shut it down. The \fI\-i\fR command can again
189 be sent to it. After a stop it is also possible to load \s-1TPM\s0 stateblobs into the
190 \&\s-1TPM\s0 using the \fI\-\-load\fR command.
191 .IP "\fB\-e\fR" 4
192 .IX Item "-e"
193 Get the tpmEstablished bit.
194 .IP "\fB\-r locality\fR" 4
195 .IX Item "-r locality"
196 Reset the tpmEstablished bit using the given locality. Only localities 3 and 4 work.
197 This operation will not permanently change the localty that was previously set
198 using the \fI\-l\fR option.
199 .IP "\fB\-l locality\fR" 4
200 .IX Item "-l locality"
201 Set the locality for the subsequent \s-1TPM\s0 commands.
202 .IP "\fB\-v\fR" 4
203 .IX Item "-v"
204 Have the \s-1TPM\s0 write the volatile state to a file. Upon a TPM_Init (\-i) the
205 \&\s-1TPM\s0 state will be read and the \s-1TPM\s0 can then resume operation without further
206 intialization.
207 .IP "\fB\-C\fR" 4
208 .IX Item "-C"
209 Cancel an ongoing \s-1TPM\s0 command.
210 .IP "\fB\-h data\fR" 4
211 .IX Item "-h data"
212 Reset and extend \s-1PCR 17\s0 with the hash of the given data. If data is the single
213 character '\-', then all data are read from stdin.
214 .IP "\fB\-\-save <\s-1TPM\s0 state blob name> <filename> \fR" 4
215 .IX Item "--save <TPM state blob name> <filename> "
216 Save the \s-1TPM\s0 state blob into the given file. Valid \s-1TPM\s0 state blob
217 names are permanent, volatile, and savestate.
218 .Sp
219 Note that this command can be executed at any time. However, to retrieve
220 the latest volatile state, the \fI\-v\fR command should have been run
221 immediately before running this command. The savestate blob will only be
222 returned if a TPM_SaveState command was executed in the \s-1TPM.\s0
223 .IP "\fB\-\-load <\s-1TPM\s0 state blob name> <filename>\fR" 4
224 .IX Item "--load <TPM state blob name> <filename>"
225 Load the given \s-1TPM\s0 state blob from the given file. Valid \s-1TPM\s0 state blob
226 names are permanent, volatile, and savestate.
227 .Sp
228 Note that this command can only be executed on a \s-1TPM\s0 that is shut down.
229 To then start the \s-1TPM\s0 with the uploaded state, the \fI\-i\fR command must
230 be issued.
231 .IP "\fB\-g\fR" 4
232 .IX Item "-g"
233 Get configuration flags that for example indicate which keys (file encryption
234 or migration key) are in use by the \s-1TPM.\s0
235 .IP "\fB\-\-info <flag>\fR" 4
236 .IX Item "--info <flag>"
237 Get information about the \s-1TPM\s0 implementation in \s-1JSON\s0 format. The flag
238 <\s-1TPMLIB_INFO_TPMSPECIFICATION\s0>, which has the value 1, returns information
239 about the specification the \s-1TPM\s0 implementation followed.
240 .SH "SEE ALSO"
241 .IX Header "SEE ALSO"
242 \&\fBswtpm_cuse\fR