From 3af66f78776a3b21dea464cb0331683275f7d02f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1=20autouploader?= Date: Sun, 16 Jul 2023 17:06:45 +0000 Subject: [PATCH] Manpage update by job 1024901 --- tzpfms.pdf | Bin 69347 -> 70287 bytes tzpfms.ps | 1479 ++++++++++++++++++----------------- zfs-tpm-list.8 | 4 +- zfs-tpm-list.8.html | 4 +- zfs-tpm1x-change-key.8 | 4 +- zfs-tpm1x-change-key.8.html | 4 +- zfs-tpm1x-clear-key.8 | 4 +- zfs-tpm1x-clear-key.8.html | 4 +- zfs-tpm1x-load-key.8 | 4 +- zfs-tpm1x-load-key.8.html | 4 +- zfs-tpm2-change-key.8 | 4 +- zfs-tpm2-change-key.8.html | 4 +- zfs-tpm2-clear-key.8 | 4 +- zfs-tpm2-clear-key.8.html | 4 +- zfs-tpm2-load-key.8 | 4 +- zfs-tpm2-load-key.8.html | 4 +- 16 files changed, 773 insertions(+), 762 deletions(-) diff --git a/tzpfms.pdf b/tzpfms.pdf index df9dff2521b4f6b8b457f978f0723661a8d1bd0b..37ec31a42b09862fb4af17376098090de49c41b2 100644 GIT binary patch delta 58886 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 delta 57347 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 setpagedevice %%EndFeature +%%IncludeResource: font Times-Italic %%IncludeResource: font Times-Roman %%IncludeResource: font Times-Bold %%IncludeResource: font Courier-Bold -%%IncludeResource: font Courier-Oblique %%IncludeResource: font Courier +%%IncludeResource: font Courier-Oblique %%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 @@ -236,771 +267,751 @@ def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron /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 +/Courier-Oblique@0 ENC0/Courier-Oblique RE/Courier@0 ENC0/Courier RE +/Courier-Bold@0 ENC0/Courier-Bold RE/Times-Bold@0 ENC0/Times-Bold RE +/Times-Roman@0 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic 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(]).833 E([)180 156 Q F3(filesystem)A F0(|)A F3(volume)A F0 1.666 -(]...)C F1(DESCRIPTION)72 180 Q F0(Lists the follo)102 192 Q -(wing properties on encryption roots:)-.25 E/F4 10/Courier@0 SF(name)122 -204 Q(back-end)122 216 Q F0(the)181 216 Q F2(tzpfms)3.311 E F0 2.477 -(back-end \()3.311 F(e.g.)1.666 E F1(TPM2)3.312 E F0(for)3.312 E F4 -(zfs-tpm2-change-key)3.312 E F0 .812(\(8\) or)B F1(TPM1.X)3.312 E F0 -(for)181 228 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)122 240 Q F1 -2.1 -.25(av a)181 240 T(ilable).25 E F0(or)2.5 -E F1(una)2.5 E -.1(va)-.25 G(ilable).1 E F4(coherent)122 252 Q F1 -.1 -(ye)181 252 S(s).1 E F0 11.489(if either both)13.989 F F4 -(xyz.nabijaczleweli:tzpfms.backend)13.989 E F0(and)13.989 E F4 -(xyz.nabijaczleweli:tzpfms.key)181 264 Q F0(are present or missing,)2.5 -E F1(no)2.5 E F0(otherwise)2.5 E 9.409(Incoherent datasets require imme\ -diate operator attention, with either the appropriate)102 282 R F2 -(zfs-tpm)102 294 Q/F5 10/Symbol SF(*)A F2(-clear-key)A F0 .427 -(program or)2.927 F F2 .426(zfs change-key)2.927 F F0(and)2.926 E F2 -.426(zfs inherit)2.926 F F0 2.926<8a69>2.926 G 2.926(ft)-2.926 G .426 -(he k)-2.926 F .726 -.15(ey b)-.1 H(ecomes).15 E 1.112(unloaded, the)102 -306 R 3.612(yw)-.15 G 1.112(ill require restoration from back-up.)-3.612 -F(Ho)6.113 E(we)-.25 E -.15(ve)-.25 G 1.913 -.4(r, t).15 H 1.113 -(his should ne).4 F -.15(ve)-.25 G 3.613(ro).15 G(ccur)-3.613 E 3.613 -(,u)-.4 G 1.113(nless some-)-3.613 F -(thing went horribly wrong with the dataset properties.)102 318 Q 1.34(\ -If no datasets are speci\214ed, all matching encryption roots are liste\ -d \212 by def)102 336 R 1.34(ault, those managed by)-.1 F F2(tzpfms)102 -348 Q F0(.)A F1(OPTIONS)72 372 Q F2103.666 384 Q F0 2.044 -(Scripting mode \212 remo)179 384 R 2.344 -.15(ve h)-.15 H 2.044 +/F0 10/Times-Italic@0 SF(ZFS-TPM-LIST)72 48 Q/F1 10/Times-Roman@0 SF +96.343(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G(anual)-2.5 E F0 +(ZFS-TPM-LIST)96.342 E F1(\(8\))A/F2 10/Times-Bold@0 SF -.2(NA)72 84 S +(ME).2 E F1(zfs-tpm-list \212 print dataset tzpfms metadata)108 96 Q F2 +(SYNOPSIS)72 112.8 Q/F3 10/Courier-Bold@0 SF(zfs-tpm-list)108 124.8 Q F1 +([)2.5 E/F4 10/Courier@0 SF1.666 E F1 2.5(][)C F4-.834 E F1 +(|)A F41.666 E/F5 10/Courier-Oblique@0 SF(depth)6 E F1 2.5(][)C F4 +-.834 E F1(|)A F41.666 E F5(back-end)6 E F1 2.5(][)C F4 +-.834 E F1(|)A F41.666 E F1(])A([)186 136.8 Q F5(filesystem) +A F1(|)A F5(volume)A F1 1.666(]...)C F2(DESCRIPTION)72 153.6 Q F1 +(Lists the follo)108 165.6 Q(wing properties on encryption roots:)-.25 E +F4(name)128 177.6 Q(back-end)128 189.6 Q F1(the)187 189.6 Q F3(tzpfms) +4.897 E F1 2.396(back-end \(e.g.)4.896 F F2(TPM2)4.896 E F1(for)4.896 E +F0(zfs-tpm2-c)4.896 E(hang)-.15 E(e-k)-.1 E -.3(ey)-.1 G F1 2.396 +(\(8\) or).3 F F2(TPM1.X)4.896 E F1(for)4.896 E F0(zfs-tpm1x-c)187 201.6 +Q(hang)-.15 E(e-k)-.1 E -.3(ey)-.1 G F1(\(8\)\), or ").3 E F2(-)A F1 2.5 +("i)C 2.5(fn)-2.5 G(one is con\214gured)-2.5 E F4(keystatus)128 213.6 Q +F2 -2.1 -.25(av a)187 213.6 T(ilable).25 E F1(or)2.5 E F2(una)2.5 E -.1 +(va)-.25 G(ilable).1 E F4(coherent)128 225.6 Q F2 -.1(ye)187 225.6 S(s) +.1 E F1 10.289(if either both)12.789 F F4 +(xyz.nabijaczleweli:tzpfms.backend)12.789 E F1(and)12.789 E F4 +(xyz.nabijaczleweli:tzpfms.key)187 237.6 Q F1(are present or missing,) +2.5 E F2(no)2.5 E F1(otherwise)2.5 E 8.743(Incoherent datasets require \ +immediate operator attention, with either the appropriate)108 254.4 R F3 +(zfs-tpm)108 266.4 Q/F6 10/Symbol SF(*)A F3(-clear-key)A F1 1.778 +(program or)4.277 F F3(zfs)4.278 E F4(change-key)7.778 E F1(and)4.278 E +F3(zfs)4.278 E F4(inherit)7.778 E F1 4.278<8a69>4.278 G 4.278(ft)-4.278 +G 1.778(he k)-4.278 F 2.078 -.15(ey b)-.1 H(e-).15 E .566 +(comes unloaded, the)108 278.4 R 3.066(yw)-.15 G .566 +(ill require restoration from back-up.)-3.066 F(Ho)5.566 E(we)-.25 E +-.15(ve)-.25 G 1.366 -.4(r, t).15 H .566(his should ne).4 F -.15(ve)-.25 +G 3.065(ro).15 G(ccur)-3.065 E 3.065(,u)-.4 G(nless)-3.065 E +(something went horribly wrong with the dataset properties.)108 290.4 Q +.965(If no datasets are speci\214ed, all matching encryption roots are \ +listed \212 by def)108 307.2 R .966(ault, those managed by)-.1 F F3 +(tzpfms)108 319.2 Q F1(.)A F2(OPTIONS)72 336 Q F4109.666 348 Q F1 +1.583(Scripting mode \212 remo)185 348 R 1.883 -.15(ve h)-.15 H 1.583 (eaders and separate \214elds by a single tab instead of).15 F -(columnating them with spaces.)179 396 Q F2103.666 414 Q F0 -(Recurse into all descendants of speci\214ed datasets.)179 414 Q F2 -103.666 426 Q F3(depth)6 E F0(Recurse at most)179 426 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 444 Q F0(List all encryption roots, e)179 444 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 456 Q F3(back-end)6 E F0 -(List only encryption roots with the speci\214ed)179 456 Q F2(tzpfms)2.5 -E F3(back-end)2.5 E F0(.)A F2103.666 474 Q F0 -(List only encryption roots whose k)179 474 Q -.15(ey)-.1 G 2.5(sa).15 G -(re una)-2.5 E -.25(va)-.2 G(ilable.).25 E F2103.666 486 Q F0 -(List only encryption roots whose k)179 486 Q -.15(ey)-.1 G 2.5(sa).15 G -(re a)-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 72(NAME BACK-END)102 534 R 18 -(KEYSTATUS COHERENT)12 F 36(tarta-zoot TPM1.X)102 546 R 18 -(available yes)24 F 6(tarta-zoot/home TPM2)102 558 R 6(unavailable yes) -36 F($)102 582 Q F2 1.666(zfs-tpm-list \255ad0)6 F F4 24(NAME BACK-END) -102 594 R 6(KEYSTATUS COHERENT)12 F 6(filling -)102 606 R 6 -(available yes)54 F($)102 630 Q F2 1.666(zfs-tpm-list \255b)6 F F1(TPM2) -6 E F4 72(NAME BACK-END)102 642 R 18(KEYSTATUS COHERENT)12 F 6 -(tarta-zoot/home TPM2)102 654 R 6(unavailable yes)36 F($)102 678 Q F2 -1.666(zfs-tpm-list \255ra)6 F F3(tarta-zoot)6 E F4 72(NAME BACK-END)102 -690 R 18(KEYSTATUS COHERENT)12 F 36(tarta-zoot TPM1.X)102 702 R 18 -(available yes)24 F 6(tarta-zoot/home TPM2)102 714 R 6(unavailable yes) -36 F 12(tarta-zoot/bkp -)102 726 R 18(available yes)54 F 18 -(tarta-zoot/vm -)102 738 R 18(available yes)54 F($)102 762 Q F2 1.666 -(zfs-tpm-list \255al)6 F F0(tzpfms 0.3.3)72 810 Q(June 12, 2023)156.365 -E(1)201.085 E 0 Cg EP +(columnating them with spaces.)185 360 Q F4109.666 376.8 Q F1 +(Recurse into all descendants of speci\214ed datasets.)185 376.8 Q F4 +109.666 388.8 Q F5(depth)6 E F1(Recurse at most)185 388.8 Q F5 +(depth)2.5 E F1(datasets deep.)2.5 E(Def)5 E(ault:)-.1 E F2(0)2.5 E F1 +(.)A F4109.666 405.6 Q F1(List all encryption roots, e)185 405.6 Q +-.15(ve)-.25 G 2.5(no).15 G(nes not managed by)-2.5 E F3(tzpfms)2.5 E F1 +(.)A F4109.666 417.6 Q F5(back-end)6 E F1 +(List only encryption roots with the speci\214ed)185 417.6 Q F3(tzpfms) +2.5 E F5(back-end)2.5 E F1(.)A F4109.666 434.4 Q F1 +(List only encryption roots whose k)185 434.4 Q -.15(ey)-.1 G 2.5(sa).15 +G(re una)-2.5 E -.25(va)-.2 G(ilable.).25 E F4109.666 446.4 Q F1 +(List only encryption roots whose k)185 446.4 Q -.15(ey)-.1 G 2.5(sa).15 +G(re a)-2.5 E -.25(va)-.2 G(ilable.).25 E F2(EXAMPLES)72 463.2 Q F4($) +108 475.2 Q F3(zfs-tpm-list)6 E F4 72(NAME BACK-END)108 487.2 R 18 +(KEYSTATUS COHERENT)12 F 36(tarta-zoot TPM1.X)108 499.2 R 18 +(available yes)24 F 6(tarta-zoot/home TPM2)108 511.2 R 6 +(unavailable yes)36 F($)108 535.2 Q F3(zfs-tpm-list)6 E F4(\255ad0)7.666 +E 24(NAME BACK-END)108 547.2 R 6(KEYSTATUS COHERENT)12 F 6(filling -)108 +559.2 R 6(available yes)54 F($)108 583.2 Q F3(zfs-tpm-list)6 E F4 +7.666 E F2(TPM2)6 E F4 72(NAME BACK-END)108 595.2 R 18 +(KEYSTATUS COHERENT)12 F 6(tarta-zoot/home TPM2)108 607.2 R 6 +(unavailable yes)36 F($)108 631.2 Q F3(zfs-tpm-list)6 E F4(\255ra)7.666 +E F5(tarta-zoot)6 E F4 72(NAME BACK-END)108 643.2 R 18 +(KEYSTATUS COHERENT)12 F 36(tarta-zoot TPM1.X)108 655.2 R 18 +(available yes)24 F 6(tarta-zoot/home TPM2)108 667.2 R 6 +(unavailable yes)36 F 12(tarta-zoot/bkp -)108 679.2 R 18(available yes) +54 F 18(tarta-zoot/vm -)108 691.2 R 18(available yes)54 F($)108 715.2 Q +F3(zfs-tpm-list)6 E F4(\255al)7.666 E 72(NAME BACK-END)108 727.2 R 6 +(KEYSTATUS COHERENT)12 F 54(filling -)108 739.2 R 6(available yes)54 F +36(tarta-zoot TPM1.X)108 751.2 R 6(available yes)24 F 12 +(tarta-zoot/bkp -)108 763.2 R 6(available yes)54 F 18(tarta-zoot/vm -) +108 775.2 R 6(available yes)54 F F1(tzpfms 0.3.3-1-g)72 817.889 Q 98.073 +(aa1c21f July)-.05 F(16, 2023)2.5 E(1)193.552 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 72(NAME BACK-END)102 96 R 6 -(KEYSTATUS COHERENT)12 F 54(filling -)102 108 R 6(available yes)54 F 36 -(tarta-zoot TPM1.X)102 120 R 6(available yes)24 F 12(tarta-zoot/bkp -) -102 132 R 6(available yes)54 F 18(tarta-zoot/vm -)102 144 R 6 -(available yes)54 F/F2 10/Times-Bold@0 SF 1.666(SPECIAL THANKS)72 168 R -F0 1.6 -.8(To a)102 180 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F2<83>122 192 Q F0(ThePhD)7.5 E F2<83>122 -204 Q F0(Embark Studios)7.5 E F2<83>122 216 Q F0(Lars Strojn)7.5 E(y) --.15 E F2(REPOR)72 240 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr) -102 252 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F1 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 270 Q F0 86.763(,a)C(rchi) --86.763 E -.15(ve)-.25 G 86.762(da).15 G(t)-86.762 E F2 -(https://lists.sr)102 282 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(2)201.085 E 0 Cg EP -%%Page: 3 3 +/F0 10/Times-Italic@0 SF(ZFS-TPM-LIST)72 48 Q/F1 10/Times-Roman@0 SF +96.343(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G(anual)-2.5 E F0 +(ZFS-TPM-LIST)96.342 E F1(\(8\))A/F2 10/Times-Bold@0 SF 1.666 +(SPECIAL THANKS)72 84 R F1 1.6 -.8(To a)108 96 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F2<83>128 108 Q F1(ThePhD)7.5 E F2<83>128 120 Q F1(Embark Studios) +7.5 E F2<83>128 132 Q F1(Lars Strojn)7.5 E(y)-.15 E F2(REPOR)72 148.8 Q +1.666(TING B)-.4 F(UGS)-.1 E F1(https://todo.sr)108 160.8 Q +(.ht/\001nabijaczle)-.55 E(weli/tzpfms)-.25 E F0(\001nabijaczle)108 +177.6 Q(weli/tzpfms@lists.sr)-.15 E(.ht)-1.11 E F1 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G 2.5(th)-2.5 G(ttps://lists.sr)-2.5 E +(.ht/\001nabijaczle)-.55 E(weli/tzpfms.)-.25 E(tzpfms 0.3.3-1-g)72 +817.889 Q 98.073(aa1c21f July)-.05 F(16, 2023)2.5 E(2)193.552 E 0 Cg EP +%%Page: 1 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 3.333(][).833 G F2-.834 E -F3(PCR)6 E F0([)A F2(,)A F3(PCR)A F0 1.666(]...)C(])-.833 E F3(dataset) -2.5 E F1(DESCRIPTION)72 168 Q F0 3.366 -.8(To n)102 180 T 1.766 -(ormalise the).8 F F3(dataset)4.266 E F0(,)A F2(zfs-tpm1x-change-key) -4.266 E F0 1.766(will open its encryption root in its stead.)4.266 F F2 -(zfs-tpm1x-change-key)102 192 Q F0(will)3.064 E/F4 10/Times-Italic@0 SF -(ne)3.064 E(ver)-.15 E F0 .564(create or destro)3.064 F 3.064(ye)-.1 G -.564(ncryption roots; use)-3.064 F/F5 10/Courier@0 SF(zfs-change-key) -3.063 E F0(\(8\))A(for 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.652 E F0 -.1 -(wa)2.652 G 2.652(sp).1 G(re)-2.652 E .152(viously encrypted with)-.25 F -F2(tzpfms)2.652 E F0 .153(and the)2.652 F F1(TPM1.X)2.653 E F0 .153 -(back-end w)2.653 F .153(as used, the metadata)-.1 F .587 -(will be silently cleared.)102 252 R .587 -(Otherwise, or in case of an error)5.587 F 3.087(,d)-.4 G .587 -(ata required for manual interv)-3.087 F .586(ention will be)-.15 F -(printed to the standard error stream.)102 264 Q(Ne)102 282 Q .252 -(xt, a ne)-.15 F 2.752(ww)-.25 G .252(rapping k)-2.752 F .552 -.15(ey i) --.1 H 2.752(sg).15 G .253(enerated on the TPM, optionally back)-2.752 F -.253(ed up)-.1 F 1.666(\(s)4.419 G(ee)-1.666 E F1(OPTIONS)2.753 E F0 --3.079 1.666(\), a)1.666 H .253(nd sealed)-1.666 F .901(on the TPM; the\ - user is prompted for an optional passphrase to protect the k)102 294 R -1.201 -.15(ey w)-.1 H .901(ith, and for the SRK).15 F -(passphrase, set when taking o)102 306 Q(wnership, if 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)7.5 E F0(=)A F1(TPM1.X)A<83>122 -348 Q F5(xyz.nabijaczleweli:tzpfms.key)7.5 E F0(=)A F3(parent-key-blob)A -F2(:)A F3(sealed-object-blob)A F5(tzpfms.backend)102 366 Q F0 .558 -(identi\214es this dataset for w)3.058 F .558(ork with)-.1 F F1(TPM1.X) -3.058 E F0(-back-ended)A F2(tzpfms)3.059 E F0 2.225(tools \()3.059 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 .376 -(is a colon-separated pair of he)2.876 F .376 -(xadecimal-string \(i.e. "4F7730" for "Ow0"\) blobs; the \214rst)-.15 F -1.155(one represents the RSA k)102 408 R 1.455 -.15(ey p)-.1 H 1.156(ro\ -tecting the blob, and it is protected with either the passphrase, if pr\ -o-).15 F 2.487(vided, or the SHA1 constant)102 420 R F5 -(CE4CF677875B5EB8993591D5A9AF1ED24A3A8736)4.986 E F0 4.986(;t)C 2.486 -(he second)-4.986 F 2.084 -(represents the sealed object containing the wrapping k)102 432 R -.15 -(ey)-.1 G 4.585(,a)-.5 G 2.085(nd is protected with the SHA1 constant) --4.585 F F5(B9EE715DBE4B243FAA81EA04306E063710383E35)102 444 Q F0 5.347 -(.T)C .347(here e)-5.347 F .347(xists no other user)-.15 F .347 -(-land tool for de-)-.2 F(crypting this; perhaps there should be.)102 -456 Q(Finally)102 474 Q 12.755(,t)-.65 G 10.255(he equi)-12.755 F -.25 -(va)-.25 G 10.255(lent of).25 F F2 10.255(zfs change-key)12.755 F -17.922 E F5(keylocation=prompt)16.256 E F217.922 E F5 -(keyformat=raw)102 486 Q F3(dataset)6.507 E F0 .507 -(is performed with the ne)3.007 F 3.006(wk)-.25 G -.15(ey)-3.106 G 5.506 -(.I)-.5 G 3.006(fa)-5.506 G 3.006(ne)-3.006 G .506 -(rror occurred, best ef)-3.006 F .506(fort is made)-.25 F -(to clean up the properties, or to issue a note for manual interv)102 -498 Q(ention into the standard error stream.)-.15 E 2.624<418c>102 516 S -.124(nal v)-2.624 F .124(eri\214cation should be made by running)-.15 F -F2 1.791(zfs-tpm1x-load-key \255n)2.625 F F3(dataset)6.125 E F0 5.125 -(.I)C 2.625(ft)-5.125 G .125(hat com-)-2.625 F .859 -(mand succeeds, all is well, b)102 528 R .859(ut otherwise the dataset \ -can be manually rolled back to a passphrase with)-.2 F F2 -(zfs-tpm1x-clear-key)102 540 Q F3(dataset)11.205 E F0 1.666(\(o)9.371 G -6.005 -.4(r, i)-1.666 H 7.706(ft).4 G 5.206(hat f)-7.706 F 5.206 -(ails to w)-.1 F(ork,)-.1 E F2 5.206(zfs change-key)7.706 F12.872 -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)8.036 E -F0 2.035(can be used to clear the properties and go back to using a) -4.536 F(passphrase.)102 582 Q F1(OPTIONS)72 606 Q F2103.666 618 Q -F3(backup-file)6 E F0(Sa)197 618 Q .852 -.15(ve a b)-.2 H .552 -(ack-up of the k).15 F .852 -.15(ey t)-.1 H(o).15 E F3(backup-file)3.052 -E F0 3.052(,w)C .552(hich must not e)-3.052 F .553(xist beforehand.)-.15 -F 1.194(This back-up)197 630 R F4(must)3.694 E F0 1.194 -(be stored securely)3.694 F 3.694(,o)-.65 G -.25(ff)-3.694 G 3.694 -(-site. In).25 F 1.193(case of a catastrophic e)3.694 F -.15(ve)-.25 G -(nt,).15 E(the k)197 642 Q .3 -.15(ey c)-.1 H(an be loaded by running) -.15 E F2(zfs load-key)227 654 Q F3(dataset)6 E F5(<)6 E F3(backup-file)6 -E F2103.666 672 Q F3(PCR)6 E F0([)A F2(,)A F3(PCR)A F0 1.666(]...) -C 1.1(Bind the k)197 672 R 1.4 -.15(ey t)-.1 H 3.6(os).15 G 1.1 -(pace- or comma-separated)-3.6 F F3(PCR)3.6 E F0 -6.099 3.6(s\212 i)D -3.601(ft)-3.6 G(he)-3.601 E 3.601(yc)-.15 G 1.101(hange, the wrap-) --3.601 F .863(ping k)197 684 R 1.163 -.15(ey w)-.1 H .863 -(ill not be able to be unsealed.).15 F .862 -(The minimum number of PCRs for a)5.862 F(PC TPM is)197 696 Q F1(24)2.5 -E F0 1.666(\(n)4.166 G .833(umbered [)-1.666 F F1(0).833 E F0(,)A F1(23) -2.5 E F0 -.832 1.666(]\). F).833 H(or most, this is also the maximum.) --1.816 E F1(ENVIR)72 720 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E F0 -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(3)201.085 E 0 Cg EP -%%Page: 4 4 +/F0 10/Times-Italic@0 SF(ZFS-TPM1X-CHANGE-KEY)72 48 Q/F1 10 +/Times-Roman@0 SF 43.013(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G +(anual)-2.5 E F0(ZFS-TPM1X-CHANGE-KEY)43.012 E F1(\(8\))A/F2 10 +/Times-Bold@0 SF -.2(NA)72 84 S(ME).2 E F1(zfs-tpm1x-change-k)108 96 Q +.3 -.15(ey \212 c)-.1 H(hange ZFS dataset k).15 E .3 -.15(ey t)-.1 H 2.5 +(oo).15 G(ne stored on the TPM)-2.5 E F2(SYNOPSIS)72 112.8 Q/F3 10 +/Courier-Bold@0 SF(zfs-tpm-list)108 124.8 Q F1([)2.5 E/F4 10/Courier@0 +SF1.666 E/F5 10/Courier-Oblique@0 SF(backup-file)6 E F1 2.5(][)C +F4-.834 E F5(PCR)6 E F1([)A F4(,)A F5(PCR)A F1 1.666(]...)C(]) +-1.666 E F5(dataset)2.5 E F2(DESCRIPTION)72 141.6 Q F1 6.866 -.8(To n) +108 153.6 T 5.266(ormalise the).8 F F5(dataset)7.766 E F1(,)A F3 +(zfs-tpm-list)7.766 E F1 5.266 +(will open its encryption root in its stead.)7.766 F F3(zfs-tpm-list)108 +165.6 Q F1(will)2.5 E F0(ne)2.5 E(ver)-.15 E F1(create or destro)2.5 E +2.5(ye)-.1 G(ncryption roots; use)-2.5 E F0(zfs-c)2.5 E(hang)-.15 E(e-k) +-.1 E -.3(ey)-.1 G F1(\(8\) for that.).3 E +(First, a connection is made to the TPM, which)108 182.4 Q F0(must)2.5 E +F1(be TPM-1.X-compatible.)2.5 E(If)108 199.2 Q F5(dataset)3.177 E F1 -.1 +(wa)3.176 G 3.176(sp).1 G(re)-3.176 E .676(viously encrypted with)-.25 F +F3(tzpfms)3.176 E F1 .676(and the)3.176 F F2(TPM1.X)3.176 E F1 .676 +(back-end w)3.176 F .676(as used, the meta-)-.1 F .926 +(data will be silently cleared.)108 211.2 R .926 +(Otherwise, or in case of an error)5.926 F 3.426(,d)-.4 G .926 +(ata required for manual interv)-3.426 F(ention)-.15 E +(will be printed to the standard error stream.)108 223.2 Q(Ne)108 240 Q +1.741(xt, a ne)-.15 F 4.241(ww)-.25 G 1.741(rapping k)-4.241 F 2.041 +-.15(ey i)-.1 H 4.24(sg).15 G 1.74(enerated on the TPM, optionally back) +-4.24 F 1.74(ed up \(see \231OPTIONS\232\), and)-.1 F .294(sealed on th\ +e TPM; the user is prompted for an optional passphrase to protect the k) +108 252 R .594 -.15(ey w)-.1 H .294(ith, and for the).15 F +(SRK passphrase, set when taking o)108 264 Q(wnership, if not "well-kno) +-.25 E(wn" \(all zeroes\).)-.25 E(The follo)108 280.8 Q +(wing properties are set on)-.25 E F5(dataset)2.5 E F1(:)A F2<83>128 +292.8 Q F4(xyz.nabijaczleweli:tzpfms.backend)7.5 E F1(=)A F2(TPM1.X)A +<83>128 304.8 Q F4(xyz.nabijaczleweli:tzpfms.key)7.5 E F1(=)A F5 +(parent-key-blob)A F4(:)A F5(sealed-object-blob)A F4(tzpfms.backend)108 +321.6 Q F1 .292(identi\214es this dataset for w)2.792 F .291(ork with) +-.1 F F2(TPM1.X)2.791 E F1(-back-ended)A F3(tzpfms)2.791 E F1 .291 +(tools \(namely)2.791 F F0(zfs-tpm1x-c)108 333.6 Q(hang)-.15 E(e-k)-.1 E +-.3(ey)-.1 G F1(\(8\),).3 E F0(zfs-tpm1x-load-k)2.5 E -.3(ey)-.1 G F1 +(\(8\), and).3 E F0(zfs-tpm1x-clear)2.5 E(-k)-.2 E -.3(ey)-.1 G F1 +(\(8\)\).).3 E F4(tzpfms.key)108 350.4 Q F1 1.412 +(is a colon-separated pair of he)3.912 F 1.412 +(xadecimal-string \(i.e. "4F7730" for "Ow0"\) blobs; the)-.15 F .868 +(\214rst one represents the RSA k)108 362.4 R 1.168 -.15(ey p)-.1 H .867 +(rotecting the blob, and it is protected with either the passphrase, if) +.15 F(pro)108 374.4 Q 1.413(vided, or the SHA1 constant)-.15 F F4 +(CE4CF677875B5EB8993591D5A9AF1ED24A3A8736)3.914 E F1 3.914(;t)C 1.414 +(he sec-)-3.914 F .379 +(ond represents the sealed object containing the wrapping k)108 386.4 R +-.15(ey)-.1 G 2.879(,a)-.5 G .379 +(nd is protected with the SHA1 constant)-2.879 F F4 +(B9EE715DBE4B243FAA81EA04306E063710383E35)108 398.4 Q F1 6.72(.T)C 1.72 +(here e)-6.72 F 1.721(xists no other user)-.15 F 1.721(-land tool for) +-.2 F(decrypting this; perhaps there should be.)108 410.4 Q(Finally)108 +427.2 Q 12.006(,t)-.65 G 9.506(he equi)-12.006 F -.25(va)-.25 G 9.506 +(lent of).25 F F3(zfs)12.005 E F4 11.171(change-key \255o)15.505 F +11.171(keylocation=prompt \255o)15.505 F(keyformat=raw)108 439.2 Q F5 +(dataset)6.106 E F1 .106(is performed with the ne)2.606 F 2.606(wk)-.25 +G -.15(ey)-2.706 G 5.106(.I)-.5 G 2.606(fa)-5.106 G 2.606(ne)-2.606 G +.107(rror occurred, best ef)-2.606 F .107(fort is made)-.25 F +(to clean up the properties, or to issue a note for manual interv)108 +451.2 Q(ention into the standard error stream.)-.15 E 4.056<418c>108 468 +S 1.556(nal v)-4.056 F 1.556(eri\214cation should be made by running) +-.15 F F3(zfs-tpm1x-load-key)4.056 E F49.222 E F5(dataset)7.555 E +F1 6.555(.I)C 4.055(ft)-6.555 G(hat)-4.055 E .729 +(command succeeds, all is well, b)108 480 R .729 +(ut otherwise the dataset can be manually rolled back to a passphrase) +-.2 F(with)108 492 Q F3(zfs-tpm1x-clear-key)5.147 E F5(dataset)8.647 E +F1(\(or)5.147 E 5.146(,i)-.4 G 5.146(ft)-5.146 G 2.646(hat f)-5.146 F +2.646(ails to w)-.1 F(ork,)-.1 E F3(zfs)5.146 E F4 4.312 +(change-key \255o)8.646 F(keyformat=passphrase)108 504 Q F5(dataset)6 E +F1(\), and you are hereby ask)A(ed to report a b)-.1 E(ug, please.)-.2 E +F3(zfs-tpm1x-clear-key)108 520.8 Q F5(dataset)7.606 E F1 1.607 +(can be used to clear the properties and go back to using a)4.106 F +(passphrase.)108 532.8 Q F2(OPTIONS)72 549.6 Q F4109.666 561.6 Q +F5(backup-file)6 E F1(Sa)203 561.6 Q .353 -.15(ve a b)-.2 H .052 +(ack-up of the k).15 F .352 -.15(ey t)-.1 H(o).15 E F5(backup-file)2.552 +E F1 2.552(,w)C .052(hich must not e)-2.552 F .052(xist beforehand.)-.15 +F .693(This back-up)203 573.6 R F0(must)3.193 E F1 .694 +(be stored securely)3.193 F 3.194(,o)-.65 G -.25(ff)-3.194 G 3.194 +(-site. In).25 F .694(case of a catastrophic e)3.194 F -.15(ve)-.25 G +(nt,).15 E(the k)203 585.6 Q .3 -.15(ey c)-.1 H(an be loaded by running) +.15 E F3(zfs)233 597.6 Q F4(load-key)6 E F5(dataset)6 E F4(<)6 E F5 +(backup-file)6 E F4109.666 614.4 Q F5(PCR)6 E F1([)A F4(,)A F5 +(PCR)A F1 1.666(]...)C .639(Bind the k)203 614.4 R .939 -.15(ey t)-.1 H +3.139(os).15 G .639(pace- or comma-separated)-3.139 F F5(PCR)3.139 E F1 +3.139(s\212i)C 3.139(ft)-3.139 G(he)-3.139 E 3.139(yc)-.15 G .638 +(hange, the wrap-)-3.139 F .462(ping k)203 626.4 R .762 -.15(ey w)-.1 H +.462(ill not be able to be unsealed.).15 F .463 +(The minimum number of PCRs for a)5.462 F(PC TPM is)203 638.4 Q F2(24) +2.5 E F1(\(numbered [)2.5 E F2(0)A F1(,)A F2(23)2.5 E F1 2.5(]\). F)B +(or most, this is also the maximum.)-.15 E F2(ENVIR)72 655.2 Q 1.666 +(ONMENT V)-.3 F(ARIABLES)-1.35 E F4(TZPFMS_PASSPHRASE_HELPER)108 667.2 Q +F1 .046(By def)133 679.2 R .045(ault, passphrases are prompted for and \ +read in on the standard output and input streams.)-.1 F(If)5.045 E F4 +(TZPFMS_PASSPHRASE_HELPER)133 691.2 Q F1 .896(is set and nonempty)3.396 +F 3.396(,i)-.65 G 3.396(tw)-3.396 G .896(ill be run via)-3.396 F F0 +(/bin/)3.396 E F3(sh)A F48.562 E F1 .897(to pro-)3.396 F +(vide each passphrase, instead.)133 703.2 Q .643 +(The standard output stream of the helper is tied to an anon)133 720 R +.643(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) +133 732 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 +(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F4($1)143 744 Q F1 +(Pre-formatted noun phrase with all the information belo)160 744 Q 1.3 +-.65(w, f)-.25 H(or use as a prompt).65 E(tzpfms 0.3.3-1-g)72 817.889 Q +98.073(aa1c21f July)-.05 F(16, 2023)2.5 E(1)193.552 E 0 Cg EP +%%Page: 2 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/Courier@0 SF -(TZPFMS_PASSPHRASE_HELPER)102 96 Q F0 .42(By def)127 108 R .42(ault, pa\ -ssphrases are prompted for and read in on the standard output and input\ - streams.)-.1 F(If)5.421 E F1(TZPFMS_PASSPHRASE_HELPER)127 120 Q F0 .461 -(is set and nonempty)2.961 F 2.961(,i)-.65 G 2.961(tw)-2.961 G .461 -(ill be run via)-2.961 F F1(/bin/)2.96 E/F2 10/Courier-Bold@0 SF 2.126 -(sh \255c)B F0 .46(to pro-)2.96 F(vide each passphrase, instead.)127 132 -Q .15(The standard output stream of the helper is tied to an anon)127 -150 R .151(ymous \214le and used in its entirety as the)-.15 F -(passphrase, e)127 162 Q(xcept for a trailing ne)-.15 E(w-line, if an) --.25 E 3.8 -.65(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F1($1)137 -174 Q F0(Pre-formatted noun phrase with all the information belo)154 174 -Q 1.3 -.65(w, f)-.25 H(or use as a prompt).65 E F1($2)137 186 Q F0 -(Either the dataset name or the element of the TPM hierarch)154 186 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F1($3)137 198 Q F0("ne)154 198 Q +/F0 10/Times-Italic@0 SF(ZFS-TPM1X-CHANGE-KEY)72 48 Q/F1 10 +/Times-Roman@0 SF 43.013(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G +(anual)-2.5 E F0(ZFS-TPM1X-CHANGE-KEY)43.012 E F1(\(8\))A/F2 10 +/Courier@0 SF($2)143 84 Q F1 +(Either the dataset name or the element of the TPM hierarch)160 84 Q 2.5 +(yb)-.05 G(eing prompted for)-2.5 E F2($3)143 96 Q F1("ne)160 96 Q (w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F1($4)137 210 Q F0("ag)154 210 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E .139 -(If the helper doesn')127 228 R 2.639(te)-.18 G 1.805(xist \()-2.789 F -.138(the shell e)1.666 F .138(xits with)-.15 F/F3 10/Times-Bold@0 SF -(127)2.638 E F0 -3.194 1.666(\), a d)1.666 H .138 -(iagnostic is issued and the normal prompt)-1.666 F(is used as f)127 240 -Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 G -(ther reason, the prompting is aborted.)-2.5 E F3 1.666 -(TPM1.X back-end con\214guration)72 264 R .625(TPM selection)84 276 R F0 -(The)102 288 Q F2(tzpfms)2.682 E F0 .182(suite connects to a local)2.682 -F F1(tcsd)2.682 E F0 .182(\(8\) process)B 1.666(\(a)4.348 G(t)-1.666 E -F1(localhost:30003)2.682 E F0 4.348(\)b)1.666 G 2.683(yd)-4.348 G(ef) --2.683 E 2.683(ault. Use)-.1 F(the)2.683 E(en)102 300 Q(vironment v)-.4 -E(ariable)-.25 E F1(TZPFMS_TPM1X)2.5 E F0 -(to specify a remote TCS hostname.)2.5 E .611(The T)102 318 R(rouSerS) --.35 E F1(tcsd)3.111 E F0 .611(\(8\) daemon will try)B F1(/dev/tpm0)3.11 -E F0 3.11(,t)C(hen)-3.11 E F1(/udev/tpm0)3.11 E F0 3.11(,t)C(hen)-3.11 E -F1(/dev/tpm)3.11 E F0 3.11(;b)C 3.11(yo)-3.11 G(ccu-)-3.11 E -.1(py)102 -330 S(ing one of the earlier ones with, for e).1 E +-2.5 E F2($4)143 108 Q F1("ag)160 108 Q(ain" if it')-.05 E 2.5(st)-.55 G +(he second prompt for that passphrase, otherwise blank)-2.5 E .177 +(If the helper doesn')133 124.8 R 2.677(te)-.18 G .177 +(xist \(the shell e)-2.827 F .177(xits with)-.15 F/F3 10/Times-Bold@0 SF +(127)2.677 E F1 .178(\), a diagnostic is issued and the normal prompt)B +(is used as f)133 136.8 Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an) +-.1 E 2.5(yo)-.15 G(ther reason, the prompting is aborted.)-2.5 E F3 +1.666(TPM1.X back-end con\214guration)72 153.6 R .625(TPM selection)87 +165.6 R F1(The)108 177.6 Q/F4 10/Courier-Bold@0 SF(tzpfms)2.509 E F1 +.009(suite connects to a local)2.509 F F0(tcsd)2.508 E F1 .008 +(\(8\) process \(at)B F0(localhost:30003)2.508 E F1 2.508(\)b)C 2.508 +(yd)-2.508 G(ef)-2.508 E 2.508(ault. Use)-.1 F .008(the en)2.508 F +(viron-)-.4 E(ment v)108 189.6 Q(ariable)-.25 E F2(TZPFMS_TPM1X)2.5 E F1 +(to specify a remote TCS hostname.)2.5 E .444(The T)108 206.4 R(rouSerS) +-.35 E F0(tcsd)2.944 E F1 .444(\(8\) daemon will try)B F0(/de)2.945 E +(v/tpm0)-.15 E F1 2.945(,t)C(hen)-2.945 E F0(/ude)2.945 E(v/tpm0)-.15 E +F1 2.945(,t)C(hen)-2.945 E F0(/de)2.945 E(v/tpm)-.15 E F1 2.945(;b)C +2.945(yo)-2.945 G(ccup)-2.945 E .445(ying one of)-.1 F +(the earlier ones with, for e)108 218.4 Q (xample, shell redirection, a later one can be selected.)-.15 E F3 .625 -(See also)84 354 R F0(The T)102 366 Q(rouSerS project page at)-.35 E F3 -(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 2.719(The TPM 1.2 main speci\214cation inde)102 -384 R 5.22(xa)-.15 G(t)-5.22 E F3(https://trustedcomputinggr)5.22 E -(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E -(speci\214cation)102 396 Q F0(.)A F3 1.666(SPECIAL THANKS)72 420 R F0 -1.6 -.8(To a)102 432 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F3<83>122 444 Q F0(ThePhD)7.5 E F3<83>122 -456 Q F0(Embark Studios)7.5 E F3<83>122 468 Q F0(Lars Strojn)7.5 E(y) --.15 E F3(REPOR)72 492 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr) -102 504 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F1 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 522 Q F0 86.763(,a)C(rchi) --86.763 E -.15(ve)-.25 G 86.762(da).15 G(t)-86.762 E F3 -(https://lists.sr)102 534 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A F3 -1.666(SEE ALSO)72 558 R F0(PCR allocations:)102 570 Q F3 -(https://wiki.ar)102 582 Q(chlinux.or)-.18 E(g/title/T)-.1 E -(rusted_Platf)-.74 E(orm_Module#Accessing_PCR_r)-.25 E(egisters)-.18 E -F0(and)2.5 E F3(https://trustedcomputinggr)102 594 Q(oup.or)-.18 E -(g/wp-content/uploads/PC-)-.1 E(ClientSpeci\214c_Platf)102 606 Q(orm_Pr) --.25 E(o\214le_f)-.18 E(or_TPM_2p0_Systems_v51.pdf)-.25 E F0 2.5(,S)C -(ection 2.3.4 "PCR Usage", T)-2.5 E(able)-.8 E(1.)102 618 Q -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(4)201.085 E 0 Cg EP -%%Page: 5 5 +(See also)87 235.2 R F1(The T)108 247.2 Q +(rouSerS project page at https://sourcefor)-.35 E +(ge.net/projects/trousers.)-.18 E 4.415 +(The TPM 1.2 main speci\214cation inde)108 264 R 6.915(xa)-.15 G 6.915 +(th)-6.915 G(ttps://trustedcomputinggroup.or)-6.915 E +(g/resource/tpm-main-)-.18 E(speci\214cation.)108 276 Q F3 1.666 +(SPECIAL THANKS)72 292.8 R F1 1.6 -.8(To a)108 304.8 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F3<83>128 316.8 Q F1(ThePhD)7.5 E F3<83>128 328.8 Q F1 +(Embark Studios)7.5 E F3<83>128 340.8 Q F1(Lars Strojn)7.5 E(y)-.15 E F3 +(REPOR)72 357.6 Q 1.666(TING B)-.4 F(UGS)-.1 E F1(https://todo.sr)108 +369.6 Q(.ht/\001nabijaczle)-.55 E(weli/tzpfms)-.25 E F0(\001nabijaczle) +108 386.4 Q(weli/tzpfms@lists.sr)-.15 E(.ht)-1.11 E F1 2.5(,a)C(rchi) +-2.5 E -.15(ve)-.25 G 2.5(da).15 G 2.5(th)-2.5 G(ttps://lists.sr)-2.5 E +(.ht/\001nabijaczle)-.55 E(weli/tzpfms.)-.25 E F3 1.666(SEE ALSO)72 +403.2 R F1(PCR allocations: https://wiki.archlinux.or)108 415.2 Q +(g/title/T)-.18 E(rusted_Platform_Module#Accessing_PCR_re)-.35 E +(gisters)-.15 E(and https://trustedcomputinggroup.or)108 427.2 Q +(g/wp-content/uploads/PC-)-.18 E(ClientSpeci\214c_Platform_Pro\214le_fo\ +r_TPM_2p0_Systems_v51.pdf, Section 2.3.4 "PCR Usage", T)108 439.2 Q +(able)-.8 E(1.)108 451.2 Q(tzpfms 0.3.3-1-g)72 817.889 Q 98.073 +(aa1c21f July)-.05 F(16, 2023)2.5 E(2)193.552 E 0 Cg EP +%%Page: 1 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 3.508<8a72>3.507 G -.25(ew)-3.508 G 1.008(rap ZFS dataset k).25 -F 1.308 -.15(ey i)-.1 H 3.508(np).15 G(asssw)-3.508 E 1.008 -(ord and clear tzpfms TPM1.X meta-)-.1 F(data)102 120 Q F1(SYNOPSIS)72 -144 Q F2(zfs-tpm1x-clear-key)102 156 Q/F3 10/Courier-Oblique@0 SF -(dataset)2.5 E F1(DESCRIPTION)72 180 Q F0(After v)102 192 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 5 -(1. performs)112 204 R 6.392(the equi)8.892 F -.25(va)-.25 G 6.392 -(lent of).25 F F2 6.392(zfs change-key)8.892 F14.057 E/F4 10 -/Courier@0 SF(keylocation=prompt)12.391 E F214.057 E F4 -(keyformat=passphrase)127 216 Q F3(dataset)6 E F0(,)A 5(2. remo)112 228 -R -.15(ve)-.15 G 11.889(st).15 G(he)-11.889 E F4 -(xyz.nabijaczleweli:tzpfms.)11.889 E F0({)A F4(backend)A F0(,)A F4(key) -15.389 E F0 11.889(}p)C 9.389(roperties from)-11.889 F F3(dataset)127 -240 Q F0(.)A(See)102 258 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 282 R .625(TPM selection)84 294 R F0 -(The)102 306 Q F2(tzpfms)2.683 E F0 .182(suite connects to a local)2.683 -F F4(tcsd)2.682 E F0 .182(\(8\) process)B 1.666(\(a)4.348 G(t)-1.666 E -F4(localhost:30003)2.682 E F0 4.348(\)b)1.666 G 2.682(yd)-4.348 G(ef) --2.682 E 2.682(ault. Use)-.1 F(the)2.682 E(en)102 318 Q(vironment v)-.4 -E(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F0 -(to specify a remote TCS hostname.)2.5 E .61(The T)102 336 R(rouSerS) --.35 E F4(tcsd)3.11 E F0 .61(\(8\) daemon will try)B F4(/dev/tpm0)3.11 E -F0 3.11(,t)C(hen)-3.11 E F4(/udev/tpm0)3.111 E F0 3.111(,t)C(hen)-3.111 -E F4(/dev/tpm)3.111 E F0 3.111(;b)C 3.111(yo)-3.111 G(ccu-)-3.111 E -.1 -(py)102 348 S(ing one of the earlier ones with, for e).1 E -(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 -(See also)84 372 R F0(The T)102 384 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 2.719(The TPM 1.2 main speci\214cation inde)102 -402 R 5.219(xa)-.15 G(t)-5.219 E F1(https://trustedcomputinggr)5.219 E -(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E -(speci\214cation)102 414 Q F0(.)A F1 1.666(SPECIAL THANKS)72 438 R F0 -1.6 -.8(To a)102 450 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 462 Q F0(ThePhD)7.5 E F1<83>122 -474 Q F0(Embark Studios)7.5 E F1<83>122 486 Q F0(Lars Strojn)7.5 E(y) --.15 E F1(REPOR)72 510 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr) -102 522 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F4 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 540 Q F0 86.762(,a)C(rchi) --86.762 E -.15(ve)-.25 G 86.763(da).15 G(t)-86.763 E F1 -(https://lists.sr)102 552 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(5)201.085 E 0 Cg EP -%%Page: 6 6 +/F0 10/Times-Italic@0 SF(ZFS-TPM1X-CLEAR-KEY)72 48 Q/F1 10/Times-Roman@0 +SF 52.453(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G(anual)-2.5 E F0 +(ZFS-TPM1X-CLEAR-KEY)52.452 E F1(\(8\))A/F2 10/Times-Bold@0 SF -.2(NA)72 +84 S(ME).2 E F1(zfs-tpm1x-clear)108 96 Q(-k)-.2 E .3 -.15(ey \212 r)-.1 +H -.25(ew).15 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 F2(SYNOPSIS)72 +112.8 Q/F3 10/Courier-Bold@0 SF(zfs-tpm-list)108 124.8 Q/F4 10 +/Courier-Oblique@0 SF(dataset)2.5 E F2(DESCRIPTION)72 141.6 Q F1 +(After v)108 153.6 Q(erifying)-.15 E F4(dataset)2.5 E F1 -.1(wa)2.5 G +2.5(se).1 G(ncrypted with)-2.5 E F3(tzpfms)2.5 E F1(back)2.5 E(end)-.1 E +F2(TPM1.X)2.5 E F1(:)A 5(1. performs)118 165.6 R 5.641(the equi)8.141 F +-.25(va)-.25 G 5.641(lent of).25 F F3(zfs)8.142 E/F5 10/Courier@0 SF +7.308(change-key \255o)11.642 F 7.308(keylocation=prompt \255o)11.642 F +(keyformat=passphrase)133 177.6 Q F4(dataset)6 E F1(,)A 5(2. remo)118 +189.6 R -.15(ve)-.15 G 10.689(st).15 G(he)-10.689 E F5 +(xyz.nabijaczleweli:tzpfms.)10.689 E F1({)A F5(backend)A F1(,)A F5(key) +14.189 E F1 10.689(}p)C 8.189(roperties from)-10.689 F F4(dataset)133 +201.6 Q F1(.)A(See)108 218.4 Q F0(zfs-tpm1x-c)2.5 E(hang)-.15 E(e-k)-.1 +E -.3(ey)-.1 G F1(\(8\) for a detailed description.).3 E F2 1.666 +(TPM1.X back-end con\214guration)72 235.2 R .625(TPM selection)87 247.2 +R F1(The)108 259.2 Q F3(tzpfms)2.508 E F1 .008 +(suite connects to a local)2.508 F F0(tcsd)2.508 E F1 .008 +(\(8\) process \(at)B F0(localhost:30003)2.508 E F1 2.509(\)b)C 2.509 +(yd)-2.509 G(ef)-2.509 E 2.509(ault. Use)-.1 F .009(the en)2.509 F +(viron-)-.4 E(ment v)108 271.2 Q(ariable)-.25 E F5(TZPFMS_TPM1X)2.5 E F1 +(to specify a remote TCS hostname.)2.5 E .445(The T)108 288 R(rouSerS) +-.35 E F0(tcsd)2.945 E F1 .445(\(8\) daemon will try)B F0(/de)2.945 E +(v/tpm0)-.15 E F1 2.945(,t)C(hen)-2.945 E F0(/ude)2.945 E(v/tpm0)-.15 E +F1 2.945(,t)C(hen)-2.945 E F0(/de)2.944 E(v/tpm)-.15 E F1 2.944(;b)C +2.944(yo)-2.944 G(ccup)-2.944 E .444(ying one of)-.1 F +(the earlier ones with, for e)108 300 Q +(xample, shell redirection, a later one can be selected.)-.15 E F2 .625 +(See also)87 316.8 R F1(The T)108 328.8 Q +(rouSerS project page at https://sourcefor)-.35 E +(ge.net/projects/trousers.)-.18 E 4.415 +(The TPM 1.2 main speci\214cation inde)108 345.6 R 6.915(xa)-.15 G 6.915 +(th)-6.915 G(ttps://trustedcomputinggroup.or)-6.915 E +(g/resource/tpm-main-)-.18 E(speci\214cation.)108 357.6 Q F2 1.666 +(SPECIAL THANKS)72 374.4 R F1 1.6 -.8(To a)108 386.4 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F2<83>128 398.4 Q F1(ThePhD)7.5 E F2<83>128 410.4 Q F1 +(Embark Studios)7.5 E F2<83>128 422.4 Q F1(Lars Strojn)7.5 E(y)-.15 E F2 +(REPOR)72 439.2 Q 1.666(TING B)-.4 F(UGS)-.1 E F1(https://todo.sr)108 +451.2 Q(.ht/\001nabijaczle)-.55 E(weli/tzpfms)-.25 E F0(\001nabijaczle) +108 468 Q(weli/tzpfms@lists.sr)-.15 E(.ht)-1.11 E F1 2.5(,a)C(rchi)-2.5 +E -.15(ve)-.25 G 2.5(da).15 G 2.5(th)-2.5 G(ttps://lists.sr)-2.5 E +(.ht/\001nabijaczle)-.55 E(weli/tzpfms.)-.25 E(tzpfms 0.3.3-1-g)72 +817.889 Q 98.073(aa1c21f July)-.05 F(16, 2023)2.5 E(1)193.552 E 0 Cg EP +%%Page: 1 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 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 F22.499 E F0(]) -.833 E/F3 10/Courier-Oblique@0 SF(dataset)2.5 E F1(DESCRIPTION)72 168 Q -F0 .041(After v)102 180 R(erifying)-.15 E F3(dataset)2.541 E F0 -.1(wa) -2.541 G 2.541(se).1 G .041(ncrypted with)-2.541 F F2(tzpfms)2.54 E F0 -(back)2.54 E(end)-.1 E F1(TPM1.X)2.54 E F0 .04(will unseal the k)2.54 F -.34 -.15(ey a)-.1 H .04(nd load it).15 F(into)102 192 Q F3(dataset)2.5 E -F0(.)A .611 +/F0 10/Times-Italic@0 SF(ZFS-TPM1X-LO)72 48 Q(AD-KEY)-.55 E/F1 10 +/Times-Roman@0 SF 57.453(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G +(anual)-2.5 E F0(ZFS-TPM1X-LO)57.452 E(AD-KEY)-.55 E F1(\(8\))A/F2 10 +/Times-Bold@0 SF -.2(NA)72 84 S(ME).2 E F1(zfs-tpm1x-load-k)108 96 Q .3 +-.15(ey \212 l)-.1 H(oad TPM1.X-encrypted ZFS dataset k).15 E -.15(ey) +-.1 G F2(SYNOPSIS)72 112.8 Q/F3 10/Courier-Bold@0 SF(zfs-tpm-list)108 +124.8 Q F1([)2.5 E/F4 10/Courier@0 SF1.666 E F1(])A/F5 10 +/Courier-Oblique@0 SF(dataset)2.5 E F2(DESCRIPTION)72 141.6 Q F1 .191 +(After v)108 153.6 R(erifying)-.15 E F5(dataset)2.691 E F1 -.1(wa)2.691 +G 2.691(se).1 G .191(ncrypted with)-2.691 F F3(tzpfms)2.69 E F1(back) +2.69 E(end)-.1 E F2(TPM1.X)2.69 E F1 .19(will unseal the k)2.69 F .49 +-.15(ey a)-.1 H .19(nd load).15 F(it into)108 165.6 Q F5(dataset)2.5 E +F1(.)A .236 (The user is \214rst prompted for the SRK passphrase, set when taking o) -102 210 R .611(wnership, if not "well-kno)-.25 F .611(wn" \(all)-.25 F +108 182.4 R .236(wnership, if not "well-kno)-.25 F .236(wn" \(all)-.25 F (zeroes\); then for the additional passphrase, set when creating the k) -102 222 Q -.15(ey)-.1 G 2.5(,i)-.5 G 2.5(fo)-2.5 G(ne w)-2.5 E(as set.) --.1 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 F2103.666 -276 Q F0 3.583(Do a no-op/dry run, can be used e)125 276 R -.15(ve)-.25 -G 6.083(ni).15 G 6.083(ft)-6.083 G 3.583(he k)-6.083 F 3.883 -.15(ey i) --.1 H 6.083(sa).15 G 3.583(lready loaded.)-6.083 F(Equi)8.582 E -.25(va) --.25 G 3.582(lent to).25 F F2(zfs)6.082 E(load-key)125 288 Q F0 -.55('s) -C F24.716 E F0(option.)2.5 E F1(ENVIR)72 312 Q 1.666(ONMENT V)-.3 -F(ARIABLES)-1.35 E F4(TZPFMS_PASSPHRASE_HELPER)102 324 Q F0 .42(By def) -127 336 R .42(ault, passphrases are prompted for and read in on the sta\ -ndard output and input streams.)-.1 F(If)5.421 E F4 -(TZPFMS_PASSPHRASE_HELPER)127 348 Q F0 .461(is set and nonempty)2.961 F -2.961(,i)-.65 G 2.961(tw)-2.961 G .461(ill be run via)-2.961 F F4(/bin/) -2.96 E F2 2.126(sh \255c)B F0 .46(to pro-)2.96 F -(vide each passphrase, instead.)127 360 Q .15 -(The standard output stream of the helper is tied to an anon)127 378 R -.151(ymous \214le and used in its entirety as the)-.15 F(passphrase, e) -127 390 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 -(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F4($1)137 402 Q F0 -(Pre-formatted noun phrase with all the information belo)154 402 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F4($2)137 414 Q F0 -(Either the dataset name or the element of the TPM hierarch)154 414 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)137 426 Q F0("ne)154 426 Q -(w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F4($4)137 438 Q F0("ag)154 438 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E .139 -(If the helper doesn')127 456 R 2.639(te)-.18 G 1.805(xist \()-2.789 F -.138(the shell e)1.666 F .138(xits with)-.15 F F1(127)2.638 E F0 -3.194 -1.666(\), a d)1.666 H .138(iagnostic is issued and the normal prompt) --1.666 F(is used as f)127 468 Q 2.5(all-back. If)-.1 F(it f)2.5 E -(ails for an)-.1 E 2.5(yo)-.15 G(ther reason, the prompting is aborted.) --2.5 E F1 1.666(TPM1.X back-end con\214guration)72 492 R .625 -(TPM selection)84 504 R F0(The)102 516 Q F2(tzpfms)2.682 E F0 .182 -(suite connects to a local)2.682 F F4(tcsd)2.682 E F0 .182 -(\(8\) process)B 1.666(\(a)4.348 G(t)-1.666 E F4(localhost:30003)2.682 E -F0 4.348(\)b)1.666 G 2.683(yd)-4.348 G(ef)-2.683 E 2.683(ault. Use)-.1 F -(the)2.683 E(en)102 528 Q(vironment v)-.4 E(ariable)-.25 E F4 -(TZPFMS_TPM1X)2.5 E F0(to specify a remote TCS hostname.)2.5 E .611 -(The T)102 546 R(rouSerS)-.35 E F4(tcsd)3.111 E F0 .611 -(\(8\) daemon will try)B F4(/dev/tpm0)3.11 E F0 3.11(,t)C(hen)-3.11 E F4 -(/udev/tpm0)3.11 E F0 3.11(,t)C(hen)-3.11 E F4(/dev/tpm)3.11 E F0 3.11 -(;b)C 3.11(yo)-3.11 G(ccu-)-3.11 E -.1(py)102 558 S -(ing one of the earlier ones with, for e).1 E -(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 -(See also)84 582 R F0(The T)102 594 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 2.719(The TPM 1.2 main speci\214cation inde)102 -612 R 5.22(xa)-.15 G(t)-5.22 E F1(https://trustedcomputinggr)5.22 E -(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E -(speci\214cation)102 624 Q F0(.)A F1 1.666(SPECIAL THANKS)72 648 R F0 -1.6 -.8(To a)102 660 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 672 Q F0(ThePhD)7.5 E F1<83>122 -684 Q F0(Embark Studios)7.5 E F1<83>122 696 Q F0(Lars Strojn)7.5 E(y) --.15 E F1(REPOR)72 720 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr) -102 732 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(tzpfms 0.3.3)72 799.889 -Q(June 12, 2023)156.365 E(6)201.085 E 0 Cg EP -%%Page: 7 7 +108 194.4 Q -.15(ey)-.1 G 2.5(,i)-.5 G 2.5(fo)-2.5 G(ne w)-2.5 E +(as set.)-.1 E(See)108 211.2 Q F0(zfs-tpm1x-c)2.5 E(hang)-.15 E(e-k)-.1 +E -.3(ey)-.1 G F1(\(8\) for a detailed description.).3 E F2(OPTIONS)72 +228 Q F4109.666 240 Q F1 3.208(Do a no-op/dry run, can be used e) +131 240 R -.15(ve)-.25 G 5.708(ni).15 G 5.708(ft)-5.708 G 3.208(he k) +-5.708 F 3.508 -.15(ey i)-.1 H 5.708(sa).15 G 3.208(lready loaded.) +-5.708 F(Equi)8.207 E -.25(va)-.25 G 3.207(lent to).25 F F3(zfs)5.707 E +F4(load-key)131 252 Q F1 -.55('s)C F44.716 E F1(option.)2.5 E F2 +(ENVIR)72 268.8 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E F4 +(TZPFMS_PASSPHRASE_HELPER)108 280.8 Q F1 .045(By def)133 292.8 R .045(a\ +ult, passphrases are prompted for and read in on the standard output an\ +d input streams.)-.1 F(If)5.046 E F4(TZPFMS_PASSPHRASE_HELPER)133 304.8 +Q F1 .896(is set and nonempty)3.397 F 3.396(,i)-.65 G 3.396(tw)-3.396 G +.896(ill be run via)-3.396 F F0(/bin/)3.396 E F3(sh)A F48.562 E F1 +.896(to pro-)3.396 F(vide each passphrase, instead.)133 316.8 Q .643 +(The standard output stream of the helper is tied to an anon)133 333.6 R +.643(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) +133 345.6 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 +(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F4($1)143 357.6 Q F1 +(Pre-formatted noun phrase with all the information belo)160 357.6 Q 1.3 +-.65(w, f)-.25 H(or use as a prompt).65 E F4($2)143 369.6 Q F1 +(Either the dataset name or the element of the TPM hierarch)160 369.6 Q +2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)143 381.6 Q F1("ne)160 +381.6 Q(w" if this is for a ne)-.25 E 2.5(wp)-.25 G +(assphrase, otherwise blank)-2.5 E F4($4)143 393.6 Q F1("ag)160 393.6 Q +(ain" if it')-.05 E 2.5(st)-.55 G +(he second prompt for that passphrase, otherwise blank)-2.5 E .178 +(If the helper doesn')133 410.4 R 2.678(te)-.18 G .178 +(xist \(the shell e)-2.828 F .177(xits with)-.15 F F2(127)2.677 E F1 +.177(\), a diagnostic is issued and the normal prompt)B(is used as f)133 +422.4 Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 +G(ther reason, the prompting is aborted.)-2.5 E F2 1.666 +(TPM1.X back-end con\214guration)72 439.2 R .625(TPM selection)87 451.2 +R F1(The)108 463.2 Q F3(tzpfms)2.508 E F1 .008 +(suite connects to a local)2.508 F F0(tcsd)2.508 E F1 .008 +(\(8\) process \(at)B F0(localhost:30003)2.508 E F1 2.509(\)b)C 2.509 +(yd)-2.509 G(ef)-2.509 E 2.509(ault. Use)-.1 F .009(the en)2.509 F +(viron-)-.4 E(ment v)108 475.2 Q(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F1 +(to specify a remote TCS hostname.)2.5 E .445(The T)108 492 R(rouSerS) +-.35 E F0(tcsd)2.945 E F1 .445(\(8\) daemon will try)B F0(/de)2.945 E +(v/tpm0)-.15 E F1 2.945(,t)C(hen)-2.945 E F0(/ude)2.945 E(v/tpm0)-.15 E +F1 2.945(,t)C(hen)-2.945 E F0(/de)2.944 E(v/tpm)-.15 E F1 2.944(;b)C +2.944(yo)-2.944 G(ccup)-2.944 E .444(ying one of)-.1 F +(the earlier ones with, for e)108 504 Q +(xample, shell redirection, a later one can be selected.)-.15 E F2 .625 +(See also)87 520.8 R F1(The T)108 532.8 Q +(rouSerS project page at https://sourcefor)-.35 E +(ge.net/projects/trousers.)-.18 E 4.415 +(The TPM 1.2 main speci\214cation inde)108 549.6 R 6.915(xa)-.15 G 6.915 +(th)-6.915 G(ttps://trustedcomputinggroup.or)-6.915 E +(g/resource/tpm-main-)-.18 E(speci\214cation.)108 561.6 Q F2 1.666 +(SPECIAL THANKS)72 578.4 R F1 1.6 -.8(To a)108 590.4 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F2<83>128 602.4 Q F1(ThePhD)7.5 E F2<83>128 614.4 Q F1 +(Embark Studios)7.5 E F2<83>128 626.4 Q F1(Lars Strojn)7.5 E(y)-.15 E F2 +(REPOR)72 643.2 Q 1.666(TING B)-.4 F(UGS)-.1 E F1(https://todo.sr)108 +655.2 Q(.ht/\001nabijaczle)-.55 E(weli/tzpfms)-.25 E F0(\001nabijaczle) +108 672 Q(weli/tzpfms@lists.sr)-.15 E(.ht)-1.11 E F1 2.5(,a)C(rchi)-2.5 +E -.15(ve)-.25 G 2.5(da).15 G 2.5(th)-2.5 G(ttps://lists.sr)-2.5 E +(.ht/\001nabijaczle)-.55 E(weli/tzpfms.)-.25 E(tzpfms 0.3.3-1-g)72 +817.889 Q 98.073(aa1c21f July)-.05 F(16, 2023)2.5 E(1)193.552 E 0 Cg EP +%%Page: 1 7 %%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/Courier@0 SF -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 96 Q F0 86.763(,a)C(rchi) --86.763 E -.15(ve)-.25 G 86.762(da).15 G(t)-86.762 E/F2 10/Times-Bold@0 -SF(https://lists.sr)102 108 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(7)201.085 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 --.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 2.5(][).833 G F2-.834 E -F3(algorithm)6 E F2(:)A F3(PCR)A F0([)A F2(,)A F3(PCR)A F0 1.666(]...)C -([)222 156 Q F2(+)A F3(algorithm)A F2(:)A F3(PCR)A F0([)A F2(,)A F3(PCR) -A F0 1.666(]...)C -2.499 1.666(]... [)-1.666 H F2.833 E F0(]]).833 -E F3(dataset)2.5 E F1(DESCRIPTION)72 180 Q F0 5.411 -.8(To n)102 192 T -(ormalise).8 E F3(dataset)6.311 E F0(,)A F2(zfs-tpm2-change-key)6.311 E -F0 3.81(will open its encryption root in its stead.)6.311 F F2 -(zfs-tpm2-change-key)102 204 Q F0(will)3.73 E/F4 10/Times-Italic@0 SF -(ne)3.73 E(ver)-.15 E F0 1.23(create or destro)3.73 F 3.731(ye)-.1 G -1.231(ncryption roots; use)-3.731 F/F5 10/Courier@0 SF(zfs-change-key) -3.731 E F0(\(8\))A(for that.)102 216 Q -(First, a connection is made to the TPM, which)102 234 Q F4(must)2.5 E -F0(be TPM-2.0-compatible.)2.5 E(If)102 252 Q F3(dataset)3.484 E F0 -.1 -(wa)3.484 G 3.484(sp).1 G(re)-3.484 E .983(viously encrypted with)-.25 F -F2(tzpfms)3.483 E F0 .983(and the)3.483 F F1(TPM2)3.483 E F0 .983 -(back-end w)3.483 F .983(as used, the pre)-.1 F(vious)-.25 E -.1(ke)102 -264 S 2.713(yw)-.05 G .213(ill be freed from the TPM.)-2.713 F .214 -(Otherwise, or in case of an error)5.213 F 2.714(,d)-.4 G .214 -(ata required for manual interv)-2.714 F(ention)-.15 E -(will be printed to the standard error stream.)102 276 Q(Ne)102 294 Q -.253(xt, a ne)-.15 F 2.753(ww)-.25 G .253(rapping k)-2.753 F .553 -.15 -(ey i)-.1 H 2.753(sg).15 G .253(enerated on the TPM, optionally back) --2.753 F .252(ed up)-.1 F 1.666(\(s)4.418 G(ee)-1.666 E F1(OPTIONS)2.752 -E F0 -3.08 1.666(\), a)1.666 H .252(nd sealed)-1.666 F .178 -(to a persistent object on the TPM under the o)102 306 R .179 -(wner hierarch)-.25 F .179(y; if there is a passphrase set on the o)-.05 -F .179(wner hi-)-.25 F(erarch)102 318 Q 1.534 -.65(y, t)-.05 H .233 -(he user is prompted for it; the user is al).65 F -.1(wa)-.1 G .233 -(ys prompted for an optional passphrase to protect the).1 F -(sealed object with.)102 330 Q(The follo)102 348 Q -(wing properties are set on)-.25 E F3(dataset)2.5 E F0(:)A F1<83>122 360 -Q F5(xyz.nabijaczleweli:tzpfms.backend)7.5 E F0(=)A F1(TPM2)A<83>122 372 -Q F5(xyz.nabijaczleweli:tzpfms.key)7.5 E F0(=)A F3(persistent-object-ID) -A F0([)133.833 384 Q F2(;).833 E F3(algorithm)A F2(:)A F3(PCR)A F0([)A -F2(,)A F3(PCR)A F0 1.666(]...)C([)-1.666 E F2(+)A F3(algorithm)A F2(:)A -F3(PCR)A F0([)A F2(,)A F3(PCR)A F0 1.666(]...)C 1.666(]...)-1.666 G(]) --.833 E F5(tzpfms.backend)102 402 Q F0 1.531 -(identi\214es this dataset for w)4.031 F 1.53(ork with)-.1 F F1(TPM2) -4.03 E F0(-back-ended)A F2(tzpfms)4.03 E F0 3.196(tools \()4.03 F -(namely)1.666 E F5(zfs-tpm2-change-key)102 414 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 432 Q F0 .301(is an inte)2.801 F -.301(ger representing the sealed object, optionally follo)-.15 F .301 -(wed by a semicolon and PCR)-.25 F 2.012(list as speci\214ed with)102 -444 R F26.178 E F0 4.512(,n)C 2.012(ormalised to be)-4.512 F F2 -(tpm-tools)4.511 E F0 2.011(-toolchain-compatible; if needed, it can be) -B 1.063(passed to)102 456 R F2 2.729(tpm2_unseal \255c)3.563 F F5 -(${tzpfms.key)7.063 E F2(%%)A F5(;)A/F6 10/Symbol SF(*)A F5(})A F0(with) -3.563 E F25.229 E F0(")7.063 E F5(str:${passphrase})A F0 3.563("o) -C(r)-3.563 E F25.229 E F0(")102 468 Q F5(pcr:${tzpfms.key)A F2(#)A -F6(*)A F5(;})A F0 1.339(", as the case may be, or equi)B -.25(va)-.25 G -1.339(lent, for back-up).25 F 1.666(\(s)5.505 G(ee)-1.666 E F1(OPTIONS) -3.839 E F0 .507 1.666(\). I)1.666 H(f)-1.666 E .302(you ha)102 480 R -.602 -.15(ve a s)-.2 H .302(ealed k).15 F .602 -.15(ey y)-.1 H .303 -(ou can access with that or equi).15 F -.25(va)-.25 G .303 -(lent tool and set both of these properties, it will).25 F -(funxion seamlessly)102 492 Q(.)-.65 E(Finally)102 510 Q 12.756(,t)-.65 -G 10.256(he equi)-12.756 F -.25(va)-.25 G 10.256(lent of).25 F F2 10.255 -(zfs change-key)12.755 F17.921 E F5(keylocation=prompt)16.255 E F2 -17.921 E F5(keyformat=raw)102 522 Q F3(dataset)6.506 E F0 .506 -(is performed with the ne)3.006 F 3.006(wk)-.25 G -.15(ey)-3.106 G 5.506 -(.I)-.5 G 3.006(fa)-5.506 G 3.006(ne)-3.006 G .507 -(rror occurred, best ef)-3.006 F .507(fort is made)-.25 F .623(to clean\ +/F0 10/Times-Italic@0 SF(ZFS-TPM2-CHANGE-KEY)72 48 Q/F1 10/Times-Roman@0 +SF 49.123(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G(anual)-2.5 E F0 +(ZFS-TPM2-CHANGE-KEY)49.122 E F1(\(8\))A/F2 10/Times-Bold@0 SF -.2(NA)72 +84 S(ME).2 E F1(zfs-tpm2-change-k)108 96 Q .3 -.15(ey \212 c)-.1 H +(hange ZFS dataset k).15 E .3 -.15(ey t)-.1 H 2.5(oo).15 G +(ne stored on the TPM)-2.5 E F2(SYNOPSIS)72 112.8 Q/F3 10/Courier-Bold@0 +SF(zfs-tpm-list)108 124.8 Q F1([)2.5 E/F4 10/Courier@0 SF1.666 E +/F5 10/Courier-Oblique@0 SF(backup-file)6 E F1 2.5(][)C F4-.834 E +F5(algorithm)6 E F4(:)A F5(PCR)A F1([)A F4(,)A F5(PCR)A F1 1.666(]...)C +([)186 136.8 Q F4(+)A F5(algorithm)A F4(:)A F5(PCR)A F1([)A F4(,)A F5 +(PCR)A F1 1.666(]...)C -3.332 1.666(]... [)-1.666 H F4A F1(]])A F5 +(dataset)2.5 E F2(DESCRIPTION)72 153.6 Q F1 1.677 -.8(To n)108 165.6 T +(ormalise).8 E F5(dataset)2.577 E F1(,)A F3(zfs-tpm-list)2.577 E F1 .076 +(will open its encryption root in its stead.)2.576 F F3(zfs-tpm-list) +5.076 E F1(will)108 177.6 Q F0(ne)2.5 E(ver)-.15 E F1(create or destro) +2.5 E 2.5(ye)-.1 G(ncryption roots; use)-2.5 E F0(zfs-c)2.5 E(hang)-.15 +E(e-k)-.1 E -.3(ey)-.1 G F1(\(8\) for that.).3 E +(First, a connection is made to the TPM, which)108 194.4 Q F0(must)2.5 E +F1(be TPM-2.0-compatible.)2.5 E(If)108 211.2 Q F5(dataset)3.054 E F1 -.1 +(wa)3.054 G 3.054(sp).1 G(re)-3.054 E .554(viously encrypted with)-.25 F +F3(tzpfms)3.055 E F1 .555(and the)3.055 F F2(TPM2)3.055 E F1 .555 +(back-end w)3.055 F .555(as used, the pre)-.1 F(vious)-.25 E -.1(ke)108 +223.2 S 3.06(yw)-.05 G .56(ill be freed from the TPM.)-3.06 F .56 +(Otherwise, or in case of an error)5.56 F 3.059(,d)-.4 G .559 +(ata required for manual interv)-3.059 F(en-)-.15 E +(tion will be printed to the standard error stream.)108 235.2 Q(Ne)108 +252 Q 1.74(xt, a ne)-.15 F 4.24(ww)-.25 G 1.74(rapping k)-4.24 F 2.04 +-.15(ey i)-.1 H 4.24(sg).15 G 1.74(enerated on the TPM, optionally back) +-4.24 F 1.741(ed up \(see \231OPTIONS\232\), and)-.1 F .576 +(sealed to a persistent object on the TPM under the o)108 264 R .575 +(wner hierarch)-.25 F .575(y; if there is a passphrase set on the)-.05 F +-.25(ow)108 276 S .48(ner hierarch).25 F 1.78 -.65(y, t)-.05 H .48 +(he user is prompted for it; the user is al).65 F -.1(wa)-.1 G .481 +(ys prompted for an optional passphrase to).1 F +(protect the sealed object with.)108 288 Q(The follo)108 304.8 Q +(wing properties are set on)-.25 E F5(dataset)2.5 E F1(:)A F2<83>128 +316.8 Q F4(xyz.nabijaczleweli:tzpfms.backend)7.5 E F1(=)A F2(TPM2)A<83> +128 328.8 Q F4(xyz.nabijaczleweli:tzpfms.key)7.5 E F1(=)A F5 +(persistent-object-ID)A F1([)139 340.8 Q F4(;)A F5(algorithm)A F4(:)A F5 +(PCR)A F1([)A F4(,)A F5(PCR)A F1 1.666(]...)C([)-1.666 E F4(+)A F5 +(algorithm)A F4(:)A F5(PCR)A F1([)A F4(,)A F5(PCR)A F1 1.666(]...)C +1.666(]...)-1.666 G(])-1.666 E F4(tzpfms.backend)108 357.6 Q F1 1.264 +(identi\214es this dataset for w)3.764 F 1.263(ork with)-.1 F F2(TPM2) +3.763 E F1(-back-ended)A F3(tzpfms)3.763 E F1 1.263(tools \(namely)3.763 +F F0(zfs-tpm2-c)108 369.6 Q(hang)-.15 E(e-k)-.1 E -.3(ey)-.1 G F1 +(\(8\),).3 E F0(zfs-tpm2-load-k)2.5 E -.3(ey)-.1 G F1(\(8\), and).3 E F0 +(zfs-tpm2-clear)2.5 E(-k)-.2 E -.3(ey)-.1 G F1(\(8\)\).).3 E F4 +(tzpfms.key)108 386.4 Q F1 1.508(is an inte)4.008 F 1.509 +(ger representing the sealed object, optionally follo)-.15 F 1.509 +(wed by a semicolon and)-.25 F .823(PCR list as speci\214ed with)108 +398.4 R F44.988 E F1 3.322(,n)C .822(ormalised to be)-3.322 F F3 +(tpm-tools)3.322 E F1 .822(-toolchain-compatible; if needed, it can)B +.865(be passed to)108 410.4 R F3(tpm2_unseal)3.366 E F4 .866 +(\255c ${tzpfms.key%%;)8.532 F/F6 10/Symbol SF(*)A F4(})A F1(with)3.366 +E F45.032 E F1(")6.866 E F4(str:${passphrase})A F1 3.366("o)C(r) +-3.366 E F4109.666 422.4 Q F1(")6.22 E F4(pcr:${tzpfms.key#)A F6 +(*)A F4(;})A F1 .22(", as the case may be, or equi)B -.25(va)-.25 G .22 +(lent, for back-up \(see \231OPTIONS\232\).).25 F .447(If you ha)108 +434.4 R .747 -.15(ve a s)-.2 H .447(ealed k).15 F .748 -.15(ey y)-.1 H +.448(ou can access with that or equi).15 F -.25(va)-.25 G .448 +(lent tool and set both of these properties, it).25 F +(will funxion seamlessly)108 446.4 Q(.)-.65 E(Finally)108 463.2 Q 12.006 +(,t)-.65 G 9.506(he equi)-12.006 F -.25(va)-.25 G 9.506(lent of).25 F F3 +(zfs)12.005 E F4 11.171(change-key \255o)15.505 F 11.171 +(keylocation=prompt \255o)15.505 F(keyformat=raw)108 475.2 Q F5(dataset) +6.106 E F1 .106(is performed with the ne)2.606 F 2.606(wk)-.25 G -.15 +(ey)-2.706 G 5.106(.I)-.5 G 2.606(fa)-5.106 G 2.606(ne)-2.606 G .107 +(rror occurred, best ef)-2.606 F .107(fort is made)-.25 F .289(to clean\ up the persistent object and properties, or to issue a note for manual\ - interv)102 534 R .622(ention into the stan-)-.15 F(dard error stream.) -102 546 Q 3.086<418c>102 564 S .586(nal v)-3.086 F .586 -(eri\214cation should be made by running)-.15 F F2 2.252 -(zfs-tpm2-load-key \255n)3.086 F F3(dataset)6.586 E F0 5.586(.I)C 3.086 -(ft)-5.586 G .587(hat com-)-3.086 F .859(mand succeeds, all is well, b) -102 576 R .859(ut otherwise the dataset can be manually rolled back to \ -a passphrase with)-.2 F F2(zfs-tpm2-clear-key)102 588 Q F3(dataset) -11.805 E F0 1.666(\(o)9.971 G 6.605 -.4(r, i)-1.666 H 8.306(ft).4 G -5.806(hat f)-8.306 F 5.806(ails to w)-.1 F(ork,)-.1 E F2 5.806 -(zfs change-key)8.306 F13.472 E F5(keyformat=passphrase)102 600 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 618 Q F3(dataset)6.429 E F0 .429 -(can be used to free the TPM persistent object and go back to us-)2.929 -F(ing a passphrase.)102 630 Q F1(OPTIONS)72 654 Q F2103.666 666 Q -F3(backup-file)6 E F0(Sa)197 666 Q .852 -.15(ve a b)-.2 H .552 -(ack-up of the k).15 F .852 -.15(ey t)-.1 H(o).15 E F3(backup-file)3.052 -E F0 3.052(,w)C .552(hich must not e)-3.052 F .553(xist beforehand.)-.15 -F 1.194(This back-up)197 678 R F4(must)3.694 E F0 1.194 -(be stored securely)3.694 F 3.694(,o)-.65 G -.25(ff)-3.694 G 3.694 -(-site. In).25 F 1.193(case of a catastrophic e)3.694 F -.15(ve)-.25 G -(nt,).15 E(the k)197 690 Q .3 -.15(ey c)-.1 H(an be loaded by running) -.15 E F2(zfs load-key)227 702 Q F3(dataset)6 E F5(<)6 E F3(backup-file)6 -E F2103.666 720 Q F3(algorithm)6 E F2(:)A F3(PCR)A F0([)A F2(,)A -F3(PCR)A F0 1.666(]...)C([)-1.666 E F2(+)A F3(algorithm)A F2(:)A F3(PCR) -A F0([)A F2(,)A F3(PCR)A F0 1.666(]...)C 1.666(]...)-1.666 G 2.024 -(Bind the k)197 732 R 2.324 -.15(ey t)-.1 H 4.524(os).15 G 2.024 -(pace- or comma-separated)-4.524 F F3(PCR)4.525 E F0 4.525(sw)C 2.025 -(ithin their corresponding)-4.525 F(hashing)197 744 Q F3(algorithm)2.952 -E F0 2.952<8a69>2.952 G 2.952(ft)-2.952 G(he)-2.952 E 2.952(yc)-.15 G -.452(hange, the wrapping k)-2.952 F .752 -.15(ey w)-.1 H .451 -(ill not be able to be).15 F 2.5(unsealed. There)197 756 R(are)2.5 E F1 -(24)2.5 E F0(PCRs, numbered)2.5 E([)3.333 E F1(0).833 E F0(,)A F1(23)2.5 -E F0(].).833 E(tzpfms 0.3.3)72 804 Q(June 12, 2023)156.365 E(8)201.085 E -0 Cg EP -%%Page: 9 9 + interv)108 487.2 R .289(ention into the stan-)-.15 F +(dard error stream.)108 499.2 Q 2.624<418c>108 516 S .124(nal v)-2.624 F +.124(eri\214cation should be made by running)-.15 F F3 +(zfs-tpm2-load-key)2.625 E F47.791 E F5(dataset)6.125 E F1 5.125 +(.I)C 2.625(ft)-5.125 G .125(hat com-)-2.625 F .507 +(mand succeeds, all is well, b)108 528 R .506(ut otherwise the dataset \ +can be manually rolled back to a passphrase with)-.2 F F3 +(zfs-tpm2-clear-key)108 540 Q F5(dataset)11.538 E F1(\(or)8.039 E 8.039 +(,i)-.4 G 8.039(ft)-8.039 G 5.539(hat f)-8.039 F 5.539(ails to w)-.1 F +(ork,)-.1 E F3(zfs)8.039 E F4 7.205(change-key \255o)11.539 F +(keyformat=passphrase)108 552 Q F5(dataset)6 E F1 +(\), and you are hereby ask)A(ed to report a b)-.1 E(ug, please.)-.2 E +F3(zfs-tpm2-clear-key)108 568.8 Q F5(dataset)6.029 E F1 .029 +(can be used to free the TPM persistent object and go back to us-)2.529 +F(ing a passphrase.)108 580.8 Q F2(OPTIONS)72 597.6 Q F4109.666 +609.6 Q F5(backup-file)6 E F1(Sa)203 609.6 Q .352 -.15(ve a b)-.2 H .052 +(ack-up of the k).15 F .352 -.15(ey t)-.1 H(o).15 E F5(backup-file)2.552 +E F1 2.552(,w)C .052(hich must not e)-2.552 F .053(xist beforehand.)-.15 +F .694(This back-up)203 621.6 R F0(must)3.194 E F1 .694 +(be stored securely)3.194 F 3.194(,o)-.65 G -.25(ff)-3.194 G 3.194 +(-site. In).25 F .693(case of a catastrophic e)3.194 F -.15(ve)-.25 G +(nt,).15 E(the k)203 633.6 Q .3 -.15(ey c)-.1 H(an be loaded by running) +.15 E F3(zfs)233 645.6 Q F4(load-key)6 E F5(dataset)6 E F4(<)6 E F5 +(backup-file)6 E F4109.666 662.4 Q F5(algorithm)6 E F4(:)A F5(PCR) +A F1([)A F4(,)A F5(PCR)A F1 1.666(]...)C([)-1.666 E F4(+)A F5(algorithm) +A F4(:)A F5(PCR)A F1([)A F4(,)A F5(PCR)A F1 1.666(]...)C 1.666(]...) +-1.666 G 1.424(Bind the k)203 674.4 R 1.724 -.15(ey t)-.1 H 3.924(os).15 +G 1.424(pace- or comma-separated)-3.924 F F5(PCR)3.925 E F1 3.925(sw)C +1.425(ithin their corresponding)-3.925 F(hashing)203 686.4 Q F5 +(algorithm)2.524 E F1 2.524<8a69>2.524 G 2.523(ft)-2.524 G(he)-2.523 E +2.523(yc)-.15 G .023(hange, the wrapping k)-2.523 F .323 -.15(ey w)-.1 H +.023(ill not be able to be).15 F 2.5(unsealed. There)203 698.4 R(are)2.5 +E F2(24)2.5 E F1(PCRs, numbered [)2.5 E F2(0)A F1(,)A F2(23)2.5 E F1(].) +A F5(algorithm)203 715.2 Q F1 2.968(may be an)5.468 F 5.468(yo)-.15 G +5.468(fc)-5.468 G(ase-insensiti)-5.468 E 3.268 -.15(ve ")-.25 H F2(sha1) +.15 E F1 2.968(", ")B F2(sha256)A F1 2.969(", ")B F2(sha384)A F1(",)A(") +203 727.2 Q F2(sha512)A F1 4.983(", ")B F2(sm3_256)A F1 4.983(", ")B F2 +(sm3-256)A F1 4.983(", ")B F2(sha3_256)A F1 4.983(", ")B F2(sha3-256)A +F1 4.983(", ")B F2(sha3_384)A F1(",)A(")203 739.2 Q F2(sha3-384)A F1 +(", ")A F2(sha3_512)A F1(", or ")A F2(sha3-512)A F1 +(", and must be supported by the TPM.)A(tzpfms 0.3.3-1-g)72 817.889 Q +98.073(aa1c21f July)-.05 F(16, 2023)2.5 E(1)193.552 E 0 Cg EP +%%Page: 2 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/Courier-Oblique@0 -SF(algorithm)197 96 Q F0 3.718(may be an)6.218 F 6.218(yo)-.15 G 6.218 -(fc)-6.218 G(ase-insensiti)-6.218 E 4.018 -.15(ve ")-.25 H/F2 10 -/Times-Bold@0 SF(sha1).15 E F0 3.718(", ")B F2(sha256)A F0 3.719(", ")B -F2(sha384)A F0(",)A(")197 108 Q F2(sha512)A F0 6.183(", ")B F2(sm3_256)A -F0 6.183(", ")B F2(sm3-256)A F0 6.183(", ")B F2(sha3_256)A F0 6.183 -(", ")B F2(sha3-256)A F0 6.183(", ")B F2(sha3_384)A F0(",)A(")197 120 Q -F2(sha3-384)A F0(", ")A F2(sha3_512)A F0(", or ")A F2(sha3-512)A F0 -(", and must be supported by the TPM.)A/F3 10/Courier-Bold@0 SF -103.666 138 Q F0 -.4(Wi)197 138 S(th).4 E F35.049 E F0 3.383(,a)C -.884(lso prompt for a passphrase.)-3.383 F .884(This is skipped by def) -5.884 F .884(ault because the)-.1 F 1.137(passphrase is)197 150 R/F4 10 -/Times-Italic@0 SF(OR)3.637 E F0 1.137(ed with the PCR polic)B 3.637 -<798a>-.15 G 1.136(the wrapping k)-.001 F 1.436 -.15(ey c)-.1 H 1.136 -(an be unsealed).15 F F4(either)197 162 Q F0 .227 -(passphraseless with the right PCRs)2.727 F F4(or)2.727 E F0 .228 -(with the passphrase, and this is usu-)2.727 F(ally not the intent.)197 -174 Q F2(ENVIR)72 198 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E/F5 10 -/Courier@0 SF(TZPFMS_PASSPHRASE_HELPER)102 210 Q F0 .421(By def)127 222 -R .42(ault, passphrases are prompted for and read in on the standard ou\ -tput and input streams.)-.1 F(If)5.42 E F5(TZPFMS_PASSPHRASE_HELPER)127 -234 Q F0 .46(is set and nonempty)2.96 F 2.961(,i)-.65 G 2.961(tw)-2.961 -G .461(ill be run via)-2.961 F F5(/bin/)2.961 E F3 2.127(sh \255c)B F0 -.461(to pro-)2.961 F(vide each passphrase, instead.)127 246 Q .15 -(The standard output stream of the helper is tied to an anon)127 264 R -.15(ymous \214le and used in its entirety as the)-.15 F(passphrase, e) -127 276 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 -(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F5($1)137 288 Q F0 -(Pre-formatted noun phrase with all the information belo)154 288 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F5($2)137 300 Q F0 -(Either the dataset name or the element of the TPM hierarch)154 300 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F5($3)137 312 Q F0("ne)154 312 Q -(w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F5($4)137 324 Q F0("ag)154 324 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E .138 -(If the helper doesn')127 342 R 2.638(te)-.18 G 1.804(xist \()-2.788 F -.138(the shell e)1.666 F .138(xits with)-.15 F F2(127)2.638 E F0 -3.194 -1.666(\), a d)1.666 H .139(iagnostic is issued and the normal prompt) --1.666 F(is used as f)127 354 Q 2.5(all-back. If)-.1 F(it f)2.5 E -(ails for an)-.1 E 2.5(yo)-.15 G(ther reason, the prompting is aborted.) --2.5 E F2 1.666(TPM2 back-end con\214guration)72 378 R(En)84 390 Q(vir) --.4 E .625(onment v)-.18 F(ariables)-.1 E F5(TSS2_LOG)102 402 Q F0(An) -155 402 Q 2.5(yo)-.15 G(f:)-2.5 E F2(NONE)2.5 E F0(,)A F2(ERR)2.5 E(OR) --.3 E F0(,)A F2 -1.2(WA)2.5 G(RNING)1.2 E F0(,)A F2(INFO)2.5 E F0(,)A F2 -(DEB)2.5 E(UG)-.1 E F0(,)A F2(TRA)2.5 E(CE)-.55 E F0 5(.D)C(ef)-5 E -(ault:)-.1 E F2 -1.2(WA)2.5 G(RNING)1.2 E F0(.)A F2 .625(TPM selection) -84 426 R F0 1.167(The library)102 438 R F3(libtss2-tcti-default.so)3.667 -E F0 1.167(can be link)3.667 F 1.167(ed to an)-.1 F 3.667(yo)-.15 G -3.667(ft)-3.667 G(he)-3.667 E F5(libtss2-tcti-)3.666 E/F6 10/Symbol SF -(*)A F5(.so)A F0(li-)3.666 E 1.38(braries to select the def)102 450 R -1.38(ault, otherwise)-.1 F F5(/dev/tpmrm0)3.881 E F0 3.881(,t)C(hen) --3.881 E F5(/dev/tpm0)3.881 E F0 3.881(,t)C(hen)-3.881 E F5 -(localhost:2321)3.881 E F0(will be tried, in order)102 462 Q 1.666(\(s) -4.166 G(ee)-1.666 E F5(ESYS_CONTEXT)2.5 E F0 -.834(\(3\) \) .)B F2 .625 -(See also)84 486 R F0 1.63(The tpm2-tss git repository at)102 498 R F2 -(https://github)4.129 E(.com/tpm2-softwar)-.4 E(e/tpm2-tss)-.18 E F0 -1.629(and the documentation at)4.129 F F2(https://tpm2-tss.r)102 510 Q -(eadthedocs.io)-.18 E F0(.)A 3.517 -(The TPM 2.0 speci\214cations, mainly at)102 528 R F2 -(https://trustedcomputinggr)6.018 E(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E -(ce/tpm-library-)-.18 E(speci\214cation/)102 540 Q F0(,)A F2 -(https://trustedcomputinggr)99.315 E(oup.or)-.18 E -(g/wp-content/uploads/TPM-)-.1 E(Re)102 552 Q(v-2.0-P)-.15 E(art-1-Ar) --.1 E(chitectur)-.18 E(e-01.38.pdf)-.18 E F0 2.5(,a)C(nd related pages.) --2.5 E F2 1.666(SPECIAL THANKS)72 576 R F0 1.6 -.8(To a)102 588 T +/F0 10/Times-Italic@0 SF(ZFS-TPM2-CHANGE-KEY)72 48 Q/F1 10/Times-Roman@0 +SF 49.123(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G(anual)-2.5 E F0 +(ZFS-TPM2-CHANGE-KEY)49.122 E F1(\(8\))A/F2 10/Courier@0 SF109.666 +84 Q F1 -.4(Wi)203 84 S(th).4 E F24.588 E F1 2.922(,a)C .422 +(lso prompt for a passphrase.)-2.922 F .422(This is skipped by def)5.422 +F .423(ault because the)-.1 F .675(passphrase is)203 96 R F0(OR)3.175 E +F1 .675(ed with the PCR polic)B 3.175(y\212t)-.15 G .675(he wrapping k) +-3.175 F .975 -.15(ey c)-.1 H .675(an be unsealed).15 F F0(either)203 +108 Q F1 1.389(passphraseless with the right PCRs)3.889 F F0(or)3.89 E +F1 1.39(with the passphrase, and this is)3.89 F(usually not the intent.) +203 120 Q/F3 10/Times-Bold@0 SF(ENVIR)72 136.8 Q 1.666(ONMENT V)-.3 F +(ARIABLES)-1.35 E F2(TZPFMS_PASSPHRASE_HELPER)108 148.8 Q F1 .046 +(By def)133 160.8 R .045(ault, passphrases are prompted for and read in\ + on the standard output and input streams.)-.1 F(If)5.045 E F2 +(TZPFMS_PASSPHRASE_HELPER)133 172.8 Q F1 .896(is set and nonempty)3.396 +F 3.396(,i)-.65 G 3.396(tw)-3.396 G .896(ill be run via)-3.396 F F0 +(/bin/)3.396 E/F4 10/Courier-Bold@0 SF(sh)A F28.562 E F1 .897 +(to pro-)3.396 F(vide each passphrase, instead.)133 184.8 Q .643 +(The standard output stream of the helper is tied to an anon)133 201.6 R +.643(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) +133 213.6 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 +(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F2($1)143 225.6 Q F1 +(Pre-formatted noun phrase with all the information belo)160 225.6 Q 1.3 +-.65(w, f)-.25 H(or use as a prompt).65 E F2($2)143 237.6 Q F1 +(Either the dataset name or the element of the TPM hierarch)160 237.6 Q +2.5(yb)-.05 G(eing prompted for)-2.5 E F2($3)143 249.6 Q F1("ne)160 +249.6 Q(w" if this is for a ne)-.25 E 2.5(wp)-.25 G +(assphrase, otherwise blank)-2.5 E F2($4)143 261.6 Q F1("ag)160 261.6 Q +(ain" if it')-.05 E 2.5(st)-.55 G +(he second prompt for that passphrase, otherwise blank)-2.5 E .177 +(If the helper doesn')133 278.4 R 2.677(te)-.18 G .177 +(xist \(the shell e)-2.827 F .177(xits with)-.15 F F3(127)2.677 E F1 +.178(\), a diagnostic is issued and the normal prompt)B(is used as f)133 +290.4 Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 +G(ther reason, the prompting is aborted.)-2.5 E F3 1.666 +(TPM2 back-end con\214guration)72 307.2 R(En)87 319.2 Q(vir)-.4 E .625 +(onment v)-.18 F(ariables)-.1 E F2(TSS2_LOG)108 331.2 Q F1(An)161 331.2 +Q 2.5(yo)-.15 G(f:)-2.5 E F3(NONE)2.5 E F1(,)A F3(ERR)2.5 E(OR)-.3 E F1 +(,)A F3 -1.2(WA)2.5 G(RNING)1.2 E F1(,)A F3(INFO)2.5 E F1(,)A F3(DEB)2.5 +E(UG)-.1 E F1(,)A F3(TRA)2.5 E(CE)-.55 E F1 5(.D)C(ef)-5 E(ault:)-.1 E +F3 -1.2(WA)2.5 G(RNING)1.2 E F1(.)A F3 .625(TPM selection)87 348 R F1 +.978(The library)108 360 R F4(libtss2-tcti-default.so)3.477 E F1 .977 +(can be link)3.477 F .977(ed to an)-.1 F 3.477(yo)-.15 G 3.477(ft)-3.477 +G(he)-3.477 E F0(libtss2-tcti-)3.477 E/F5 10/Symbol SF(*)A F0(.so)A F1 +.977(libraries to)3.477 F 1.145(select the def)108 372 R 1.145 +(ault, otherwise)-.1 F F0(/de)3.646 E(v/tpmrm0)-.15 E F1 3.646(,t)C(hen) +-3.646 E F0(/de)3.646 E(v/tpm0)-.15 E F1 3.646(,t)C(hen)-3.646 E F0 +(localhost:2321)3.646 E F1 1.146(will be tried, in order)3.646 F(\(see) +108 384 Q F0(ESYS_CONTEXT)2.5 E F1(\(3\)\).)A F3 .625(See also)87 400.8 +R F1 2.247(The tpm2-tss git repository at https://github)108 412.8 R +(.com/tpm2-softw)-.4 E 2.247(are/tpm2-tss and the documentation at)-.1 F +(https://tpm2-tss.readthedocs.io.)108 424.8 Q 5.774(The TPM 2.0 speci\ +\214cations, mainly at https://trustedcomputinggroup.or)108 441.6 R +(g/resource/tpm-library-)-.18 E 111.845 +(speci\214cation/, https://trustedcomputinggroup.or)108 453.6 R +(g/wp-content/uploads/TPM-)-.18 E(Re)108 465.6 Q(v-2.0-P)-.25 E +(art-1-Architecture-01.38.pdf, and related pages.)-.15 E F3 1.666 +(SPECIAL THANKS)72 482.4 R F1 1.6 -.8(To a)108 494.4 T (ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) -.15 E F2<83>122 600 Q F0(ThePhD)7.5 E F2<83>122 612 Q F0(Embark Studios) -7.5 E F2<83>122 624 Q F0(Lars Strojn)7.5 E(y)-.15 E F2(REPOR)72 648 Q -1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 660 Q -(.ht/\001nabijaczleweli/tzpfms)-1 E F5 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 678 Q F0 86.762(,a)C(rchi) --86.762 E -.15(ve)-.25 G 86.763(da).15 G(t)-86.763 E F2 -(https://lists.sr)102 690 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A F2 -1.666(SEE ALSO)72 714 R F5(tpm2_unseal)102 726 Q F0(\(1\))A -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(9)201.085 E 0 Cg EP -%%Page: 10 10 +.15 E F3<83>128 506.4 Q F1(ThePhD)7.5 E F3<83>128 518.4 Q F1 +(Embark Studios)7.5 E F3<83>128 530.4 Q F1(Lars Strojn)7.5 E(y)-.15 E F3 +(REPOR)72 547.2 Q 1.666(TING B)-.4 F(UGS)-.1 E F1(https://todo.sr)108 +559.2 Q(.ht/\001nabijaczle)-.55 E(weli/tzpfms)-.25 E F0(\001nabijaczle) +108 576 Q(weli/tzpfms@lists.sr)-.15 E(.ht)-1.11 E F1 2.5(,a)C(rchi)-2.5 +E -.15(ve)-.25 G 2.5(da).15 G 2.5(th)-2.5 G(ttps://lists.sr)-2.5 E +(.ht/\001nabijaczle)-.55 E(weli/tzpfms.)-.25 E F3 1.666(SEE ALSO)72 +592.8 R F0(tpm2_unseal)108 604.8 Q F1(\(1\))A +(PCR allocations: https://wiki.archlinux.or)108 621.6 Q(g/title/T)-.18 E +(rusted_Platform_Module#Accessing_PCR_re)-.35 E(gisters)-.15 E +(and https://trustedcomputinggroup.or)108 633.6 Q +(g/wp-content/uploads/PC-)-.18 E(ClientSpeci\214c_Platform_Pro\214le_fo\ +r_TPM_2p0_Systems_v51.pdf, Section 2.3.4 "PCR Usage", T)108 645.6 Q +(able)-.8 E(1.)108 657.6 Q(tzpfms 0.3.3-1-g)72 817.889 Q 98.073 +(aa1c21f July)-.05 F(16, 2023)2.5 E(2)193.552 E 0 Cg EP +%%Page: 1 9 %%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(PCR allocations:)102 96 -Q/F1 10/Times-Bold@0 SF(https://wiki.ar)102 108 Q(chlinux.or)-.18 E -(g/title/T)-.1 E(rusted_Platf)-.74 E(orm_Module#Accessing_PCR_r)-.25 E -(egisters)-.18 E F0(and)2.5 E F1(https://trustedcomputinggr)102 120 Q -(oup.or)-.18 E(g/wp-content/uploads/PC-)-.1 E(ClientSpeci\214c_Platf)102 -132 Q(orm_Pr)-.25 E(o\214le_f)-.18 E(or_TPM_2p0_Systems_v51.pdf)-.25 E -F0 2.5(,S)C(ection 2.3.4 "PCR Usage", T)-2.5 E(able)-.8 E(1.)102 144 Q -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(10)196.085 E 0 Cg EP -%%Page: 11 11 -%%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 5 -(1. performs)112 192 R 6.392(the equi)8.892 F -.25(va)-.25 G 6.392 -(lent of).25 F F2 6.392(zfs change-key)8.892 F14.057 E/F4 10 -/Courier@0 SF(keylocation=prompt)12.391 E F214.057 E F4 -(keyformat=passphrase)127 204 Q F3(dataset)6 E F0(,)A 5(2. frees)112 216 -R(the sealed k)2.5 E .3 -.15(ey p)-.1 H(re).15 E -(viously used to encrypt)-.25 E F3(dataset)2.5 E F0(,)A 5(3. remo)112 -228 R -.15(ve)-.15 G 11.889(st).15 G(he)-11.889 E F4 -(xyz.nabijaczleweli:tzpfms.)11.889 E F0({)A F4(backend)A F0(,)A F4(key) -15.389 E F0 11.889(}p)C 9.389(roperties from)-11.889 F F3(dataset)127 -240 Q F0(.)A(See)102 258 Q F4(zfs-tpm2-change-key)2.5 E F0 -(\(8\) for a detailed description.)A F1(ENVIR)72 282 Q 1.666(ONMENT V) --.3 F(ARIABLES)-1.35 E F4(TZPFMS_PASSPHRASE_HELPER)102 294 Q F0 .421 -(By def)127 306 R .42(ault, passphrases are prompted for and read in on\ - the standard output and input streams.)-.1 F(If)5.42 E F4 -(TZPFMS_PASSPHRASE_HELPER)127 318 Q F0 .46(is set and nonempty)2.96 F -2.961(,i)-.65 G 2.961(tw)-2.961 G .461(ill be run via)-2.961 F F4(/bin/) -2.961 E F2 2.127(sh \255c)B F0 .461(to pro-)2.961 F -(vide each passphrase, instead.)127 330 Q .15 -(The standard output stream of the helper is tied to an anon)127 348 R -.15(ymous \214le and used in its entirety as the)-.15 F(passphrase, e) -127 360 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 -(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F4($1)137 372 Q F0 -(Pre-formatted noun phrase with all the information belo)154 372 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F4($2)137 384 Q F0 -(Either the dataset name or the element of the TPM hierarch)154 384 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)137 396 Q F0("ne)154 396 Q +/F0 10/Times-Italic@0 SF(ZFS-TPM2-CLEAR-KEY)72 48 Q/F1 10/Times-Roman@0 +SF 58.563(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G(anual)-2.5 E F0 +(ZFS-TPM2-CLEAR-KEY)58.562 E F1(\(8\))A/F2 10/Times-Bold@0 SF -.2(NA)72 +84 S(ME).2 E F1(zfs-tpm2-clear)108 96 Q(-k)-.2 E .3 -.15(ey \212 r)-.1 H +-.25(ew).15 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 F2(SYNOPSIS)72 +112.8 Q/F3 10/Courier-Bold@0 SF(zfs-tpm-list)108 124.8 Q/F4 10 +/Courier-Oblique@0 SF(dataset)2.5 E F2(DESCRIPTION)72 141.6 Q F1 +(After v)108 153.6 Q(erifying)-.15 E F4(dataset)2.5 E F1 -.1(wa)2.5 G +2.5(se).1 G(ncrypted with)-2.5 E F3(tzpfms)2.5 E F1(back)2.5 E(end)-.1 E +F2(TPM2)2.5 E F1(:)A 5(1. performs)118 165.6 R 5.641(the equi)8.141 F +-.25(va)-.25 G 5.641(lent of).25 F F3(zfs)8.142 E/F5 10/Courier@0 SF +7.308(change-key \255o)11.642 F 7.308(keylocation=prompt \255o)11.642 F +(keyformat=passphrase)133 177.6 Q F4(dataset)6 E F1(,)A 5(2. frees)118 +189.6 R(the sealed k)2.5 E .3 -.15(ey p)-.1 H(re).15 E +(viously used to encrypt)-.25 E F4(dataset)2.5 E F1(,)A 5(3. remo)118 +201.6 R -.15(ve)-.15 G 10.689(st).15 G(he)-10.689 E F5 +(xyz.nabijaczleweli:tzpfms.)10.689 E F1({)A F5(backend)A F1(,)A F5(key) +14.189 E F1 10.689(}p)C 8.189(roperties from)-10.689 F F4(dataset)133 +213.6 Q F1(.)A(See)108 230.4 Q F0(zfs-tpm2-c)2.5 E(hang)-.15 E(e-k)-.1 E +-.3(ey)-.1 G F1(\(8\) for a detailed description.).3 E F2(ENVIR)72 247.2 +Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E F5(TZPFMS_PASSPHRASE_HELPER)108 +259.2 Q F1 .045(By def)133 271.2 R .045(ault, passphrases are prompted \ +for and read in on the standard output and input streams.)-.1 F(If)5.046 +E F5(TZPFMS_PASSPHRASE_HELPER)133 283.2 Q F1 .896(is set and nonempty) +3.397 F 3.396(,i)-.65 G 3.396(tw)-3.396 G .896(ill be run via)-3.396 F +F0(/bin/)3.396 E F3(sh)A F58.562 E F1 .896(to pro-)3.396 F +(vide each passphrase, instead.)133 295.2 Q .643 +(The standard output stream of the helper is tied to an anon)133 312 R +.643(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) +133 324 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 +(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F5($1)143 336 Q F1 +(Pre-formatted noun phrase with all the information belo)160 336 Q 1.3 +-.65(w, f)-.25 H(or use as a prompt).65 E F5($2)143 348 Q F1 +(Either the dataset name or the element of the TPM hierarch)160 348 Q +2.5(yb)-.05 G(eing prompted for)-2.5 E F5($3)143 360 Q F1("ne)160 360 Q (w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F4($4)137 408 Q F0("ag)154 408 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E .138 -(If the helper doesn')127 426 R 2.638(te)-.18 G 1.804(xist \()-2.788 F -.138(the shell e)1.666 F .138(xits with)-.15 F F1(127)2.638 E F0 -3.194 -1.666(\), a d)1.666 H .139(iagnostic is issued and the normal prompt) --1.666 F(is used as f)127 438 Q 2.5(all-back. If)-.1 F(it f)2.5 E -(ails for an)-.1 E 2.5(yo)-.15 G(ther reason, the prompting is aborted.) --2.5 E F1 1.666(TPM2 back-end con\214guration)72 462 R(En)84 474 Q(vir) --.4 E .625(onment v)-.18 F(ariables)-.1 E F4(TSS2_LOG)102 486 Q F0(An) -155 486 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 510 R F0 1.167(The library)102 522 R F2(libtss2-tcti-default.so)3.667 -E F0 1.167(can be link)3.667 F 1.167(ed to an)-.1 F 3.667(yo)-.15 G -3.667(ft)-3.667 G(he)-3.667 E F4(libtss2-tcti-)3.666 E/F5 10/Symbol SF -(*)A F4(.so)A F0(li-)3.666 E 1.38(braries to select the def)102 534 R -1.38(ault, otherwise)-.1 F F4(/dev/tpmrm0)3.881 E F0 3.881(,t)C(hen) --3.881 E F4(/dev/tpm0)3.881 E F0 3.881(,t)C(hen)-3.881 E F4 -(localhost:2321)3.881 E F0(will be tried, in order)102 546 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 570 R F0 1.63(The tpm2-tss git repository at)102 582 R F1 -(https://github)4.129 E(.com/tpm2-softwar)-.4 E(e/tpm2-tss)-.18 E F0 -1.629(and the documentation at)4.129 F F1(https://tpm2-tss.r)102 594 Q -(eadthedocs.io)-.18 E F0(.)A 3.517 -(The TPM 2.0 speci\214cations, mainly at)102 612 R F1 -(https://trustedcomputinggr)6.018 E(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E -(ce/tpm-library-)-.18 E(speci\214cation/)102 624 Q F0(,)A F1 -(https://trustedcomputinggr)99.315 E(oup.or)-.18 E -(g/wp-content/uploads/TPM-)-.1 E(Re)102 636 Q(v-2.0-P)-.15 E(art-1-Ar) --.1 E(chitectur)-.18 E(e-01.38.pdf)-.18 E F0 2.5(,a)C(nd related pages.) --2.5 E F1 1.666(SPECIAL THANKS)72 660 R F0 1.6 -.8(To a)102 672 T +-2.5 E F5($4)143 372 Q F1("ag)160 372 Q(ain" if it')-.05 E 2.5(st)-.55 G +(he second prompt for that passphrase, otherwise blank)-2.5 E .178 +(If the helper doesn')133 388.8 R 2.678(te)-.18 G .178 +(xist \(the shell e)-2.828 F .177(xits with)-.15 F F2(127)2.677 E F1 +.177(\), a diagnostic is issued and the normal prompt)B(is used as f)133 +400.8 Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 +G(ther reason, the prompting is aborted.)-2.5 E F2 1.666 +(TPM2 back-end con\214guration)72 417.6 R(En)87 429.6 Q(vir)-.4 E .625 +(onment v)-.18 F(ariables)-.1 E F5(TSS2_LOG)108 441.6 Q F1(An)161 441.6 +Q 2.5(yo)-.15 G(f:)-2.5 E F2(NONE)2.5 E F1(,)A F2(ERR)2.5 E(OR)-.3 E F1 +(,)A F2 -1.2(WA)2.5 G(RNING)1.2 E F1(,)A F2(INFO)2.5 E F1(,)A F2(DEB)2.5 +E(UG)-.1 E F1(,)A F2(TRA)2.5 E(CE)-.55 E F1 5(.D)C(ef)-5 E(ault:)-.1 E +F2 -1.2(WA)2.5 G(RNING)1.2 E F1(.)A F2 .625(TPM selection)87 458.4 R F1 +.977(The library)108 470.4 R F3(libtss2-tcti-default.so)3.477 E F1 .977 +(can be link)3.477 F .977(ed to an)-.1 F 3.477(yo)-.15 G 3.477(ft)-3.477 +G(he)-3.477 E F0(libtss2-tcti-)3.477 E/F6 10/Symbol SF(*)A F0(.so)A F1 +.978(libraries to)3.477 F 1.146(select the def)108 482.4 R 1.146 +(ault, otherwise)-.1 F F0(/de)3.646 E(v/tpmrm0)-.15 E F1 3.646(,t)C(hen) +-3.646 E F0(/de)3.646 E(v/tpm0)-.15 E F1 3.646(,t)C(hen)-3.646 E F0 +(localhost:2321)3.646 E F1 1.145(will be tried, in order)3.646 F(\(see) +108 494.4 Q F0(ESYS_CONTEXT)2.5 E F1(\(3\)\).)A F2 .625(See also)87 +511.2 R F1 2.247(The tpm2-tss git repository at https://github)108 523.2 +R(.com/tpm2-softw)-.4 E 2.247(are/tpm2-tss and the documentation at)-.1 +F(https://tpm2-tss.readthedocs.io.)108 535.2 Q 5.774(The TPM 2.0 speci\ +\214cations, mainly at https://trustedcomputinggroup.or)108 552 R +(g/resource/tpm-library-)-.18 E 111.845 +(speci\214cation/, https://trustedcomputinggroup.or)108 564 R +(g/wp-content/uploads/TPM-)-.18 E(Re)108 576 Q(v-2.0-P)-.25 E +(art-1-Architecture-01.38.pdf, and related pages.)-.15 E F2 1.666 +(SPECIAL THANKS)72 592.8 R F1 1.6 -.8(To a)108 604.8 T (ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) -.15 E F1<83>122 684 Q F0(ThePhD)7.5 E F1<83>122 696 Q F0(Embark Studios) -7.5 E F1<83>122 708 Q F0(Lars Strojn)7.5 E(y)-.15 E(tzpfms 0.3.3)72 -799.889 Q(June 12, 2023)156.365 E(11)196.085 E 0 Cg EP -%%Page: 12 12 +.15 E F2<83>128 616.8 Q F1(ThePhD)7.5 E F2<83>128 628.8 Q F1 +(Embark Studios)7.5 E F2<83>128 640.8 Q F1(Lars Strojn)7.5 E(y)-.15 E F2 +(REPOR)72 657.6 Q 1.666(TING B)-.4 F(UGS)-.1 E F1(https://todo.sr)108 +669.6 Q(.ht/\001nabijaczle)-.55 E(weli/tzpfms)-.25 E F0(\001nabijaczle) +108 686.4 Q(weli/tzpfms@lists.sr)-.15 E(.ht)-1.11 E F1 2.5(,a)C(rchi) +-2.5 E -.15(ve)-.25 G 2.5(da).15 G 2.5(th)-2.5 G(ttps://lists.sr)-2.5 E +(.ht/\001nabijaczle)-.55 E(weli/tzpfms.)-.25 E(tzpfms 0.3.3-1-g)72 +817.889 Q 98.073(aa1c21f July)-.05 F(16, 2023)2.5 E(1)193.552 E 0 Cg EP +%%Page: 1 10 %%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(REPOR)72 96 Q 1.666(TING B) --.4 F(UGS)-.1 E(https://todo.sr)102 108 Q(.ht/\001nabijaczleweli/tzpfms) --1 E/F2 10/Courier@0 SF(\001nabijaczleweli/tzpfms@lists.sr.ht)102 126 Q -F0 86.762(,a)C(rchi)-86.762 E -.15(ve)-.25 G 86.763(da).15 G(t)-86.763 E -F1(https://lists.sr)102 138 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(12)196.085 E 0 Cg EP -%%Page: 13 13 -%%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 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 F22.499 E F0(]) -.833 E/F3 10/Courier-Oblique@0 SF(dataset)2.5 E F1(DESCRIPTION)72 168 Q -F0 .003(After v)102 180 R(erifying)-.15 E F3(dataset)2.503 E F0 -.1(wa) -2.503 G 2.503(se).1 G .003(ncrypted with)-2.503 F F2(tzpfms)2.503 E F0 -(back)2.503 E(end)-.1 E F1(TPM2)2.503 E F0 2.503(,u)C .003(nseals the k) --2.503 F .303 -.15(ey a)-.1 H .003(nd loads it into).15 F F3(dataset)102 -192 Q F0(.)A(The user is prompted for the additional passphrase, set wh\ -en creating the k)102 210 Q -.15(ey)-.1 G 2.5(,i)-.5 G 2.5(fo)-2.5 G -(ne w)-2.5 E(as set.)-.1 E(See)102 228 Q/F4 10/Courier@0 SF -(zfs-tpm2-change-key)2.5 E F0(\(8\) for a detailed description.)A F1 -(OPTIONS)72 252 Q F2103.666 264 Q F0 3.583 -(Do a no-op/dry run, can be used e)125 264 R -.15(ve)-.25 G 6.083(ni).15 -G 6.083(ft)-6.083 G 3.583(he k)-6.083 F 3.883 -.15(ey i)-.1 H 6.083(sa) -.15 G 3.583(lready loaded.)-6.083 F(Equi)8.583 E -.25(va)-.25 G 3.583 -(lent to).25 F F2(zfs)6.083 E(load-key)125 276 Q F0 -.55('s)C F2 -4.716 E F0(option.)2.5 E F1(ENVIR)72 300 Q 1.666(ONMENT V)-.3 F -(ARIABLES)-1.35 E F4(TZPFMS_PASSPHRASE_HELPER)102 312 Q F0 .421(By def) -127 324 R .42(ault, passphrases are prompted for and read in on the sta\ -ndard output and input streams.)-.1 F(If)5.42 E F4 -(TZPFMS_PASSPHRASE_HELPER)127 336 Q F0 .46(is set and nonempty)2.96 F -2.961(,i)-.65 G 2.961(tw)-2.961 G .461(ill be run via)-2.961 F F4(/bin/) -2.961 E F2 2.127(sh \255c)B F0 .461(to pro-)2.961 F -(vide each passphrase, instead.)127 348 Q .15 -(The standard output stream of the helper is tied to an anon)127 366 R -.15(ymous \214le and used in its entirety as the)-.15 F(passphrase, e) -127 378 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 -(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F4($1)137 390 Q F0 -(Pre-formatted noun phrase with all the information belo)154 390 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F4($2)137 402 Q F0 -(Either the dataset name or the element of the TPM hierarch)154 402 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)137 414 Q F0("ne)154 414 Q -(w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F4($4)137 426 Q F0("ag)154 426 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E .138 -(If the helper doesn')127 444 R 2.638(te)-.18 G 1.804(xist \()-2.788 F -.138(the shell e)1.666 F .138(xits with)-.15 F F1(127)2.638 E F0 -3.194 -1.666(\), a d)1.666 H .139(iagnostic is issued and the normal prompt) --1.666 F(is used as f)127 456 Q 2.5(all-back. If)-.1 F(it f)2.5 E -(ails for an)-.1 E 2.5(yo)-.15 G(ther reason, the prompting is aborted.) --2.5 E F1 1.666(TPM1.X back-end con\214guration)72 480 R .625 -(TPM selection)84 492 R F0(The)102 504 Q F2(tzpfms)2.683 E F0 .182 -(suite connects to a local)2.683 F F4(tcsd)2.682 E F0 .182 -(\(8\) process)B 1.666(\(a)4.348 G(t)-1.666 E F4(localhost:30003)2.682 E -F0 4.348(\)b)1.666 G 2.682(yd)-4.348 G(ef)-2.682 E 2.682(ault. Use)-.1 F -(the)2.682 E(en)102 516 Q(vironment v)-.4 E(ariable)-.25 E F4 -(TZPFMS_TPM1X)2.5 E F0(to specify a remote TCS hostname.)2.5 E .61 -(The T)102 534 R(rouSerS)-.35 E F4(tcsd)3.11 E F0 .61 -(\(8\) daemon will try)B F4(/dev/tpm0)3.11 E F0 3.11(,t)C(hen)-3.11 E F4 -(/udev/tpm0)3.111 E F0 3.111(,t)C(hen)-3.111 E F4(/dev/tpm)3.111 E F0 -3.111(;b)C 3.111(yo)-3.111 G(ccu-)-3.111 E -.1(py)102 546 S -(ing one of the earlier ones with, for e).1 E -(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 -(See also)84 570 R F0(The T)102 582 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 2.719(The TPM 1.2 main speci\214cation inde)102 -600 R 5.219(xa)-.15 G(t)-5.219 E F1(https://trustedcomputinggr)5.219 E -(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E -(speci\214cation)102 612 Q F0(.)A F1 1.666(SPECIAL THANKS)72 636 R F0 -1.6 -.8(To a)102 648 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 660 Q F0(ThePhD)7.5 E F1<83>122 -672 Q F0(Embark Studios)7.5 E F1<83>122 684 Q F0(Lars Strojn)7.5 E(y) --.15 E F1(REPOR)72 708 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr) -102 720 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F4 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 738 Q F0 86.762(,a)C(rchi) --86.762 E -.15(ve)-.25 G 86.763(da).15 G(t)-86.763 E F1 -(https://lists.sr)102 750 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.3)72 799.889 Q(June 12, 2023)156.365 E(13)196.085 E 0 Cg EP +/F0 10/Times-Italic@0 SF(ZFS-TPM2-LO)72 48 Q(AD-KEY)-.55 E/F1 10 +/Times-Roman@0 SF 63.563(\(8\) System)B(Manager')2.5 E 2.5(sM)-.55 G +(anual)-2.5 E F0(ZFS-TPM2-LO)63.562 E(AD-KEY)-.55 E F1(\(8\))A/F2 10 +/Times-Bold@0 SF -.2(NA)72 84 S(ME).2 E F1(zfs-tpm2-load-k)108 96 Q .3 +-.15(ey \212 l)-.1 H(oad TPM2-encrypted ZFS dataset k).15 E -.15(ey)-.1 +G F2(SYNOPSIS)72 112.8 Q/F3 10/Courier-Bold@0 SF(zfs-tpm-list)108 124.8 +Q F1([)2.5 E/F4 10/Courier@0 SF1.666 E F1(])A/F5 10 +/Courier-Oblique@0 SF(dataset)2.5 E F2(DESCRIPTION)72 141.6 Q F1 .865 +(After v)108 153.6 R(erifying)-.15 E F5(dataset)3.365 E F1 -.1(wa)3.365 +G 3.365(se).1 G .865(ncrypted with)-3.365 F F3(tzpfms)3.365 E F1(back) +3.365 E(end)-.1 E F2(TPM2)3.365 E F1 3.365(,u)C .864(nseals the k)-3.365 +F 1.164 -.15(ey a)-.1 H .864(nd loads it).15 F(into)108 165.6 Q F5 +(dataset)2.5 E F1(.)A(The user is prompted for the additional passphras\ +e, set when creating the k)108 182.4 Q -.15(ey)-.1 G 2.5(,i)-.5 G 2.5 +(fo)-2.5 G(ne w)-2.5 E(as set.)-.1 E(See)108 199.2 Q F0(zfs-tpm2-c)2.5 E +(hang)-.15 E(e-k)-.1 E -.3(ey)-.1 G F1 +(\(8\) for a detailed description.).3 E F2(OPTIONS)72 216 Q F4 +109.666 228 Q F1 3.208(Do a no-op/dry run, can be used e)131 228 R -.15 +(ve)-.25 G 5.708(ni).15 G 5.708(ft)-5.708 G 3.208(he k)-5.708 F 3.508 +-.15(ey i)-.1 H 5.708(sa).15 G 3.208(lready loaded.)-5.708 F(Equi)8.208 +E -.25(va)-.25 G 3.208(lent to).25 F F3(zfs)5.708 E F4(load-key)131 240 +Q F1 -.55('s)C F44.716 E F1(option.)2.5 E F2(ENVIR)72 256.8 Q +1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E F4(TZPFMS_PASSPHRASE_HELPER)108 +268.8 Q F1 .046(By def)133 280.8 R .045(ault, passphrases are prompted \ +for and read in on the standard output and input streams.)-.1 F(If)5.045 +E F4(TZPFMS_PASSPHRASE_HELPER)133 292.8 Q F1 .896(is set and nonempty) +3.396 F 3.396(,i)-.65 G 3.396(tw)-3.396 G .896(ill be run via)-3.396 F +F0(/bin/)3.396 E F3(sh)A F48.562 E F1 .897(to pro-)3.396 F +(vide each passphrase, instead.)133 304.8 Q .643 +(The standard output stream of the helper is tied to an anon)133 321.6 R +.643(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) +133 333.6 Q(xcept for a trailing ne)-.15 E(w-line, if an)-.25 E 3.8 -.65 +(y. T)-.15 H(he ar).65 E(guments are:)-.18 E F4($1)143 345.6 Q F1 +(Pre-formatted noun phrase with all the information belo)160 345.6 Q 1.3 +-.65(w, f)-.25 H(or use as a prompt).65 E F4($2)143 357.6 Q F1 +(Either the dataset name or the element of the TPM hierarch)160 357.6 Q +2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)143 369.6 Q F1("ne)160 +369.6 Q(w" if this is for a ne)-.25 E 2.5(wp)-.25 G +(assphrase, otherwise blank)-2.5 E F4($4)143 381.6 Q F1("ag)160 381.6 Q +(ain" if it')-.05 E 2.5(st)-.55 G +(he second prompt for that passphrase, otherwise blank)-2.5 E .177 +(If the helper doesn')133 398.4 R 2.677(te)-.18 G .177 +(xist \(the shell e)-2.827 F .177(xits with)-.15 F F2(127)2.677 E F1 +.178(\), a diagnostic is issued and the normal prompt)B(is used as f)133 +410.4 Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 +G(ther reason, the prompting is aborted.)-2.5 E F2 1.666 +(TPM1.X back-end con\214guration)72 427.2 R .625(TPM selection)87 439.2 +R F1(The)108 451.2 Q F3(tzpfms)2.509 E F1 .009 +(suite connects to a local)2.509 F F0(tcsd)2.508 E F1 .008 +(\(8\) process \(at)B F0(localhost:30003)2.508 E F1 2.508(\)b)C 2.508 +(yd)-2.508 G(ef)-2.508 E 2.508(ault. Use)-.1 F .008(the en)2.508 F +(viron-)-.4 E(ment v)108 463.2 Q(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F1 +(to specify a remote TCS hostname.)2.5 E .444(The T)108 480 R(rouSerS) +-.35 E F0(tcsd)2.944 E F1 .444(\(8\) daemon will try)B F0(/de)2.945 E +(v/tpm0)-.15 E F1 2.945(,t)C(hen)-2.945 E F0(/ude)2.945 E(v/tpm0)-.15 E +F1 2.945(,t)C(hen)-2.945 E F0(/de)2.945 E(v/tpm)-.15 E F1 2.945(;b)C +2.945(yo)-2.945 G(ccup)-2.945 E .445(ying one of)-.1 F +(the earlier ones with, for e)108 492 Q +(xample, shell redirection, a later one can be selected.)-.15 E F2 .625 +(See also)87 508.8 R F1(The T)108 520.8 Q +(rouSerS project page at https://sourcefor)-.35 E +(ge.net/projects/trousers.)-.18 E 4.415 +(The TPM 1.2 main speci\214cation inde)108 537.6 R 6.915(xa)-.15 G 6.915 +(th)-6.915 G(ttps://trustedcomputinggroup.or)-6.915 E +(g/resource/tpm-main-)-.18 E(speci\214cation.)108 549.6 Q F2 1.666 +(SPECIAL THANKS)72 566.4 R F1 1.6 -.8(To a)108 578.4 T +(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) +.15 E F2<83>128 590.4 Q F1(ThePhD)7.5 E F2<83>128 602.4 Q F1 +(Embark Studios)7.5 E F2<83>128 614.4 Q F1(Lars Strojn)7.5 E(y)-.15 E F2 +(REPOR)72 631.2 Q 1.666(TING B)-.4 F(UGS)-.1 E F1(https://todo.sr)108 +643.2 Q(.ht/\001nabijaczle)-.55 E(weli/tzpfms)-.25 E F0(\001nabijaczle) +108 660 Q(weli/tzpfms@lists.sr)-.15 E(.ht)-1.11 E F1 2.5(,a)C(rchi)-2.5 +E -.15(ve)-.25 G 2.5(da).15 G 2.5(th)-2.5 G(ttps://lists.sr)-2.5 E +(.ht/\001nabijaczle)-.55 E(weli/tzpfms.)-.25 E(tzpfms 0.3.3-1-g)72 +817.889 Q 98.073(aa1c21f July)-.05 F(16, 2023)2.5 E(1)193.552 E 0 Cg EP %%Trailer end %%EOF diff --git a/zfs-tpm-list.8 b/zfs-tpm-list.8 index 3373205..51d0332 100644 --- a/zfs-tpm-list.8 +++ b/zfs-tpm-list.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd June 12, 2023 +.Dd July 16, 2023 .ds doc-volume-operating-system .Dt ZFS-TPM-LIST 8 -.Os tzpfms 0.3.3 +.Os tzpfms 0.3.3-1-gaa1c21f . .Sh NAME .Nm zfs-tpm-list diff --git a/zfs-tpm-list.8.html b/zfs-tpm-list.8.html index 177a0a5..e3940df 100644 --- a/zfs-tpm-list.8.html +++ b/zfs-tpm-list.8.html @@ -164,8 +164,8 @@ tarta-zoot/vm - available yes - - + +
June 12, 2023tzpfms 0.3.3July 16, 2023tzpfms 0.3.3-1-gaa1c21f
diff --git a/zfs-tpm1x-change-key.8 b/zfs-tpm1x-change-key.8 index bd2793b..3bc6437 100644 --- a/zfs-tpm1x-change-key.8 +++ b/zfs-tpm1x-change-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd June 12, 2023 +.Dd July 16, 2023 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CHANGE-KEY 8 -.Os tzpfms 0.3.3 +.Os tzpfms 0.3.3-1-gaa1c21f . .Sh NAME .Nm zfs-tpm1x-change-key diff --git a/zfs-tpm1x-change-key.8.html b/zfs-tpm1x-change-key.8.html index aa69b75..81dfa26 100644 --- a/zfs-tpm1x-change-key.8.html +++ b/zfs-tpm1x-change-key.8.html @@ -217,8 +217,8 @@ - - + +
June 12, 2023tzpfms 0.3.3July 16, 2023tzpfms 0.3.3-1-gaa1c21f
diff --git a/zfs-tpm1x-clear-key.8 b/zfs-tpm1x-clear-key.8 index 3d90ed3..4c3a1c3 100644 --- a/zfs-tpm1x-clear-key.8 +++ b/zfs-tpm1x-clear-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd June 12, 2023 +.Dd July 16, 2023 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CLEAR-KEY 8 -.Os tzpfms 0.3.3 +.Os tzpfms 0.3.3-1-gaa1c21f . .Sh NAME .Nm zfs-tpm1x-clear-key diff --git a/zfs-tpm1x-clear-key.8.html b/zfs-tpm1x-clear-key.8.html index b7c8f48..a63e574 100644 --- a/zfs-tpm1x-clear-key.8.html +++ b/zfs-tpm1x-clear-key.8.html @@ -101,8 +101,8 @@ - - + +
June 12, 2023tzpfms 0.3.3July 16, 2023tzpfms 0.3.3-1-gaa1c21f
diff --git a/zfs-tpm1x-load-key.8 b/zfs-tpm1x-load-key.8 index a818753..4cce210 100644 --- a/zfs-tpm1x-load-key.8 +++ b/zfs-tpm1x-load-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd June 12, 2023 +.Dd July 16, 2023 .ds doc-volume-operating-system .Dt ZFS-TPM1X-LOAD-KEY 8 -.Os tzpfms 0.3.3 +.Os tzpfms 0.3.3-1-gaa1c21f . .Sh NAME .Nm zfs-tpm1x-load-key diff --git a/zfs-tpm1x-load-key.8.html b/zfs-tpm1x-load-key.8.html index b159548..71a2bad 100644 --- a/zfs-tpm1x-load-key.8.html +++ b/zfs-tpm1x-load-key.8.html @@ -137,8 +137,8 @@ - - + +
June 12, 2023tzpfms 0.3.3July 16, 2023tzpfms 0.3.3-1-gaa1c21f
diff --git a/zfs-tpm2-change-key.8 b/zfs-tpm2-change-key.8 index 8ce70e1..7c6fa35 100644 --- a/zfs-tpm2-change-key.8 +++ b/zfs-tpm2-change-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd June 12, 2023 +.Dd July 16, 2023 .ds doc-volume-operating-system .Dt ZFS-TPM2-CHANGE-KEY 8 -.Os tzpfms 0.3.3 +.Os tzpfms 0.3.3-1-gaa1c21f . .Sh NAME .Nm zfs-tpm2-change-key diff --git a/zfs-tpm2-change-key.8.html b/zfs-tpm2-change-key.8.html index 6879067..1355511 100644 --- a/zfs-tpm2-change-key.8.html +++ b/zfs-tpm2-change-key.8.html @@ -263,8 +263,8 @@ - - + +
June 12, 2023tzpfms 0.3.3July 16, 2023tzpfms 0.3.3-1-gaa1c21f
diff --git a/zfs-tpm2-clear-key.8 b/zfs-tpm2-clear-key.8 index 92f15a1..71f3eb8 100644 --- a/zfs-tpm2-clear-key.8 +++ b/zfs-tpm2-clear-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd June 12, 2023 +.Dd July 16, 2023 .ds doc-volume-operating-system .Dt ZFS-TPM2-CLEAR-KEY 8 -.Os tzpfms 0.3.3 +.Os tzpfms 0.3.3-1-gaa1c21f . .Sh NAME .Nm zfs-tpm2-clear-key diff --git a/zfs-tpm2-clear-key.8.html b/zfs-tpm2-clear-key.8.html index 1ab15ab..8e7f37b 100644 --- a/zfs-tpm2-clear-key.8.html +++ b/zfs-tpm2-clear-key.8.html @@ -152,8 +152,8 @@ - - + +
June 12, 2023tzpfms 0.3.3July 16, 2023tzpfms 0.3.3-1-gaa1c21f
diff --git a/zfs-tpm2-load-key.8 b/zfs-tpm2-load-key.8 index 53e5de5..50cd6f6 100644 --- a/zfs-tpm2-load-key.8 +++ b/zfs-tpm2-load-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd June 12, 2023 +.Dd July 16, 2023 .ds doc-volume-operating-system .Dt ZFS-TPM2-LOAD-KEY 8 -.Os tzpfms 0.3.3 +.Os tzpfms 0.3.3-1-gaa1c21f . .Sh NAME .Nm zfs-tpm2-load-key diff --git a/zfs-tpm2-load-key.8.html b/zfs-tpm2-load-key.8.html index d42dd4a..b86fade 100644 --- a/zfs-tpm2-load-key.8.html +++ b/zfs-tpm2-load-key.8.html @@ -136,8 +136,8 @@ - - + +
June 12, 2023tzpfms 0.3.3July 16, 2023tzpfms 0.3.3-1-gaa1c21f