From 20b45eb7844e4173ea15eef105b933bb6ed41f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1=20autouploader?= Date: Fri, 15 Oct 2021 21:38:48 +0000 Subject: [PATCH] Manpage update by job 608532 --- tzpfms.pdf | Bin 0 -> 60158 bytes tzpfms.ps | 803 ++++++++++++++++++++++++++++++++++++ zfs-tpm-list.8 | 2 +- zfs-tpm-list.8.html | 2 +- zfs-tpm1x-change-key.8 | 2 +- zfs-tpm1x-change-key.8.html | 2 +- zfs-tpm1x-clear-key.8 | 2 +- zfs-tpm1x-clear-key.8.html | 2 +- zfs-tpm1x-load-key.8 | 2 +- zfs-tpm1x-load-key.8.html | 2 +- zfs-tpm2-change-key.8 | 2 +- zfs-tpm2-change-key.8.html | 2 +- zfs-tpm2-clear-key.8 | 2 +- zfs-tpm2-clear-key.8.html | 2 +- zfs-tpm2-load-key.8 | 2 +- zfs-tpm2-load-key.8.html | 2 +- 16 files changed, 817 insertions(+), 14 deletions(-) create mode 100644 tzpfms.pdf create mode 100644 tzpfms.ps diff --git a/tzpfms.pdf b/tzpfms.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e027e84667213abcc97c8f54b84de0290d08cbfc GIT binary patch literal 60158 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 sXzskJTSTxmt#>W0T30u3xA;E8UkDz@^>LhD9> setpagedevice +%%EndFeature +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Bold +%%IncludeResource: font Courier-Bold +%%IncludeResource: font Courier-Oblique +%%IncludeResource: font Courier +%%IncludeResource: font Symbol +%%IncludeResource: font Times-Italic +grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 +def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron +/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen +/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon +/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O +/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex +/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y +/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft +/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl +/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut +/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash +/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen +/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft +/logicalnot/minus/registered/macron/degree/plusminus/twosuperior +/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior +/ordmasculine/guilsinglright/onequarter/onehalf/threequarters +/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE +/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn +/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash +/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def +/Times-Italic@0 ENC0/Times-Italic RE/Courier@0 ENC0/Courier RE +/Courier-Oblique@0 ENC0/Courier-Oblique RE/Courier-Bold@0 ENC0 +/Courier-Bold RE/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0 +/Times-Roman RE +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM-LIST \(8\))72 48 R +(System Manager')102.759 E 2.5(sM)-.55 G 97.759(anual ZFS-TPM-LIST)-2.5 +F(\(8\))1.666 E/F1 10/Times-Bold@0 SF -.2(NA)72 96 S(ME).2 E/F2 10 +/Courier-Bold@0 SF(zfs-tpm-list)102 108 Q F0 2.5<8a70>2.5 G +(rint dataset tzpfms metadata)-2.5 E F1(SYNOPSIS)72 132 Q F2 +(zfs-tpm-list)102 144 Q F0([)3.333 E F22.499 E F0 3.333(][).833 G +F2-.834 E F0(|)A F21.666 E/F3 10/Courier-Oblique@0 SF(depth) +6 E F0 3.333(][).833 G F2-.834 E F0(|)A F21.666 E F3 +(back-end)6 E F0 3.333(][).833 G F2-.834 E F0(|)A F21.666 E +F0 2.5(][).833 G F3(filesystem)-2.5 E F0(|)A F3(volume)A F0 1.666(]...)C +F1(DESCRIPTION)72 168 Q F0(Lists the follo)102 180 Q +(wing properties on encryption roots:)-.25 E/F4 10/Courier@0 SF(name)132 +192 Q(back-end)132 204 Q F0(the)191 204 Q F2(tzpfms)4.153 E F0 3.318 +(back-end \()4.153 F(e.g.)1.666 E F1(TPM2)4.152 E F0(for)4.152 E F4 +(zfs-tpm2-change-key)4.152 E F0 1.652(\(8\) or)B F1(TPM1.X)4.152 E F0 +(for)191 216 Q F4(zfs-tpm1x-change-key)2.5 E F0 -.834(\(8\) \) ,)B(or ") +2.5 E F1(-)A F0 2.5("i)C 2.5(fn)-2.5 G(one is con\214gured)-2.5 E F4 +(keystatus)132 228 Q F1 -2.1 -.25(av a)191 228 T(ilable).25 E F0(or)2.5 +E F1(una)2.5 E -.1(va)-.25 G(ilable).1 E F4(coherent)132 240 Q F1 -.1 +(ye)191 240 S(s).1 E F0 12.834(if either both)15.334 F F4 +(xyz.nabijaczleweli:tzpfms.backend)15.334 E F0(and)15.334 E F4 +(xyz.nabijaczleweli:tzpfms.key)191 252 Q F0(are present or missing,)2.5 +E F1(no)2.5 E F0(otherwise)2.5 E 11.268(Incoherent datasets require imm\ +ediate operator attention, with either the appropriate)102 270 R F2 +(zfs-tpm)102 282 Q/F5 10/Symbol SF(*)A F2(-clear-key)A F0 .462 +(program or)2.962 F F2 .462(zfs change-key)2.962 F F0(and)2.962 E F2 +.462(zfs inherit)2.962 F F0 2.962<8a69>2.962 G 2.963(ft)-2.962 G .463 +(he k)-2.963 F .763 -.15(ey b)-.1 H .463(ecomes un-).15 F 1.642 +(loaded, the)102 294 R 4.142(yw)-.15 G 1.642 +(ill require restoration from back-up.)-4.142 F(Ho)6.642 E(we)-.25 E +-.15(ve)-.25 G 2.441 -.4(r, t).15 H(he).4 E 4.141(ys)-.15 G 1.641 +(hould ne)-4.141 F -.15(ve)-.25 G 4.141(ro).15 G(ccur)-4.141 E 4.141(,u) +-.4 G 1.641(nless something)-4.141 F +(went terribly wrong with the dataset properties.)102 306 Q .468 +(If no datasets are speci\214ed, lists all matching encryption roots.) +102 324 R .468(The def)5.468 F .468 +(ault \214lter is to list all roots managed)-.1 F(by)102 336 Q F2 +(tzpfms)2.5 E F0(.)A F2(\255ab)6.666 E F0 +(can be used to either list all roots or only ones back)2.5 E +(ed by a particular end, respecti)-.1 E -.15(ve)-.25 G(ly).15 E(.)-.65 E +F1(OPTIONS)72 360 Q F2103.666 372 Q F0 .093(Scripting mode \212 d\ +o not print headers and separate \214elds by a single tab instead of co\ +lum-)173 372 R(nating with spaces.)173 384 Q F2103.666 402 Q F0 +(Recurse into all descendants of speci\214ed datasets.)173 402 Q F2 +103.666 414 Q F3(depth)6 E F0(Recurse at most)173 414 Q F3(depth) +2.5 E F0(datasets deep.)2.5 E(Def)5 E(ault:)-.1 E F1(0)2.5 E F0(.)A F2 +103.666 432 Q F0(List all encryption roots, e)173 432 Q -.15(ve) +-.25 G 2.5(no).15 G(nes not managed by)-2.5 E F2(tzpfms)2.5 E F0(.)A F2 +103.666 444 Q F3(back-end)6 E F0(List only encryption roots with) +173 456 Q F3(tzpfms)2.5 E F0(back-end)2.5 E F3(back-end)2.5 E F0(.)A F2 +103.666 474 Q F0(List only encryption roots whose k)173 474 Q -.15 +(ey)-.1 G 2.5(sa).15 G(re a)-2.5 E -.25(va)-.2 G(ilable.).25 E F2 +103.666 486 Q F0(List only encryption roots whose k)173 486 Q -.15(ey) +-.1 G 2.5(sa).15 G(re una)-2.5 E -.25(va)-.2 G(ilable.).25 E F1 +(EXAMPLES)72 510 Q F4($)102 522 Q F2(zfs-tpm-list)6 E F4 +(NAME BACK-END KEYSTATUS COHERENT)102 534 Q +(owo/venc TPM2 unavailable yes)102 546 Q(owo/enc TPM1.X available yes) +102 558 Q($)102 582 Q F2 1.666(zfs-tpm-list \255ad0)6 F F4 +(NAME BACK-END KEYSTATUS COHERENT)102 594 Q(awa - available yes)102 606 +Q($)102 630 Q F2 1.666(zfs-tpm-list \255b)6 F F1(TPM2)6 E F4 +(NAME BACK-END KEYSTATUS COHERENT)102 642 Q +(owo/venc TPM2 unavailable yes)102 654 Q($)102 678 Q F2 1.666 +(zfs-tpm-list \255ra)6 F F3(owo)6 E F4(NAME BACK-END KEYSTATUS COHERENT) +102 690 Q(owo/venc TPM2 unavailable yes)102 702 Q F0(tzpfms 0.1-6)72 750 +Q(October 15, 2021)148.595 E(1)194.145 E 0 Cg EP +%%Page: 2 2 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM-LIST \(8\))72 48 R +(System Manager')102.759 E 2.5(sM)-.55 G 97.759(anual ZFS-TPM-LIST)-2.5 +F(\(8\))1.666 E/F1 10/Courier@0 SF(owo/vtnc - available yes)102 96 Q +(owo/v nc - available yes)102 108 Q(owo/enc TPM1.X available yes)102 120 +Q($)102 144 Q/F2 10/Courier-Bold@0 SF 1.666(zfs-tpm-list \255al)6 F F1 +(NAME BACK-END KEYSTATUS COHERENT)102 156 Q(awa - available yes)102 168 +Q(owo/vtnc - available yes)102 180 Q(owo/v nc - available yes)102 192 Q +(owo/enc TPM1.X available yes)102 204 Q/F3 10/Times-Bold@0 SF 1.666 +(SPECIAL THANKS)72 228 R F0 1.6 -.8(To a)102 240 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F3<83>122 252 Q F0(ThePhD)2.5 E F3<83>122 264 Q F0(Embark Studios) +2.5 E F3(REPOR)72 288 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 +300 Q(.ht/~nabijaczleweli/tzpfms)-1 E F1 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 318 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F3(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F3 1.666(SEE ALSO)72 342 R +(https://git.sr)102 354 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-6)72 750 Q(October 15, 2021)148.595 E(2)194.145 E 0 Cg EP +%%Page: 3 3 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM1X-CHANGE-KEY \(8\))72 48 R +(System Manager')46.109 E 2.5(sM)-.55 G 41.109 +(anual ZFS-TPM1X-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF +-.2(NA)72 96 S(ME).2 E/F2 10/Courier-Bold@0 SF(zfs-tpm1x-change-key)102 +108 Q F0 2.5<8a63>2.5 G(hange ZFS dataset k)-2.5 E .3 -.15(ey t)-.1 H +2.5(oo).15 G(ne stored on the TPM)-2.5 E F1(SYNOPSIS)72 132 Q F2 +(zfs-tpm1x-change-key)102 144 Q F0([)3.333 E F22.499 E/F3 10 +/Courier-Oblique@0 SF(backup-file)6 E F0(]).833 E F3(dataset)2.5 E F1 +(DESCRIPTION)72 168 Q F0 4.76 -.8(To n)102 180 T 3.16(ormalise the).8 F +F3(dataset)5.66 E F0(,)A F2(zfs-tpm1x-change-key)5.66 E F0 3.16 +(will open its encryption root in its stead.)5.66 F F2 +(zfs-tpm1x-change-key)102 192 Q F0(will)3.264 E/F4 10/Times-Italic@0 SF +(ne)3.264 E(ver)-.15 E F0 .764(create or destro)3.264 F 3.264(ye)-.1 G +.764(ncryption roots; use)-3.264 F/F5 10/Courier@0 SF(zfs-change-key) +3.264 E F0 .764(\(8\) for)B(that.)102 204 Q +(First, a connection is made to the TPM, which)102 222 Q F4(must)2.5 E +F0(be TPM-1.X-compatible.)2.5 E(If)102 240 Q F3(dataset)2.553 E F0 -.1 +(wa)2.553 G 2.553(sp).1 G(re)-2.553 E .053(viously encrypted with)-.25 F +F2(tzpfms)2.553 E F0 .053(and the)2.553 F F1(TPM1.X)2.553 E F0 .054 +(back-end w)2.553 F .054(as used, the metadata will)-.1 F .203 +(be silently cleared.)102 252 R .203(Otherwise, or in case of an error) +5.203 F 2.703(,d)-.4 G .203(ata required for manual interv)-2.703 F .202 +(ention will be printed to)-.15 F(the standard error stream.)102 264 Q +(Ne)102 282 Q .519(xt, a ne)-.15 F 3.019(ww)-.25 G .519(rapping k)-3.019 +F .819 -.15(ey i)-.1 H 3.019(sb).15 G 3.019(eg)-3.019 G .519 +(enerated on the TPM, optionally back)-3.019 F .519(ed up)-.1 F 1.666 +(\(s)4.685 G(ee)-1.666 E F1(OPTIONS)3.02 E F0 -2.812 1.666(\), a)1.666 H +.52(nd sealed)-1.666 F 1.782(on the TPM; the user is prompted for an op\ +tional passphrase to protect the k)102 294 R 2.081 -.15(ey w)-.1 H 1.781 +(ith, and for the SRK).15 F(passphrase, set when taking o)102 306 Q +(wnership, if it is not "well-kno)-.25 E(wn" \(all zeroes\).)-.25 E +(The follo)102 324 Q(wing properties are set on)-.25 E F3(dataset)2.5 E +F0(:)A F1<83>122 336 Q F5(xyz.nabijaczleweli:tzpfms.backend)2.5 E F0(=)A +F1(TPM1.X)A<83>122 348 Q F5(xyz.nabijaczleweli:tzpfms.key)2.5 E F0(=)A +F3(parent-key-blob)A F2(:)A F3(sealed-object-blob)A F5(tzpfms.backend) +102 366 Q F0 2.231(identi\214es this dataset for w)4.73 F 2.231 +(ork with)-.1 F F1(TPM1.X)4.731 E F0(-back-ended)A F2(tzpfms)4.731 E F0 +3.897(tools \()4.731 F(namely)1.666 E F5(zfs-tpm1x-change-key)102 378 Q +F0(\(8\),)A F5(zfs-tpm1x-load-key)2.5 E F0(\(8\), and)A F5 +(zfs-tpm1x-clear-key)2.5 E F0 -.834(\(8\) \) .)B F5(tzpfms.key)102 396 Q +F0 .334(is a colon-separated pair of he)2.834 F .333 +(xadecimal-string \(i.e. "4F7730" for "Ow0"\) blobs; the \214rst one) +-.15 F .676(represents the RSA k)102 408 R .976 -.15(ey p)-.1 H .676 +(rotecting the blob, and it is protected with either the passw).15 F +.676(ord, if pro)-.1 F .677(vided, or the)-.15 F .236(SHA1 constant)102 +420 R F5(CE4CF677875B5EB8993591D5A9AF1ED24A3A8736)2.736 E F0 2.736(;t)C +.236(he second represents the sealed)-2.736 F 11.923 +(object containing the wrapping k)102 432 R -.15(ey)-.1 G 14.424(,a)-.5 +G 11.924(nd is protected with the SHA1 constant)-14.424 F F5 +(B9EE715DBE4B243FAA81EA04306E063710383E35)102 444 Q F0 7.438(.T)C 2.438 +(here e)-7.438 F 2.438(xists no other user)-.15 F 2.437 +(-land tool for de-)-.2 F(crypting this; perhaps there should be.)102 +456 Q(Finally)102 474 Q 4.14(,t)-.65 G 1.641(he equi)-4.14 F -.25(va) +-.25 G 1.641(lent of).25 F F2 1.641(zfs change-key)4.141 F9.307 E +F5(keylocation=prompt)7.641 E F29.307 E F5(keyformat=raw)7.641 E +F3(dataset)102 486 Q F0 .118(is performed with the ne)2.618 F 2.618(wk) +-.25 G -.15(ey)-2.718 G 5.118(.I)-.5 G 2.617(fa)-5.118 G 2.617(ne)-2.617 +G .117(rror occurred, best ef)-2.617 F .117 +(fort is made to clean up the properties,)-.25 F +(or to issue a note for manual interv)102 498 Q +(ention into the standard error stream.)-.15 E 3.911<418c>102 516 S +1.411(nal v)-3.911 F 1.411(eri\214cation should be made by running)-.15 +F F2 3.077(zfs-tpm1x-load-key \255n)3.911 F F3(dataset)7.411 E F0 6.411 +(.I)C 3.911(ft)-6.411 G 1.412(hat com-)-3.911 F 2.176 +(mand succeeds, all is well, b)102 528 R 2.175 +(ut otherwise the dataset can be manually rolled back to a passw)-.2 F +2.175(ord with)-.1 F F2(zfs-tpm1x-clear-key)102 540 Q F3(dataset)12.878 +E F0 1.666(\(o)11.044 G 7.678 -.4(r, i)-1.666 H 9.378(ft).4 G 6.878 +(hat f)-9.378 F 6.878(ails to w)-.1 F(ork,)-.1 E F2 6.879 +(zfs change-key)9.378 F14.545 E F5(keyformat=passphrase)102 552 Q +F3(dataset)6 E F0 -3.332 1.666(\), a)1.666 H(nd you are hereby ask) +-1.666 E(ed to report a b)-.1 E(ug, please.)-.2 E F2 +(zfs-tpm1x-clear-key)102 570 Q F3(dataset)6 E F0 +(can be used to clear the properties and go back to using a passw)2.5 E +(ord.)-.1 E F1(OPTIONS)72 594 Q F2103.666 606 Q F3(backup-file)6 E +F0(Sa)191 618 Q .806 -.15(ve a b)-.2 H .506(ack-up of the k).15 F .805 +-.15(ey t)-.1 H(o).15 E F3(backup-file)3.005 E F0 3.005(,w)C .505 +(hich must not e)-3.005 F .505(xist beforehand.)-.15 F(This)5.505 E +(back-up)191 630 Q F4(must)3.181 E F0 .681(be stored securely)3.181 F +3.181(,o)-.65 G -.25(ff)-3.181 G 3.181(-site. In).25 F .682 +(case of a catastrophic e)3.181 F -.15(ve)-.25 G .682(nt, the k).15 F +.982 -.15(ey c)-.1 H(an).15 E(be loaded by running)191 642 Q F2 +(zfs load-key)221 654 Q F3(dataset)6 E F5(<)6 E F3(backup-file)6 E F1 +1.666(TPM1.X back-end con\214guration)72 678 R F0(tzpfms 0.1-6)72 750 Q +(October 15, 2021)148.595 E(3)194.145 E 0 Cg EP +%%Page: 4 4 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM1X-CHANGE-KEY \(8\))72 48 R +(System Manager')46.109 E 2.5(sM)-.55 G 41.109 +(anual ZFS-TPM1X-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF +.625(TPM selection)84 96 R F0(The)102 108 Q/F2 10/Courier-Bold@0 SF +(tzpfms)2.768 E F0 .267(suite connects to a local)2.767 F/F3 10 +/Courier@0 SF(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t) +-1.666 E F3(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 +G(ef)-2.767 E 2.767(ault. Use)-.1 F .267(the en-)2.767 F(vironment v)102 +120 Q(ariable)-.25 E F3(TZPFMS_TPM1X)2.5 E F0 +(to specify a remote TCS hostname.)2.5 E .391(The T)102 138 R(rouSerS) +-.35 E F3(tcsd)2.891 E F0 .391(\(8\) daemon will try)B F3(/dev/tpm0) +2.892 E F0 2.892(,t)C(hen)-2.892 E F3(/udev/tpm0)2.892 E F0 2.892(,t)C +(hen)-2.892 E F3(/dev/tpm)2.892 E F0 2.892(;b)C 2.892(yo)-2.892 G(ccup) +-2.892 E(ying)-.1 E(one of the earlier ones with, for e)102 150 Q +(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 +(See also)84 174 R F0(The T)102 186 Q(rouSerS project page at)-.35 E F1 +(https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 +E(ousers)-.18 E F0(.)A 5.109(The TPM 1.2 main speci\214cation inde)102 +204 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E +(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E +(speci\214cation)102 216 Q F0(.)A F1 1.666(SPECIAL THANKS)72 240 R F0 +1.6 -.8(To a)102 252 T(ll who support further de).8 E -.15(ve)-.25 G +(lopment, in particular:).15 E F1<83>122 264 Q F0(ThePhD)2.5 E F1<83>122 +276 Q F0(Embark Studios)2.5 E F1(REPOR)72 300 Q 1.666(TING B)-.4 F(UGS) +-.1 E(https://todo.sr)102 312 Q(.ht/~nabijaczleweli/tzpfms)-1 E F3 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 330 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 354 R +(https://git.sr)102 366 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-6)72 750 Q(October 15, 2021)148.595 E(4)194.145 E 0 Cg EP +%%Page: 5 5 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM1X-CLEAR-KEY \(8\))72 48 R +(System Manager')54.989 E 2.5(sM)-.55 G 49.989 +(anual ZFS-TPM1X-CLEAR-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF +-.2(NA)72 96 S(ME).2 E/F2 10/Courier-Bold@0 SF(zfs-tpm1x-clear-key)102 +108 Q F0 2.5<8a72>2.5 G -.25(ew)-2.5 G(rap ZFS dataset k).25 E .3 -.15 +(ey i)-.1 H 2.5(np).15 G(asssw)-2.5 E +(ord and clear tzpfms TPM1.X metadata)-.1 E F1(SYNOPSIS)72 132 Q F2 +(zfs-tpm1x-clear-key)102 144 Q/F3 10/Courier-Oblique@0 SF(dataset)2.5 E +F1(DESCRIPTION)72 168 Q F0(After v)102 180 Q(erifying)-.15 E F3(dataset) +2.5 E F0 -.1(wa)2.5 G 2.5(se).1 G(ncrypted with)-2.5 E F2(tzpfms)2.5 E +F0(back)2.5 E(end)-.1 E F1(TPM1.X)2.5 E F0(:)A 6.984 +(1. performs the equi)122 192 R -.25(va)-.25 G 6.984(lent of).25 F F2 +6.984(zfs change-key)9.484 F14.65 E/F4 10/Courier@0 SF +(keylocation=prompt)12.985 E F214.651 E F4(keyformat=passphrase) +127 204 Q F3(dataset)6 E F0(,)A(2. remo)122 216 Q -.15(ve)-.15 G 2.5(st) +.15 G(he)-2.5 E F4(xyz.nabijaczleweli:tzpfms.)2.5 E F0({)A F4(backend)A +F0(,)A F4(key)6 E F0 2.5(}p)C(roperties from)-2.5 E F3(dataset)2.5 E F0 +(.)A(See)102 234 Q F4(zfs-tpm1x-change-key)2.5 E F0 +(\(8\) for a detailed description.)A F1 1.666 +(TPM1.X back-end con\214guration)72 258 R .625(TPM selection)84 270 R F0 +(The)102 282 Q F2(tzpfms)2.768 E F0 .267(suite connects to a local)2.767 +F F4(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E +F4(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef) +-2.767 E 2.767(ault. Use)-.1 F .267(the en-)2.767 F(vironment v)102 294 +Q(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F0 +(to specify a remote TCS hostname.)2.5 E .391(The T)102 312 R(rouSerS) +-.35 E F4(tcsd)2.891 E F0 .391(\(8\) daemon will try)B F4(/dev/tpm0) +2.892 E F0 2.892(,t)C(hen)-2.892 E F4(/udev/tpm0)2.892 E F0 2.892(,t)C +(hen)-2.892 E F4(/dev/tpm)2.892 E F0 2.892(;b)C 2.892(yo)-2.892 G(ccup) +-2.892 E(ying)-.1 E(one of the earlier ones with, for e)102 324 Q +(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 +(See also)84 348 R F0(The T)102 360 Q(rouSerS project page at)-.35 E F1 +(https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 +E(ousers)-.18 E F0(.)A 5.109(The TPM 1.2 main speci\214cation inde)102 +378 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E +(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E +(speci\214cation)102 390 Q F0(.)A F1 1.666(SPECIAL THANKS)72 414 R F0 +1.6 -.8(To a)102 426 T(ll who support further de).8 E -.15(ve)-.25 G +(lopment, in particular:).15 E F1<83>122 438 Q F0(ThePhD)2.5 E F1<83>122 +450 Q F0(Embark Studios)2.5 E F1(REPOR)72 474 Q 1.666(TING B)-.4 F(UGS) +-.1 E(https://todo.sr)102 486 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 504 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 528 R +(https://git.sr)102 540 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-6)72 750 Q(October 15, 2021)148.595 E(5)194.145 E 0 Cg EP +%%Page: 6 6 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF(ZFS-TPM1X-LO)72 48 Q -.834(AD-KEY \(8\))-.35 F +(System Manager')60.349 E 2.5(sM)-.55 G 55.349(anual ZFS-TPM1X-LO)-2.5 F +-.834(AD-KEY \(8\))-.35 F/F1 10/Times-Bold@0 SF -.2(NA)72 96 S(ME).2 E +/F2 10/Courier-Bold@0 SF(zfs-tpm1x-load-key)102 108 Q F0 2.5<8a6c>2.5 G +(oad tzpfms TPM1.X-encrypted ZFS dataset k)-2.5 E -.15(ey)-.1 G F1 +(SYNOPSIS)72 132 Q F2(zfs-tpm1x-load-key)102 144 Q F0([)3.333 E F2 +2.499 E F0(]).833 E/F3 10/Courier-Oblique@0 SF(dataset)2.5 E F1 +(DESCRIPTION)72 168 Q F0 1.155(After v)102 180 R(erifying)-.15 E F3 +(dataset)3.655 E F0 -.1(wa)3.655 G 3.655(se).1 G 1.155(ncrypted with) +-3.655 F F2(tzpfms)3.655 E F0(back)3.655 E(end)-.1 E F1(TPM1.X)3.655 E +F0 1.156(will unseal the k)3.655 F 1.456 -.15(ey a)-.1 H 1.156 +(nd load it).15 F(into)102 192 Q F3(dataset)2.5 E F0(.)A .422 +(The user is prompted for)102 210 R 2.922<2c8c>-.4 G .422 +(rst, the SRK passphrase, set when taking o)-2.922 F .422 +(wnership, if it')-.25 F 2.921(sn)-.55 G .421(ot "well-kno)-2.921 F .421 +(wn" \(all)-.25 F +(zeroes\), then the additional passphrase set when creating the k)102 +222 Q -.15(ey)-.1 G 2.5(,i)-.5 G 2.5(fi)-2.5 G 2.5(tw)-2.5 G(as pro)-2.6 +E(vided.)-.15 E(See)102 240 Q/F4 10/Courier@0 SF(zfs-tpm1x-change-key) +2.5 E F0(\(8\) for a detailed description.)A F1(OPTIONS)72 264 Q F2 +103.666 276 Q F0 .178(Do a no-op/dry run, can be used e)119 288 R +-.15(ve)-.25 G 2.678(ni).15 G 2.679(ft)-2.678 G .179(he k)-2.679 F .479 +-.15(ey i)-.1 H 2.679(sa).15 G .179(lready loaded.)-2.679 F(Equi)5.179 E +-.25(va)-.25 G .179(lent to).25 F F2 .179(zfs load-key)2.679 F F0 -.55 +('s)C F24.895 E F0(option.)119 300 Q F1 1.666 +(TPM1.X back-end con\214guration)72 324 R .625(TPM selection)84 336 R F0 +(The)102 348 Q F2(tzpfms)2.768 E F0 .267(suite connects to a local)2.767 +F F4(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E +F4(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef) +-2.767 E 2.767(ault. Use)-.1 F .267(the en-)2.767 F(vironment v)102 360 +Q(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F0 +(to specify a remote TCS hostname.)2.5 E .391(The T)102 378 R(rouSerS) +-.35 E F4(tcsd)2.891 E F0 .391(\(8\) daemon will try)B F4(/dev/tpm0) +2.892 E F0 2.892(,t)C(hen)-2.892 E F4(/udev/tpm0)2.892 E F0 2.892(,t)C +(hen)-2.892 E F4(/dev/tpm)2.892 E F0 2.892(;b)C 2.892(yo)-2.892 G(ccup) +-2.892 E(ying)-.1 E(one of the earlier ones with, for e)102 390 Q +(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 +(See also)84 414 R F0(The T)102 426 Q(rouSerS project page at)-.35 E F1 +(https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 +E(ousers)-.18 E F0(.)A 5.109(The TPM 1.2 main speci\214cation inde)102 +444 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E +(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E +(speci\214cation)102 456 Q F0(.)A F1 1.666(SPECIAL THANKS)72 480 R F0 +1.6 -.8(To a)102 492 T(ll who support further de).8 E -.15(ve)-.25 G +(lopment, in particular:).15 E F1<83>122 504 Q F0(ThePhD)2.5 E F1<83>122 +516 Q F0(Embark Studios)2.5 E F1(REPOR)72 540 Q 1.666(TING B)-.4 F(UGS) +-.1 E(https://todo.sr)102 552 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 570 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 594 R +(https://git.sr)102 606 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-6)72 750 Q(October 15, 2021)148.595 E(6)194.145 E 0 Cg EP +%%Page: 7 7 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM2-CHANGE-KEY \(8\))72 48 R +(System Manager')53.329 E 2.5(sM)-.55 G 48.329 +(anual ZFS-TPM2-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF +-.2(NA)72 96 S(ME).2 E/F2 10/Courier-Bold@0 SF(zfs-tpm2-change-key)102 +108 Q F0 2.5<8a63>2.5 G(hange ZFS dataset k)-2.5 E .3 -.15(ey t)-.1 H +2.5(oo).15 G(ne stored on the TPM)-2.5 E F1(SYNOPSIS)72 132 Q F2 +(zfs-tpm2-change-key)102 144 Q F0([)3.333 E F22.499 E/F3 10 +/Courier-Oblique@0 SF(backup-file)6 E F0(]).833 E F3(dataset)2.5 E F1 +(DESCRIPTION)72 168 Q F0 6.93 -.8(To n)102 180 T(ormalise).8 E F3 +(dataset)7.831 E F0(,)A F2(zfs-tpm2-change-key)7.831 E F0 5.331 +(will open its encryption root in its stead.)7.831 F F2 +(zfs-tpm2-change-key)102 192 Q F0(will)3.864 E/F4 10/Times-Italic@0 SF +(ne)3.864 E(ver)-.15 E F0 1.364(create or destro)3.864 F 3.864(ye)-.1 G +1.364(ncryption roots; use)-3.864 F/F5 10/Courier@0 SF(zfs-change-key) +3.864 E F0 1.364(\(8\) for)B(that.)102 204 Q +(First, a connection is made to the TPM, which)102 222 Q F4(must)2.5 E +F0(be TPM-2.0-compatible.)2.5 E(If)102 240 Q F3(dataset)3.42 E F0 -.1 +(wa)3.42 G 3.42(sp).1 G(re)-3.42 E .92(viously encrypted with)-.25 F F2 +(tzpfms)3.42 E F0 .92(and the)3.42 F F1(TPM2)3.42 E F0 .92(back-end w) +3.42 F .92(as used, the pre)-.1 F .92(vious k)-.25 F -.15(ey)-.1 G .382 +(will be freed from the TPM.)102 252 R .382 +(Otherwise, or in case of an error)5.382 F 2.882(,d)-.4 G .382 +(ata required for manual interv)-2.882 F .382(ention will be)-.15 F +(printed to the standard error stream.)102 264 Q(Ne)102 282 Q .519 +(xt, a ne)-.15 F 3.019(ww)-.25 G .519(rapping k)-3.019 F .819 -.15(ey i) +-.1 H 3.019(sb).15 G 3.019(eg)-3.019 G .519 +(enerated on the TPM, optionally back)-3.019 F .519(ed up)-.1 F 1.666 +(\(s)4.685 G(ee)-1.666 E F1(OPTIONS)3.02 E F0 -2.812 1.666(\), a)1.666 H +.52(nd sealed)-1.666 F .248 +(to a persistent object on the TPM under the o)102 294 R .248 +(wner hierarch)-.25 F .248(y; if there is a passphrase set on the o)-.05 +F .248(wner hierar)-.25 F(-)-.2 E(ch)102 306 Q 1.772 -.65(y, t)-.05 H +.472(he user is prompted for it; the user is al).65 F -.1(wa)-.1 G .472 +(ys prompted for an optional passphrase to protect the sealed).1 F +(object with.)102 318 Q(The follo)102 336 Q(wing properties are set on) +-.25 E F3(dataset)2.5 E F0(:)A F1<83>122 348 Q F5 +(xyz.nabijaczleweli:tzpfms.backend)2.5 E F0(=)A F1(TPM2)A<83>122 360 Q +F5(xyz.nabijaczleweli:tzpfms.key)2.5 E F0(=)A F3 +(ID of persistent object)A F5(tzpfms.backend)102 378 Q F0 3.203 +(identi\214es this dataset for w)5.703 F 3.203(ork with)-.1 F F1(TPM2) +5.703 E F0(-back-ended)A F2(tzpfms)5.703 E F0 4.868(tools \()5.702 F +(namely)1.666 E F5(zfs-tpm2-change-key)102 390 Q F0(\(8\),)A F5 +(zfs-tpm2-load-key)2.5 E F0(\(8\), and)A F5(zfs-tpm2-clear-key)2.5 E F0 +-.834(\(8\) \) .)B F5(tzpfms.key)102 408 Q F0 1.11(is an inte)3.61 F +1.111 +(ger representing the sealed object; if needed, it can be passed to)-.15 +F F2(tpm2_unseal)3.611 E103.666 420 Q F5(${tzpfms.key})6.032 E F0 +([)6.865 E F22.499 E F5(${password})6.032 E F0 2.532(]o).833 G +2.532(re)-2.532 G(qui)-2.532 E -.25(va)-.25 G .032(lent for back-up).25 +F 1.666(\(s)4.198 G(ee)-1.666 E F1(OPTIONS)2.532 E F0 -.8 1.666(\). I) +1.666 H 2.532(fy)-1.666 G .032(ou ha)-2.532 F .331 -.15(ve a)-.2 H .434 +(sealed k)102 432 R .734 -.15(ey y)-.1 H .434 +(ou can access with that or equi).15 F -.25(va)-.25 G .435 +(lent tool and set both of these properties, it will funxion seam-).25 F +(lessly)102 444 Q(.)-.65 E(Finally)102 462 Q 4.141(,t)-.65 G 1.641 +(he equi)-4.141 F -.25(va)-.25 G 1.641(lent of).25 F F2 1.641 +(zfs change-key)4.141 F9.307 E F5(keylocation=prompt)7.641 E F2 +9.307 E F5(keyformat=raw)7.64 E F3(dataset)102 474 Q F0 .336 +(is performed with the ne)2.836 F 2.836(wk)-.25 G -.15(ey)-2.936 G 5.336 +(.I)-.5 G 2.836(fa)-5.336 G 2.836(ne)-2.836 G .336 +(rror occurred, best ef)-2.836 F .337 +(fort is made to clean up the persistent)-.25 F +(object and properties, or to issue a note for manual interv)102 486 Q +(ention into the standard error stream.)-.15 E 2.92<418c>102 504 S .42 +(nal v)-2.92 F .42(eri\214cation should be made by running)-.15 F F2 +2.085(zfs-tpm2-load-key \255n)2.919 F F3(dataset)6.419 E F0 5.419(.I)C +2.919(ft)-5.419 G .419(hat command)-2.919 F 3.856 +(succeeds, all is well, b)102 516 R 3.856 +(ut otherwise the dataset can be manually rolled back to a passw)-.2 F +3.857(ord with)-.1 F F2(zfs-tpm2-clear-key)102 528 Q F3(dataset)13.479 E +F0 1.666(\(o)11.645 G 8.278 -.4(r, i)-1.666 H 9.978(ft).4 G 7.478(hat f) +-9.978 F 7.478(ails to w)-.1 F(ork,)-.1 E F2 7.478(zfs change-key)9.978 +F15.144 E F5(keyformat=passphrase)102 540 Q F3(dataset)6 E F0 +-3.332 1.666(\), a)1.666 H(nd you are hereby ask)-1.666 E +(ed to report a b)-.1 E(ug, please.)-.2 E F2(zfs-tpm2-clear-key)102 558 +Q F3(dataset)6.423 E F0 .423 +(can be used to free the TPM persistent object and go back to using a) +2.923 F(passw)102 570 Q(ord.)-.1 E F1(OPTIONS)72 594 Q F2103.666 +606 Q F3(backup-file)6 E F0(Sa)191 618 Q .806 -.15(ve a b)-.2 H .506 +(ack-up of the k).15 F .805 -.15(ey t)-.1 H(o).15 E F3(backup-file)3.005 +E F0 3.005(,w)C .505(hich must not e)-3.005 F .505(xist beforehand.)-.15 +F(This)5.505 E(back-up)191 630 Q F4(must)3.181 E F0 .681 +(be stored securely)3.181 F 3.181(,o)-.65 G -.25(ff)-3.181 G 3.181 +(-site. In).25 F .682(case of a catastrophic e)3.181 F -.15(ve)-.25 G +.682(nt, the k).15 F .982 -.15(ey c)-.1 H(an).15 E(be loaded by running) +191 642 Q F2(zfs load-key)221 654 Q F3(dataset)6 E F5(<)6 E F3 +(backup-file)6 E F1 1.666(TPM2 back-end con\214guration)72 678 R F0 +(tzpfms 0.1-6)72 750 Q(October 15, 2021)148.595 E(7)194.145 E 0 Cg EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM2-CHANGE-KEY \(8\))72 48 R +(System Manager')53.329 E 2.5(sM)-.55 G 48.329 +(anual ZFS-TPM2-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF +(En)84 96 Q(vir)-.4 E .625(onment v)-.18 F(ariables)-.1 E/F2 10 +/Courier@0 SF(TSS2_LOG)102 108 Q F0(An)155 108 Q 2.5(yo)-.15 G(f:)-2.5 E +F1(NONE)2.5 E F0(,)A F1(ERR)2.5 E(OR)-.3 E F0(,)A F1 -1.2(WA)2.5 G +(RNING)1.2 E F0(,)A F1(INFO)2.5 E F0(,)A F1(DEB)2.5 E(UG)-.1 E F0(,)A F1 +(TRA)2.5 E(CE)-.55 E F0 5(.D)C(ef)-5 E(ault:)-.1 E F1 -1.2(WA)2.5 G +(RNING)1.2 E F0(.)A F1 .625(TPM selection)84 132 R F0 .517(The library) +102 144 R/F3 10/Courier-Bold@0 SF(libtss2-tcti-default.so)3.017 E F0 +.517(can be link)3.017 F .516(ed to an)-.1 F 3.016(yo)-.15 G 3.016(ft) +-3.016 G(he)-3.016 E F2(libtss2-tcti-)3.016 E/F4 10/Symbol SF(*)A F2 +(.so)A F0(libraries)3.016 E .575(to select the def)102 156 R .576 +(ault, otherwise)-.1 F F2(/dev/tpmrm0)3.076 E F0 3.076(,t)C(hen)-3.076 E +F2(/dev/tpm0)3.076 E F0 3.076(,t)C(hen)-3.076 E F2(localhost:2321)3.076 +E F0 .576(will be tried,)3.076 F(in order)102 168 Q 1.666(\(s)4.166 G +(ee)-1.666 E F2(ESYS_CONTEXT)2.5 E F0 -.834(\(3\) \) .)B F1 .625 +(See also)84 192 R F0 3.488(The tpm2-tss git repository at)102 204 R F1 +(https://github)5.988 E(.com/tpm2-softwar)-.4 E(e/tpm2-tss)-.18 E F0 +3.487(and the documentation at)5.988 F F1(https://tpm2-tss.r)102 216 Q +(eadthedocs.io)-.18 E F0(.)A 3.092 +(The TPM 2.0 speci\214cations, mainly at)102 234 R F1 +(https://trustedcomputinggr)5.592 E(oup.or)-.18 E +(g/wp-content/uploads/TPM-)-.1 E(Re)102 246 Q(v-2.0-P)-.15 E(art-1-Ar) +-.1 E(chitectur)-.18 E(e-01.38.pdf)-.18 E F0(and related pages.)2.5 E F1 +1.666(SPECIAL THANKS)72 270 R F0 1.6 -.8(To a)102 282 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F1<83>122 294 Q F0(ThePhD)2.5 E F1<83>122 306 Q F0(Embark Studios) +2.5 E F1(REPOR)72 330 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 +342 Q(.ht/~nabijaczleweli/tzpfms)-1 E F2 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 360 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 384 R F2 +(tpm2_unseal)102 396 Q F0(\(1\))A F1(https://git.sr)102 414 Q +(.ht/~nabijaczleweli/tzpfms)-1 E F0(tzpfms 0.1-6)72 750 Q +(October 15, 2021)148.595 E(8)194.145 E 0 Cg EP +%%Page: 9 9 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM2-CLEAR-KEY \(8\))72 48 R +(System Manager')62.209 E 2.5(sM)-.55 G 57.209(anual ZFS-TPM2-CLEAR-KEY) +-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF -.2(NA)72 96 S(ME).2 E/F2 10 +/Courier-Bold@0 SF(zfs-tpm2-clear-key)102 108 Q F0 2.5<8a72>2.5 G -.25 +(ew)-2.5 G(rap ZFS dataset k).25 E .3 -.15(ey i)-.1 H 2.5(np).15 G +(asssw)-2.5 E(ord and clear tzpfms TPM2 metadata)-.1 E F1(SYNOPSIS)72 +132 Q F2(zfs-tpm2-clear-key)102 144 Q/F3 10/Courier-Oblique@0 SF +(dataset)2.5 E F1(DESCRIPTION)72 168 Q F0(After v)102 180 Q(erifying) +-.15 E F3(dataset)2.5 E F0 -.1(wa)2.5 G 2.5(se).1 G(ncrypted with)-2.5 E +F2(tzpfms)2.5 E F0(back)2.5 E(end)-.1 E F1(TPM2)2.5 E F0(:)A 6.985 +(1. performs the equi)122 192 R -.25(va)-.25 G 6.984(lent of).25 F F2 +6.984(zfs change-key)9.484 F14.65 E/F4 10/Courier@0 SF +(keylocation=prompt)12.984 E F214.65 E F4(keyformat=passphrase)127 +204 Q F3(dataset)6 E F0(,)A(2. frees the sealed k)122 216 Q .3 -.15 +(ey p)-.1 H(re).15 E(viously used to encrypt)-.25 E F3(dataset)2.5 E F0 +(,)A(3. remo)122 228 Q -.15(ve)-.15 G 2.5(st).15 G(he)-2.5 E F4 +(xyz.nabijaczleweli:tzpfms.)2.5 E F0({)A F4(backend)A F0(,)A F4(key)6 E +F0 2.5(}p)C(roperties from)-2.5 E F3(dataset)2.5 E F0(.)A(See)102 246 Q +F4(zfs-tpm2-change-key)2.5 E F0(\(8\) for a detailed description.)A F1 +1.666(TPM2 back-end con\214guration)72 270 R(En)84 282 Q(vir)-.4 E .625 +(onment v)-.18 F(ariables)-.1 E F4(TSS2_LOG)102 294 Q F0(An)155 294 Q +2.5(yo)-.15 G(f:)-2.5 E F1(NONE)2.5 E F0(,)A F1(ERR)2.5 E(OR)-.3 E F0(,) +A F1 -1.2(WA)2.5 G(RNING)1.2 E F0(,)A F1(INFO)2.5 E F0(,)A F1(DEB)2.5 E +(UG)-.1 E F0(,)A F1(TRA)2.5 E(CE)-.55 E F0 5(.D)C(ef)-5 E(ault:)-.1 E F1 +-1.2(WA)2.5 G(RNING)1.2 E F0(.)A F1 .625(TPM selection)84 318 R F0 .516 +(The library)102 330 R F2(libtss2-tcti-default.so)3.016 E F0 .516 +(can be link)3.016 F .516(ed to an)-.1 F 3.017(yo)-.15 G 3.017(ft)-3.017 +G(he)-3.017 E F4(libtss2-tcti-)3.017 E/F5 10/Symbol SF(*)A F4(.so)A F0 +(libraries)3.017 E .576(to select the def)102 342 R .576 +(ault, otherwise)-.1 F F4(/dev/tpmrm0)3.076 E F0 3.076(,t)C(hen)-3.076 E +F4(/dev/tpm0)3.076 E F0 3.076(,t)C(hen)-3.076 E F4(localhost:2321)3.076 +E F0 .575(will be tried,)3.076 F(in order)102 354 Q 1.666(\(s)4.166 G +(ee)-1.666 E F4(ESYS_CONTEXT)2.5 E F0 -.834(\(3\) \) .)B F1 .625 +(See also)84 378 R F0 3.487(The tpm2-tss git repository at)102 390 R F1 +(https://github)5.988 E(.com/tpm2-softwar)-.4 E(e/tpm2-tss)-.18 E F0 +3.488(and the documentation at)5.988 F F1(https://tpm2-tss.r)102 402 Q +(eadthedocs.io)-.18 E F0(.)A 3.092 +(The TPM 2.0 speci\214cations, mainly at)102 420 R F1 +(https://trustedcomputinggr)5.591 E(oup.or)-.18 E +(g/wp-content/uploads/TPM-)-.1 E(Re)102 432 Q(v-2.0-P)-.15 E(art-1-Ar) +-.1 E(chitectur)-.18 E(e-01.38.pdf)-.18 E F0(and related pages.)2.5 E F1 +1.666(SPECIAL THANKS)72 456 R F0 1.6 -.8(To a)102 468 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F1<83>122 480 Q F0(ThePhD)2.5 E F1<83>122 492 Q F0(Embark Studios) +2.5 E F1(REPOR)72 516 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 +528 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 546 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 570 R +(https://git.sr)102 582 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-6)72 750 Q(October 15, 2021)148.595 E(9)194.145 E 0 Cg EP +%%Page: 10 10 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF(ZFS-TPM2-LO)72 48 Q -.834(AD-KEY \(8\))-.35 F +(System Manager')67.569 E 2.5(sM)-.55 G 62.569(anual ZFS-TPM2-LO)-2.5 F +-.834(AD-KEY \(8\))-.35 F/F1 10/Times-Bold@0 SF -.2(NA)72 96 S(ME).2 E +/F2 10/Courier-Bold@0 SF(zfs-tpm2-load-key)102 108 Q F0 2.5<8a6c>2.5 G +(oad tzpfms TPM2-encrypted ZFS dataset k)-2.5 E -.15(ey)-.1 G F1 +(SYNOPSIS)72 132 Q F2(zfs-tpm2-load-key)102 144 Q F0([)3.333 E F2 +2.499 E F0(]).833 E/F3 10/Courier-Oblique@0 SF(dataset)2.5 E F1 +(DESCRIPTION)72 168 Q F0 1.118(After v)102 180 R(erifying)-.15 E F3 +(dataset)3.618 E F0 -.1(wa)3.618 G 3.618(se).1 G 1.118(ncrypted with) +-3.618 F F2(tzpfms)3.618 E F0(back)3.618 E(end)-.1 E F1(TPM2)3.618 E F0 +3.618(,u)C 1.118(nseals the k)-3.618 F 1.418 -.15(ey a)-.1 H 1.118 +(nd loads it into).15 F F3(dataset)102 192 Q F0(.)A(See)102 210 Q/F4 10 +/Courier@0 SF(zfs-tpm2-change-key)2.5 E F0 +(\(8\) for a detailed description.)A F1(OPTIONS)72 234 Q F2103.666 +246 Q F0 .179(Do a no-op/dry run, can be used e)119 258 R -.15(ve)-.25 G +2.679(ni).15 G 2.679(ft)-2.679 G .179(he k)-2.679 F .478 -.15(ey i)-.1 H +2.678(sa).15 G .178(lready loaded.)-2.678 F(Equi)5.178 E -.25(va)-.25 G +.178(lent to).25 F F2 .178(zfs load-key)2.678 F F0 -.55('s)C F2 +4.894 E F0(option.)119 270 Q F1 1.666(TPM1.X back-end con\214guration)72 +294 R .625(TPM selection)84 306 R F0(The)102 318 Q F2(tzpfms)2.767 E F0 +.267(suite connects to a local)2.767 F F4(tcsd)2.767 E F0 .267 +(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E F4(localhost:30003)2.767 E +F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef)-2.767 E 2.767(ault. Use)-.1 F +.268(the en-)2.767 F(vironment v)102 330 Q(ariable)-.25 E F4 +(TZPFMS_TPM1X)2.5 E F0(to specify a remote TCS hostname.)2.5 E .392 +(The T)102 348 R(rouSerS)-.35 E F4(tcsd)2.892 E F0 .392 +(\(8\) daemon will try)B F4(/dev/tpm0)2.892 E F0 2.892(,t)C(hen)-2.892 E +F4(/udev/tpm0)2.892 E F0 2.891(,t)C(hen)-2.891 E F4(/dev/tpm)2.891 E F0 +2.891(;b)C 2.891(yo)-2.891 G(ccup)-2.891 E(ying)-.1 E +(one of the earlier ones with, for e)102 360 Q +(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 +(See also)84 384 R F0(The T)102 396 Q(rouSerS project page at)-.35 E F1 +(https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 +E(ousers)-.18 E F0(.)A 5.108(The TPM 1.2 main speci\214cation inde)102 +414 R 7.609(xa)-.15 G(t)-7.609 E F1(https://trustedcomputinggr)7.609 E +(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E +(speci\214cation)102 426 Q F0(.)A F1 1.666(SPECIAL THANKS)72 450 R F0 +1.6 -.8(To a)102 462 T(ll who support further de).8 E -.15(ve)-.25 G +(lopment, in particular:).15 E F1<83>122 474 Q F0(ThePhD)2.5 E F1<83>122 +486 Q F0(Embark Studios)2.5 E F1(REPOR)72 510 Q 1.666(TING B)-.4 F(UGS) +-.1 E(https://todo.sr)102 522 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 540 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 564 R +(https://git.sr)102 576 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-6)72 750 Q(October 15, 2021)148.595 E(10)189.145 E 0 Cg EP +%%Trailer +end +%%EOF diff --git a/zfs-tpm-list.8 b/zfs-tpm-list.8 index a6d2585..5c674a4 100644 --- a/zfs-tpm-list.8 +++ b/zfs-tpm-list.8 @@ -1,7 +1,7 @@ .Dd October 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM-LIST 8 -.Os tzpfms 0.1-5 +.Os tzpfms 0.1-6 . .Sh NAME .Nm zfs-tpm-list diff --git a/zfs-tpm-list.8.html b/zfs-tpm-list.8.html index 9a7169e..c6049f8 100644 --- a/zfs-tpm-list.8.html +++ b/zfs-tpm-list.8.html @@ -168,7 +168,7 @@ owo/enc TPM1.X available yes - +
October 15, 2021tzpfms 0.1-5tzpfms 0.1-6
diff --git a/zfs-tpm1x-change-key.8 b/zfs-tpm1x-change-key.8 index ee728df..564aa9b 100644 --- a/zfs-tpm1x-change-key.8 +++ b/zfs-tpm1x-change-key.8 @@ -1,7 +1,7 @@ .Dd October 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CHANGE-KEY 8 -.Os tzpfms 0.1-5 +.Os tzpfms 0.1-6 . .Sh NAME .Nm zfs-tpm1x-change-key diff --git a/zfs-tpm1x-change-key.8.html b/zfs-tpm1x-change-key.8.html index 8aef343..4619974 100644 --- a/zfs-tpm1x-change-key.8.html +++ b/zfs-tpm1x-change-key.8.html @@ -163,7 +163,7 @@ - +
October 15, 2021tzpfms 0.1-5tzpfms 0.1-6
diff --git a/zfs-tpm1x-clear-key.8 b/zfs-tpm1x-clear-key.8 index e5b985e..07c2f7c 100644 --- a/zfs-tpm1x-clear-key.8 +++ b/zfs-tpm1x-clear-key.8 @@ -1,7 +1,7 @@ .Dd October 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CLEAR-KEY 8 -.Os tzpfms 0.1-5 +.Os tzpfms 0.1-6 . .Sh NAME .Nm zfs-tpm1x-clear-key diff --git a/zfs-tpm1x-clear-key.8.html b/zfs-tpm1x-clear-key.8.html index 7b6c534..9b4766f 100644 --- a/zfs-tpm1x-clear-key.8.html +++ b/zfs-tpm1x-clear-key.8.html @@ -103,7 +103,7 @@ - +
October 15, 2021tzpfms 0.1-5tzpfms 0.1-6
diff --git a/zfs-tpm1x-load-key.8 b/zfs-tpm1x-load-key.8 index 3c99490..36e9e20 100644 --- a/zfs-tpm1x-load-key.8 +++ b/zfs-tpm1x-load-key.8 @@ -1,7 +1,7 @@ .Dd October 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM1X-LOAD-KEY 8 -.Os tzpfms 0.1-5 +.Os tzpfms 0.1-6 . .Sh NAME .Nm zfs-tpm1x-load-key diff --git a/zfs-tpm1x-load-key.8.html b/zfs-tpm1x-load-key.8.html index 1b921cd..09bd067 100644 --- a/zfs-tpm1x-load-key.8.html +++ b/zfs-tpm1x-load-key.8.html @@ -104,7 +104,7 @@ - +
October 15, 2021tzpfms 0.1-5tzpfms 0.1-6
diff --git a/zfs-tpm2-change-key.8 b/zfs-tpm2-change-key.8 index 69ee7e4..fe399c3 100644 --- a/zfs-tpm2-change-key.8 +++ b/zfs-tpm2-change-key.8 @@ -1,7 +1,7 @@ .Dd October 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM2-CHANGE-KEY 8 -.Os tzpfms 0.1-5 +.Os tzpfms 0.1-6 . .Sh NAME .Nm zfs-tpm2-change-key diff --git a/zfs-tpm2-change-key.8.html b/zfs-tpm2-change-key.8.html index 152df30..1e71fc5 100644 --- a/zfs-tpm2-change-key.8.html +++ b/zfs-tpm2-change-key.8.html @@ -176,7 +176,7 @@ - +
October 15, 2021tzpfms 0.1-5tzpfms 0.1-6
diff --git a/zfs-tpm2-clear-key.8 b/zfs-tpm2-clear-key.8 index ca0bf51..362141f 100644 --- a/zfs-tpm2-clear-key.8 +++ b/zfs-tpm2-clear-key.8 @@ -1,7 +1,7 @@ .Dd October 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM2-CLEAR-KEY 8 -.Os tzpfms 0.1-5 +.Os tzpfms 0.1-6 . .Sh NAME .Nm zfs-tpm2-clear-key diff --git a/zfs-tpm2-clear-key.8.html b/zfs-tpm2-clear-key.8.html index f1b6a73..396ea65 100644 --- a/zfs-tpm2-clear-key.8.html +++ b/zfs-tpm2-clear-key.8.html @@ -118,7 +118,7 @@ - +
October 15, 2021tzpfms 0.1-5tzpfms 0.1-6
diff --git a/zfs-tpm2-load-key.8 b/zfs-tpm2-load-key.8 index 1fe6b24..6ad8753 100644 --- a/zfs-tpm2-load-key.8 +++ b/zfs-tpm2-load-key.8 @@ -1,7 +1,7 @@ .Dd October 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM2-LOAD-KEY 8 -.Os tzpfms 0.1-5 +.Os tzpfms 0.1-6 . .Sh NAME .Nm zfs-tpm2-load-key diff --git a/zfs-tpm2-load-key.8.html b/zfs-tpm2-load-key.8.html index 1ed3a35..159a41c 100644 --- a/zfs-tpm2-load-key.8.html +++ b/zfs-tpm2-load-key.8.html @@ -101,7 +101,7 @@ - +
October 15, 2021tzpfms 0.1-5tzpfms 0.1-6