From 96fe4f0cf5b84831e62f4d5bd207421a02a6f808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1=20autouploader?= Date: Sun, 4 Dec 2022 01:52:41 +0000 Subject: [PATCH] Manpage update by job 897492 --- tzpfms.pdf | Bin 70157 -> 69622 bytes tzpfms.ps | 1127 +++++++++++++++++------------------ zfs-tpm-list.8 | 8 +- zfs-tpm-list.8.html | 2 +- zfs-tpm1x-change-key.8 | 10 +- zfs-tpm1x-change-key.8.html | 2 +- zfs-tpm1x-clear-key.8 | 6 +- zfs-tpm1x-clear-key.8.html | 2 +- zfs-tpm1x-load-key.8 | 10 +- zfs-tpm1x-load-key.8.html | 2 +- zfs-tpm2-change-key.8 | 16 +- zfs-tpm2-change-key.8.html | 5 +- zfs-tpm2-clear-key.8 | 12 +- zfs-tpm2-clear-key.8.html | 2 +- zfs-tpm2-load-key.8 | 10 +- zfs-tpm2-load-key.8.html | 2 +- 16 files changed, 602 insertions(+), 614 deletions(-) diff --git a/tzpfms.pdf b/tzpfms.pdf index 4bb4ea144803d80ef85766db54b727e306152757..37a83506bfde5bcafbf02f326679e55d090c73db 100644 GIT binary patch delta 30773 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%0A-nhnBP;L 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 B^uz!F diff --git a/tzpfms.ps b/tzpfms.ps index ef729ca..0e6d122 100644 --- a/tzpfms.ps +++ b/tzpfms.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.4 -%%CreationDate: Sun Dec 4 01:27:45 2022 +%%CreationDate: Sun Dec 4 01:52:41 2022 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Courier-Bold @@ -9,7 +9,7 @@ %%+ font Symbol %%+ font Times-Italic %%DocumentSuppliedResources: procset grops 1.22 4 -%%Pages: 14 +%%Pages: 13 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait @@ -256,17 +256,17 @@ F2-.834 E F0(|)A F21.666 E/F3 10/Courier-Oblique@0 SF(depth) (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)132 -204 Q(back-end)132 216 Q F0(the)191 216 Q F2(tzpfms)7.633 E F0 6.799 -(back-end \()7.633 F(e.g.)1.666 E F1(TPM2)7.633 E F0(for)7.633 E F4 -(zfs-tpm2-change-key)7.634 E F0 5.134(\(8\) or)B F1(TPM1.X)191 228 Q F0 -(for)2.5 E F4(zfs-tpm1x-change-key)2.5 E F0 -.834(\(8\) \) ,)B(or ")2.5 -E F1(-)A F0 2.5("i)C 2.5(fn)-2.5 G(one is con\214gured)-2.5 E F4 -(keystatus)132 240 Q F1 -2.1 -.25(av a)191 240 T(ilable).25 E F0(or)2.5 -E F1(una)2.5 E -.1(va)-.25 G(ilable).1 E F4(coherent)132 252 Q F1 -.1 -(ye)191 252 S(s).1 E F0 9.489(if either both)11.989 F F4 -(xyz.nabijaczleweli:tzpfms.backend)11.989 E F0(and)11.989 E F4 -(xyz.nabijaczleweli:tzpfms.key)191 264 Q F0(are present or missing,)2.5 +(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 @@ -280,59 +280,58 @@ F(Ho)6.113 E(we)-.25 E -.15(ve)-.25 G 1.913 -.4(r, t).15 H 1.113 (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 .124 -(Scripting mode \212 remo)173 384 R .424 -.15(ve h)-.15 H .125 -(eaders and separate \214elds by a single tab instead of colum-).15 F -(nating them with spaces.)173 396 Q F2103.666 414 Q F0 -(Recurse into all descendants of speci\214ed datasets.)173 414 Q F2 -103.666 426 Q F3(depth)6 E F0(Recurse at most)173 426 Q F3(depth) +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 +(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)173 444 Q -.15(ve) +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)173 468 Q F2(tzpfms)2.5 -E F3(back-end)2.5 E F0(.)A F2103.666 486 Q F0 -(List only encryption roots whose k)173 486 Q -.15(ey)-.1 G 2.5(sa).15 G -(re una)-2.5 E -.25(va)-.2 G(ilable.).25 E F2103.666 498 Q F0 -(List only encryption roots whose k)173 498 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 522 Q F4($)102 -534 Q F2(zfs-tpm-list)6 E F4 72(NAME BACK-END)102 546 R 18 -(KEYSTATUS COHERENT)12 F 36(tarta-zoot TPM1.X)102 558 R 18 -(available yes)24 F 6(tarta-zoot/home TPM2)102 570 R 6(unavailable yes) -36 F($)102 594 Q F2 1.666(zfs-tpm-list \255ad0)6 F F4 24(NAME BACK-END) -102 606 R 6(KEYSTATUS COHERENT)12 F 6(filling -)102 618 R 6 -(available yes)54 F($)102 642 Q F2 1.666(zfs-tpm-list \255b)6 F F1(TPM2) -6 E F4 72(NAME BACK-END)102 654 R 18(KEYSTATUS COHERENT)12 F 6 -(tarta-zoot/home TPM2)102 666 R 6(unavailable yes)36 F($)102 690 Q F2 +(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 -702 R 18(KEYSTATUS COHERENT)12 F 36(tarta-zoot TPM1.X)102 714 R 18 -(available yes)24 F 6(tarta-zoot/home TPM2)102 726 R 6(unavailable yes) -36 F 12(tarta-zoot/bkp -)102 738 R 18(available yes)54 F 18 -(tarta-zoot/vm -)102 750 R 18(available yes)54 F F0 -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(1) -192.205 E 0 Cg EP +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.1-10-gf403f)72 810 Q 94.145 +(fe December)-.25 F(4, 2022)2.5 E(1)192.205 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($)102 96 Q/F2 10/Courier-Bold@0 SF -1.666(zfs-tpm-list \255al)6 F F1 72(NAME BACK-END)102 108 R 6 -(KEYSTATUS COHERENT)12 F 54(filling -)102 120 R 6(available yes)54 F 36 -(tarta-zoot TPM1.X)102 132 R 6(available yes)24 F 12(tarta-zoot/bkp -) -102 144 R 6(available yes)54 F 18(tarta-zoot/vm -)102 156 R 6 -(available yes)54 F/F3 10/Times-Bold@0 SF 1.666(SPECIAL THANKS)72 180 R -F0 1.6 -.8(To a)102 192 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F3<83>122 204 Q F0(ThePhD)2.5 E F3<83>122 -216 Q F0(Embark Studios)2.5 E F3<83>122 228 Q F0(Lars Strojn)2.5 E(y) --.15 E F3(REPOR)72 252 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr) -102 264 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F1 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 282 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 294 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(2) -192.205 E 0 Cg EP +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.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(2)192.205 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup BP @@ -413,92 +412,91 @@ E F5(keyformat=passphrase)102 552 Q F3(dataset)6 E F0 -3.332 1.666 (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)191 630 Q 1.352 -.15(ve a b)-.2 H 1.052 -(ack-up of the k).15 F 1.352 -.15(ey t)-.1 H(o).15 E F3(backup-file) -3.552 E F0 3.552(,w)C 1.052(hich must not e)-3.552 F 1.053 -(xist beforehand.)-.15 F .432(This back-up)191 642 R F4(must)2.932 E F0 -.431(be stored securely)2.931 F 2.931(,o)-.65 G -.25(ff)-2.931 G 2.931 -(-site. In).25 F .431(case of a catastrophic e)2.931 F -.15(ve)-.25 G -.431(nt, the).15 F -.1(ke)191 654 S 2.5(yc)-.05 G -(an be loaded by running)-2.5 E F2(zfs load-key)221 666 Q F3(dataset)6 E -F5(<)6 E F3(backup-file)6 E F2103.666 684 Q F3(PCR)6 E F0([)A F2 -(,)A F3(PCR)A F0 1.666(]...)C .45(Bind the k)191 684 R .75 -.15(ey t)-.1 -H 2.95(os).15 G .45(pace- or comma-separated)-2.95 F F3(PCR)2.95 E F0 --5.449 2.95(s\212 i)D 2.951(ft)-2.95 G(he)-2.951 E 2.951(yc)-.15 G .451 -(hange, the wrapping)-2.951 F -.1(ke)191 696 S 2.59(yw)-.05 G .089 -(ill not be able to be unsealed.)-2.59 F .089 -(The minimum number of PCRs for a PC TPM)5.089 F(is)191 708 Q F1(24)2.5 +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(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E -(3)192.205 E 0 Cg EP +-1.816 E F1(ENVIR)72 720 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E F0 +(tzpfms 0.3.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(3)192.205 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.834(ZFS-TPM1X-CHANGE-KEY \(8\))72 48 R (System Manager')46.109 E 2.5(sM)-.55 G 41.109 -(anual ZFS-TPM1X-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF -(ENVIR)72 96 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E/F2 10/Courier@0 SF -(TZPFMS_PASSPHRASE_HELPER)102 108 Q F0 .159(By def)143 120 R .159(ault,\ - passphrases are prompted for and read in on the standard output and in\ -put streams.)-.1 F(If)143 132 Q F2(TZPFMS_PASSPHRASE_HELPER)3.356 E F0 -.856(is set and nonempty)3.356 F 3.356(,i)-.65 G 3.356(tw)-3.356 G .856 -(ill be run via)-3.356 F F2(/bin/)3.355 E/F3 10/Courier-Bold@0 SF 2.521 -(sh \255c)B F0(to pro)143 144 Q(vide each passphrase, instead.)-.15 E -.087(The standard output stream of the helper is tied to an anon)143 162 -R .088(ymous \214le and used in its entirety as)-.15 F -(the passphrase, e)143 174 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)155 186 Q F0 -(Pre-formatted noun phrase with all the information belo)172 186 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F2($2)155 198 Q F0 -(Either the dataset name or the element of the TPM hierarch)172 198 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F2($3)155 210 Q F0("ne)172 210 Q +(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 (w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F2($4)155 222 Q F0("ag)172 222 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E 1.109 -(If the helper doesn')143 240 R 3.609(te)-.18 G 2.775(xist \()-3.759 F -1.109(the shell e)1.666 F 1.109(xits with)-.15 F F1(127)3.609 E F0 --2.223 1.666(\), a d)1.666 H 1.108(iagnostic is issued and the normal) --1.666 F(prompt is used as f)143 252 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 276 R .625 -(TPM selection)84 288 R F0(The)102 300 Q F3(tzpfms)2.682 E F0 .182 -(suite connects to a local)2.682 F F2(tcsd)2.682 E F0 .182 -(\(8\) process)B 1.666(\(a)4.348 G(t)-1.666 E F2(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 312 Q(vironment v)-.4 E(ariable)-.25 E F2 -(TZPFMS_TPM1X)2.5 E F0(to specify a remote TCS hostname.)2.5 E .611 -(The T)102 330 R(rouSerS)-.35 E F2(tcsd)3.111 E F0 .611 -(\(8\) daemon will try)B F2(/dev/tpm0)3.11 E F0 3.11(,t)C(hen)-3.11 E F2 -(/udev/tpm0)3.11 E F0 3.11(,t)C(hen)-3.11 E F2(/dev/tpm)3.11 E F0 3.11 -(;b)C 3.11(yo)-3.11 G(ccu-)-3.11 E -.1(py)102 342 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 366 R F0(The T)102 378 Q(rouSerS project page at)-.35 E F1 +-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 +(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 -396 R 5.22(xa)-.15 G(t)-5.22 E F1(https://trustedcomputinggr)5.22 E +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 408 Q F0(.)A F1 1.666(SPECIAL THANKS)72 432 R F0 -1.6 -.8(To a)102 444 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 456 Q F0(ThePhD)2.5 E F1<83>122 -468 Q F0(Embark Studios)2.5 E F1<83>122 480 Q F0(Lars Strojn)2.5 E(y) --.15 E F1(REPOR)72 504 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr) -102 516 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F2 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 534 Q F0 86.763(,a)C(rchi) --86.763 E -.15(ve)-.25 G 86.762(da).15 G(t)-86.762 E F1 -(https://lists.sr)102 546 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A F1 -1.666(SEE ALSO)72 570 R F0(PCR allocations:)102 582 Q F1 -(https://wiki.ar)102 594 Q(chlinux.or)-.18 E(g/title/T)-.1 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 F1(https://trustedcomputinggr)102 606 Q(oup.or)-.18 E -(g/wp-content/uploads/PC-)-.1 E(ClientSpeci\214c_Platf)102 618 Q(orm_Pr) +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 630 Q -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(4) -192.205 E 0 Cg EP +(ection 2.3.4 "PCR Usage", T)-2.5 E(able)-.8 E(1.)102 618 Q +(tzpfms 0.3.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(4)192.205 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup BP @@ -513,21 +511,22 @@ F 1.308 -.15(ey i)-.1 H 3.508(np).15 G(asssw)-3.508 E 1.008 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.126 -(1. performs the equi)122 204 R -.25(va)-.25 G 5.126(lent of).25 F F2 -5.126(zfs change-key)7.626 F12.792 E/F4 10/Courier@0 SF -(keylocation=prompt)11.126 E F212.791 E F4(keyformat=passphrase) -127 216 Q F3(dataset)6 E F0(,)A 6.99(2. remo)122 228 R -.15(ve)-.15 G -9.491(st).15 G(he)-9.491 E F4(xyz.nabijaczleweli:tzpfms.)9.491 E F0({)A -F4(backend)A F0(,)A F4(key)12.991 E F0 9.491(}p)C 6.991(roperties from) --9.491 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 +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 @@ -541,15 +540,15 @@ E(ousers)-.18 E F0(.)A 2.719(The TPM 1.2 main speci\214cation inde)102 (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)2.5 E F1<83>122 -474 Q F0(Embark Studios)2.5 E F1<83>122 486 Q F0(Lars Strojn)2.5 E(y) +(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.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(5) -192.205 E 0 Cg EP +(tzpfms 0.3.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(5)192.205 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup BP @@ -572,418 +571,33 @@ F0(.)A .611 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 .156(Do a no-op/dry run, can be used e)119 288 R -.15(ve)-.25 G -2.656(ni).15 G 2.656(ft)-2.656 G .156(he k)-2.656 F .456 -.15(ey i)-.1 H -2.656(sa).15 G .156(lready loaded.)-2.656 F(Equi)5.156 E -.25(va)-.25 G -.156(lent to).25 F F2 .156(zfs load-key)2.656 F F0 -.55('s)C F2 -120.666 300 Q F0(option.)2.5 E F1(ENVIR)72 324 Q 1.666(ONMENT V)-.3 F -(ARIABLES)-1.35 E F4(TZPFMS_PASSPHRASE_HELPER)102 336 Q F0 .159(By def) -143 348 R .159(ault, passphrases are prompted for and read in on the st\ -andard output and input streams.)-.1 F(If)143 360 Q F4 -(TZPFMS_PASSPHRASE_HELPER)3.356 E F0 .856(is set and nonempty)3.356 F -3.356(,i)-.65 G 3.356(tw)-3.356 G .856(ill be run via)-3.356 F F4(/bin/) -3.355 E F2 2.521(sh \255c)B F0(to pro)143 372 Q -(vide each passphrase, instead.)-.15 E .087 -(The standard output stream of the helper is tied to an anon)143 390 R -.088(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) -143 402 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)155 414 Q F0 -(Pre-formatted noun phrase with all the information belo)172 414 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F4($2)155 426 Q F0 -(Either the dataset name or the element of the TPM hierarch)172 426 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)155 438 Q F0("ne)172 438 Q +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)155 450 Q F0("ag)172 450 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E 1.109 -(If the helper doesn')143 468 R 3.609(te)-.18 G 2.775(xist \()-3.759 F -1.109(the shell e)1.666 F 1.109(xits with)-.15 F F1(127)3.609 E F0 --2.223 1.666(\), a d)1.666 H 1.108(iagnostic is issued and the normal) --1.666 F(prompt is used as f)143 480 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 504 R .625 -(TPM selection)84 516 R F0(The)102 528 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 540 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 558 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 570 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 594 R F0(The T)102 606 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 -624 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 636 Q F0(.)A F1 1.666(SPECIAL THANKS)72 660 R F0 -1.6 -.8(To a)102 672 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 684 Q F0(ThePhD)2.5 E F1<83>122 -696 Q F0(Embark Studios)2.5 E F1<83>122 708 Q F0(Lars Strojn)2.5 E(y) --.15 E(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(6) -192.205 E 0 Cg EP -%%Page: 7 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/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.763(,a)C(rchi) --86.763 E -.15(ve)-.25 G 86.762(da).15 G(t)-86.762 E F1 -(https://lists.sr)102 138 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(7) -192.205 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)222 156 Q 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 -2.499 1.666(]... [)-1.666 H F2.833 E F0 -(]]).833 E F3(dataset)222 168 Q F1(DESCRIPTION)72 192 Q F0 5.41 -.8 -(To n)102 204 T(ormalise).8 E F3(dataset)6.31 E F0(,)A F2 -(zfs-tpm2-change-key)6.31 E F0 3.811 -(will open its encryption root in its stead.)6.31 F F2 -(zfs-tpm2-change-key)102 216 Q F0(will)3.731 E/F4 10/Times-Italic@0 SF -(ne)3.731 E(ver)-.15 E F0 1.231(create or destro)3.731 F 3.73(ye)-.1 G -1.23(ncryption roots; use)-3.73 F/F5 10/Courier@0 SF(zfs-change-key)3.73 -E F0(\(8\))A(for that.)102 228 Q -(First, a connection is made to the TPM, which)102 246 Q F4(must)2.5 E -F0(be TPM-2.0-compatible.)2.5 E(If)102 264 Q F3(dataset)3.483 E F0 -.1 -(wa)3.483 G 3.483(sp).1 G(re)-3.483 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 .984(as used, the pre)-.1 F(vious)-.25 E -.1(ke)102 -276 S 2.714(yw)-.05 G .214(ill be freed from the TPM.)-2.714 F .214 -(Otherwise, or in case of an error)5.214 F 2.713(,d)-.4 G .213 -(ata required for manual interv)-2.713 F(ention)-.15 E -(will be printed to the standard error stream.)102 288 Q(Ne)102 306 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 .179 -(to a persistent object on the TPM under the o)102 318 R .179 -(wner hierarch)-.25 F .179(y; if there is a passphrase set on the o)-.05 -F .178(wner hi-)-.25 F(erarch)102 330 Q 1.533 -.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 342 Q(The follo)102 360 Q -(wing properties are set on)-.25 E F3(dataset)2.5 E F0(:)A F1<83>122 372 -Q F5(xyz.nabijaczleweli:tzpfms.backend)7.5 E F0(=)A F1(TPM2)A<83>122 384 -Q F5(xyz.nabijaczleweli:tzpfms.key)7.5 E F0(=)A F3(persistent-object-ID) -A F0([).833 E F2(;).833 E F3(algorithm)133 396 Q 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 414 Q F0 1.53 -(identi\214es this dataset for w)4.03 F 1.53(ork with)-.1 F F1(TPM2)4.03 -E F0(-back-ended)A F2(tzpfms)4.031 E F0 3.197(tools \()4.031 F(namely) -1.666 E F5(zfs-tpm2-change-key)102 426 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 444 Q F0 .301(is an inte)2.802 F -.301(ger representing the sealed object, optionally follo)-.15 F .301 -(wed by a semicolon and PCR)-.25 F 2.011(list as speci\214ed with)102 -456 R F26.177 E F0 4.511(,n)C 2.011(ormalised to be)-4.511 F F2 -(tpm-tools)4.512 E F0 2.012(-toolchain-compatible; if needed, it can be) -B 1.063(passed to)102 468 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 480 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.506 G(ee)-1.666 E F1(OPTIONS) -3.84 E F0 .508 1.666(\). I)1.666 H(f)-1.666 E .303(you ha)102 492 R .603 --.15(ve a s)-.2 H .303(ealed k).15 F .603 -.15(ey y)-.1 H .303 -(ou can access with that or equi).15 F -.25(va)-.25 G .302 -(lent tool and set both of these properties, it will).25 F -(funxion seamlessly)102 504 Q(.)-.65 E(Finally)102 522 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 F17.922 E F5(keylocation=prompt)16.256 E F2 -17.922 E F5(keyformat=raw)102 534 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 .622(to clean\ - up the persistent object and properties, or to issue a note for manual\ - interv)102 546 R .623(ention into the stan-)-.15 F(dard error stream.) -102 558 Q 3.087<418c>102 576 S .586(nal v)-3.087 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 .586(hat com-)-3.086 F .859(mand succeeds, all is well, b) -102 588 R .859(ut otherwise the dataset can be manually rolled back to \ -a passphrase with)-.2 F F2(zfs-tpm2-clear-key)102 600 Q F3(dataset) -11.806 E F0 1.666(\(o)9.972 G 6.606 -.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.805 -(zfs change-key)8.305 F13.471 E F5(keyformat=passphrase)102 612 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 630 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 642 Q F1(OPTIONS)72 666 Q F2103.666 678 Q -F3(backup-file)6 E F0(Sa)191 690 Q 1.353 -.15(ve a b)-.2 H 1.052 -(ack-up of the k).15 F 1.352 -.15(ey t)-.1 H(o).15 E F3(backup-file) -3.552 E F0 3.552(,w)C 1.052(hich must not e)-3.552 F 1.052 -(xist beforehand.)-.15 F .431(This back-up)191 702 R F4(must)2.931 E F0 -.431(be stored securely)2.931 F 2.931(,o)-.65 G -.25(ff)-2.931 G 2.931 -(-site. In).25 F .431(case of a catastrophic e)2.931 F -.15(ve)-.25 G -.432(nt, the).15 F -.1(ke)191 714 S 2.5(yc)-.05 G -(an be loaded by running)-2.5 E F2(zfs load-key)221 726 Q F3(dataset)6 E -F5(<)6 E F3(backup-file)6 E F0(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q -(December 4, 2022)98.055 E(8)192.205 E 0 Cg EP -%%Page: 9 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/F1 10/Courier-Bold@0 SF -103.666 96 Q/F2 10/Courier-Oblique@0 SF(algorithm)6 E F1(:)A F2 -(PCR)A F0([)A F1(,)A F2(PCR)A F0 1.666(]...)C([)-1.666 E F1(+)A F2 -(algorithm)A F1(:)A F2(PCR)A F0([)A F1(,)A F2(PCR)A F0 1.666(]...)C -1.666(]...)-1.666 G .19(Bind the k)191 108 R .49 -.15(ey t)-.1 H 2.69 -(os).15 G .19(pace- or comma-separated)-2.69 F F2(PCR)2.689 E F0 2.689 -(sw)C .189(ithin their corresponding hash-)-2.689 F(ing)191 120 Q F2 -(algorithm)3.488 E F0 3.488<8a69>3.488 G 3.488(ft)-3.488 G(he)-3.488 E -3.488(yc)-.15 G .988(hange, the wrapping k)-3.488 F 1.288 -.15(ey w)-.1 -H .989(ill not be able to be un-).15 F 2.5(sealed. There)191 132 R(are) -2.5 E/F3 10/Times-Bold@0 SF(24)2.5 E F0(PCRs, numbered)2.5 E([)3.333 E -F3(0).833 E F0(,)A F3(23)2.5 E F0(].).833 E F2(algorithm)191 150 Q F0 -4.468(may be an)6.969 F 6.968(yo)-.15 G 6.968(fc)-6.968 G(ase-insensiti) --6.968 E 4.768 -.15(ve ")-.25 H F3(sha1).15 E F0 4.468(", ")B F3(sha256) -A F0 4.468(", ")B F3(sha384)A F0(",)A(")191 162 Q F3(sha512)A F0 7.383 -(", ")B F3(sm3_256)A F0 7.383(", ")B F3(sm3-256)A F0 7.383(", ")B F3 -(sha3_256)A F0 7.383(", ")B F3(sha3-256)A F0 7.383(", ")B F3(sha3_384)A -F0(",)A(")191 174 Q F3(sha3-384)A F0(", ")A F3(sha3_512)A F0(", or ")A -F3(sha3-512)A F0(", and must be supported by the TPM.)A F1103.666 -192 Q F0 -.4(Wi)191 192 S(th).4 E F15.512 E F0 3.846(,a)C 1.346 -(lso prompt for a passphrase.)-3.846 F 1.345(This is skipped by def) -6.345 F 1.345(ault because the)-.1 F 1.598(passphrase is)191 204 R/F4 10 -/Times-Italic@0 SF(OR)4.098 E F0 1.598(ed with the PCR polic)B 4.098 -(y\212t)-.15 G 1.598(he wrapping k)-4.098 F 1.898 -.15(ey c)-.1 H 1.598 -(an be unsealed).15 F F4(either)191 216 Q F0 .689 -(passphraseless with the right PCRs)3.189 F F4(or)3.189 E F0 .689 -(with the passphrase, and this is usu-)3.189 F(ally not the intent.)191 -228 Q F3(ENVIR)72 252 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E/F5 10 -/Courier@0 SF(TZPFMS_PASSPHRASE_HELPER)102 264 Q F0 .159(By def)143 276 -R .159(ault, passphrases are prompted for and read in on the standard o\ -utput and input streams.)-.1 F(If)143 288 Q F5(TZPFMS_PASSPHRASE_HELPER) -3.356 E F0 .856(is set and nonempty)3.356 F 3.356(,i)-.65 G 3.356(tw) --3.356 G .856(ill be run via)-3.356 F F5(/bin/)3.355 E F1 2.521 -(sh \255c)B F0(to pro)143 300 Q(vide each passphrase, instead.)-.15 E -.087(The standard output stream of the helper is tied to an anon)143 318 -R .088(ymous \214le and used in its entirety as)-.15 F -(the passphrase, e)143 330 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)155 342 Q F0 -(Pre-formatted noun phrase with all the information belo)172 342 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F5($2)155 354 Q F0 -(Either the dataset name or the element of the TPM hierarch)172 354 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F5($3)155 366 Q F0("ne)172 366 Q -(w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F5($4)155 378 Q F0("ag)172 378 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E 1.109 -(If the helper doesn')143 396 R 3.609(te)-.18 G 2.775(xist \()-3.759 F -1.109(the shell e)1.666 F 1.109(xits with)-.15 F F3(127)3.609 E F0 --2.223 1.666(\), a d)1.666 H 1.108(iagnostic is issued and the normal) --1.666 F(prompt is used as f)143 408 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 432 R(En)84 444 Q(vir) --.4 E .625(onment v)-.18 F(ariables)-.1 E F5(TSS2_LOG)102 456 Q F0(An) -155 456 Q 2.5(yo)-.15 G(f:)-2.5 E F3(NONE)2.5 E F0(,)A F3(ERR)2.5 E(OR) --.3 E F0(,)A F3 -1.2(WA)2.5 G(RNING)1.2 E F0(,)A F3(INFO)2.5 E F0(,)A F3 -(DEB)2.5 E(UG)-.1 E F0(,)A F3(TRA)2.5 E(CE)-.55 E F0 5(.D)C(ef)-5 E -(ault:)-.1 E F3 -1.2(WA)2.5 G(RNING)1.2 E F0(.)A F3 .625(TPM selection) -84 480 R F0 1.166(The library)102 492 R F1(libtss2-tcti-default.so)3.666 -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.667 E/F6 10/Symbol SF -(*)A F5(.so)A F0(li-)3.667 E 1.381(braries to select the def)102 504 R -1.381(ault, otherwise)-.1 F F5(/dev/tpmrm0)3.88 E F0 3.88(,t)C(hen)-3.88 -E F5(/dev/tpm0)3.88 E F0 3.88(,t)C(hen)-3.88 E F5(localhost:2321)3.88 E -F0(will be tried, in order)102 516 Q 1.666(\(s)4.166 G(ee)-1.666 E F5 -(ESYS_CONTEXT)2.5 E F0 -.834(\(3\) \) .)B F3 .625(See also)84 540 R F0 -1.629(The tpm2-tss git repository at)102 552 R F3(https://github)4.129 E -(.com/tpm2-softwar)-.4 E(e/tpm2-tss)-.18 E F0 1.63 -(and the documentation at)4.13 F F3(https://tpm2-tss.r)102 564 Q -(eadthedocs.io)-.18 E F0(.)A 3.518 -(The TPM 2.0 speci\214cations, mainly at)102 582 R F3 -(https://trustedcomputinggr)6.017 E(oup.or)-.18 E(g/r)-.1 E(esour)-.18 E -(ce/tpm-library-)-.18 E(speci\214cation/)102 594 Q F0(,)A F3 -(https://trustedcomputinggr)99.315 E(oup.or)-.18 E -(g/wp-content/uploads/TPM-)-.1 E(Re)102 606 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 F3 1.666(SPECIAL THANKS)72 630 R F0 1.6 -.8(To a)102 642 T -(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) -.15 E F3<83>122 654 Q F0(ThePhD)2.5 E F3<83>122 666 Q F0(Embark Studios) -2.5 E F3<83>122 678 Q F0(Lars Strojn)2.5 E(y)-.15 E F3(REPOR)72 702 Q -1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 714 Q -(.ht/\001nabijaczleweli/tzpfms)-1 E F5 -(\001nabijaczleweli/tzpfms@lists.sr.ht)102 732 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 744 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(9) -192.205 E 0 Cg EP -%%Page: 10 10 -%%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 -1.666(SEE ALSO)72 96 R/F2 10/Courier@0 SF(tpm2_unseal)102 108 Q F0 -(\(1\))A(PCR allocations:)102 126 Q F1(https://wiki.ar)102 138 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 150 Q(oup.or)-.18 E -(g/wp-content/uploads/PC-)-.1 E(ClientSpeci\214c_Platf)102 162 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 174 Q -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(10) -187.205 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.126 -(1. performs the equi)122 192 R -.25(va)-.25 G 5.126(lent of).25 F F2 -5.126(zfs change-key)7.626 F12.792 E/F4 10/Courier@0 SF -(keylocation=prompt)11.126 E F212.792 E F4(keyformat=passphrase) -127 204 Q F3(dataset)6 E F0(,)A(2. frees the sealed k)122 216 Q .3 -.15 -(ey p)-.1 H(re).15 E(viously used to encrypt)-.25 E F3(dataset)2.5 E F0 -(,)A 6.991(3. remo)122 228 R -.15(ve)-.15 G 9.491(st).15 G(he)-9.491 E -F4(xyz.nabijaczleweli:tzpfms.)9.491 E F0({)A F4(backend)A F0(,)A F4(key) -12.991 E F0 9.491(}p)C 6.99(roperties from)-9.491 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 .159 -(By def)143 306 R .159(ault, passphrases are prompted for and read in o\ -n the standard output and input streams.)-.1 F(If)143 318 Q F4 -(TZPFMS_PASSPHRASE_HELPER)3.356 E F0 .856(is set and nonempty)3.356 F -3.356(,i)-.65 G 3.356(tw)-3.356 G .856(ill be run via)-3.356 F F4(/bin/) -3.355 E F2 2.521(sh \255c)B F0(to pro)143 330 Q -(vide each passphrase, instead.)-.15 E .087 -(The standard output stream of the helper is tied to an anon)143 348 R -.088(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) -143 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)155 372 Q F0 -(Pre-formatted noun phrase with all the information belo)172 372 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F4($2)155 384 Q F0 -(Either the dataset name or the element of the TPM hierarch)172 384 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)155 396 Q F0("ne)172 396 Q -(w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F4($4)155 408 Q F0("ag)172 408 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E 1.109 -(If the helper doesn')143 426 R 3.609(te)-.18 G 2.775(xist \()-3.759 F -1.109(the shell e)1.666 F 1.109(xits with)-.15 F F1(127)3.609 E F0 --2.223 1.666(\), a d)1.666 H 1.108(iagnostic is issued and the normal) --1.666 F(prompt is used as f)143 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.166(The library)102 522 R F2(libtss2-tcti-default.so)3.666 -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.667 E/F5 10/Symbol SF -(*)A F4(.so)A F0(li-)3.667 E 1.381(braries to select the def)102 534 R -1.381(ault, otherwise)-.1 F F4(/dev/tpmrm0)3.88 E F0 3.88(,t)C(hen)-3.88 -E F4(/dev/tpm0)3.88 E F0 3.88(,t)C(hen)-3.88 E F4(localhost:2321)3.88 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.629(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.63 -(and the documentation at)4.13 F F1(https://tpm2-tss.r)102 594 Q -(eadthedocs.io)-.18 E F0(.)A 3.518 -(The TPM 2.0 speci\214cations, mainly at)102 612 R F1 -(https://trustedcomputinggr)6.017 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 -(ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) -.15 E F1<83>122 684 Q F0(ThePhD)2.5 E F1<83>122 696 Q F0(Embark Studios) -2.5 E F1<83>122 708 Q F0(Lars Strojn)2.5 E(y)-.15 E -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(11) -187.205 E 0 Cg EP -%%Page: 12 12 -%%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.763(,a)C(rchi)-86.763 E -.15(ve)-.25 G 86.762(da).15 G(t)-86.762 E -F1(https://lists.sr)102 138 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(.)A -(tzpfms 0.3.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(12) -187.205 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 .156 -(Do a no-op/dry run, can be used e)119 276 R -.15(ve)-.25 G 2.656(ni).15 -G 2.656(ft)-2.656 G .156(he k)-2.656 F .456 -.15(ey i)-.1 H 2.656(sa).15 -G .156(lready loaded.)-2.656 F(Equi)5.156 E -.25(va)-.25 G .156(lent to) -.25 F F2 .156(zfs load-key)2.656 F F0 -.55('s)C F2120.666 288 Q 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 .159(By def)143 336 R .159(aul\ -t, passphrases are prompted for and read in on the standard output and \ -input streams.)-.1 F(If)143 348 Q F4(TZPFMS_PASSPHRASE_HELPER)3.356 E F0 -.856(is set and nonempty)3.356 F 3.356(,i)-.65 G 3.356(tw)-3.356 G .856 -(ill be run via)-3.356 F F4(/bin/)3.355 E F2 2.521(sh \255c)B F0(to pro) -143 360 Q(vide each passphrase, instead.)-.15 E .087 -(The standard output stream of the helper is tied to an anon)143 378 R -.088(ymous \214le and used in its entirety as)-.15 F(the passphrase, e) -143 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)155 402 Q F0 -(Pre-formatted noun phrase with all the information belo)172 402 Q 1.3 --.65(w, f)-.25 H(or use as a prompt).65 E F4($2)155 414 Q F0 -(Either the dataset name or the element of the TPM hierarch)172 414 Q -2.5(yb)-.05 G(eing prompted for)-2.5 E F4($3)155 426 Q F0("ne)172 426 Q -(w" if this is for a ne)-.25 E 2.5(wp)-.25 G(assphrase, otherwise blank) --2.5 E F4($4)155 438 Q F0("ag)172 438 Q(ain" if it')-.05 E 2.5(st)-.55 G -(he second prompt for that passphrase, otherwise blank)-2.5 E 1.109 -(If the helper doesn')143 456 R 3.609(te)-.18 G 2.775(xist \()-3.759 F -1.109(the shell e)1.666 F 1.109(xits with)-.15 F F1(127)3.609 E F0 --2.223 1.666(\), a d)1.666 H 1.108(iagnostic is issued and the normal) --1.666 F(prompt is used as f)143 468 Q 2.5(all-back. If)-.1 F(it f)2.5 E +-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 @@ -1005,23 +619,398 @@ E(ousers)-.18 E F0(.)A 2.719(The TPM 1.2 main speci\214cation inde)102 (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)2.5 E F1<83>122 -684 Q F0(Embark Studios)2.5 E F1<83>122 696 Q F0(Lars Strojn)2.5 E(y) +(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.1-9-gd2dcf95) -72 799.889 Q(December 4, 2022)98.055 E(13)187.205 E 0 Cg EP -%%Page: 14 14 +102 732 Q(.ht/\001nabijaczleweli/tzpfms)-1 E F0(tzpfms 0.3.1-10-gf403f) +72 799.889 Q 94.145(fe December)-.25 F(4, 2022)2.5 E(6)192.205 E 0 Cg EP +%%Page: 7 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.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(7)192.205 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\ + 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.1-10-gf403f)72 804 Q 94.145(fe December)-.25 F +(4, 2022)2.5 E(8)192.205 E 0 Cg EP +%%Page: 9 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/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 +(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.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(9)192.205 E 0 Cg EP +%%Page: 10 10 +%%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.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(10)187.205 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 +(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 +(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.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(11)187.205 E 0 Cg EP +%%Page: 12 12 +%%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.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(12)187.205 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/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.1-9-gd2dcf95)72 799.889 Q(December 4, 2022)98.055 E(14) -187.205 E 0 Cg EP +-.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.1-10-gf403f)72 799.889 Q 94.145(fe December)-.25 F(4, 2022) +2.5 E(13)187.205 E 0 Cg EP %%Trailer end %%EOF diff --git a/zfs-tpm-list.8 b/zfs-tpm-list.8 index c2258f6..1a0453b 100644 --- a/zfs-tpm-list.8 +++ b/zfs-tpm-list.8 @@ -3,7 +3,7 @@ .Dd December 4, 2022 .ds doc-volume-operating-system .Dt ZFS-TPM-LIST 8 -.Os tzpfms 0.3.1-9-gd2dcf95 +.Os tzpfms 0.3.1-10-gf403ffe . .Sh NAME .Nm zfs-tpm-list @@ -18,7 +18,7 @@ . .Sh DESCRIPTION Lists the following properties on encryption roots: -.Bl -tag -compact -offset Ds -width "keystatus" +.Bl -tag -compact -offset 4n -width ".Li keystatus" .It Li name .It Li back-end the @@ -56,7 +56,7 @@ If no datasets are specified, all matching encryption roots are listed \(em by d .Nm tzpfms . . .Sh OPTIONS -.Bl -tag -compact -width "-b back-end" +.Bl -tag -compact -width ".Fl b Ar back-end" .It Fl H Scripting mode \(em remove headers and separate fields by a single tab instead of columnating them with spaces. .Pp @@ -117,7 +117,7 @@ tarta-zoot/vm - available yes . .Sh SPECIAL THANKS To all who support further development, in particular: -.Bl -bullet -offset 4n -compact -width 0 +.Bl -bullet -offset 4n -compact -width "@" .It ThePhD .It diff --git a/zfs-tpm-list.8.html b/zfs-tpm-list.8.html index ef0f557..e68c5e3 100644 --- a/zfs-tpm-list.8.html +++ b/zfs-tpm-list.8.html @@ -165,7 +165,7 @@ tarta-zoot/vm - available yes - +
December 4, 2022tzpfms 0.3.1-9-gd2dcf95tzpfms 0.3.1-10-gf403ffe
diff --git a/zfs-tpm1x-change-key.8 b/zfs-tpm1x-change-key.8 index 624506e..273547a 100644 --- a/zfs-tpm1x-change-key.8 +++ b/zfs-tpm1x-change-key.8 @@ -3,7 +3,7 @@ .Dd December 4, 2022 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CHANGE-KEY 8 -.Os tzpfms 0.3.1-9-gd2dcf95 +.Os tzpfms 0.3.1-10-gf403ffe . .Sh NAME .Nm zfs-tpm1x-change-key @@ -90,7 +90,7 @@ and you are hereby asked to report a bug, please. can be used to clear the properties and go back to using a passphrase. . .Sh OPTIONS -.Bl -tag -compact -width "-b backup-file" +.Bl -tag -compact -width ".Fl b Ar backup-file" .It Fl b Ar backup-file Save a back-up of the key to .Ar backup-file , @@ -114,7 +114,7 @@ For most, this is also the maximum. .\" SPDX-License-Identifier: MIT . .Sh ENVIRONMENT VARIABLES -.Bl -tag -compact -width "TZPFMS" +.Bl -tag -compact -width 4n .It Ev TZPFMS_PASSPHRASE_HELPER By default, passphrases are prompted for and read in on the standard output and input streams. If @@ -125,7 +125,7 @@ to provide each passphrase, instead. .Pp The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. The arguments are: -.Bl -tag -compact -offset "@@" -width "@@" +.Bl -tag -compact -offset 2n -width ".Li $1" .It Li $1 Pre-formatted noun phrase with all the information below, for use as a prompt .\" Passphrase for tarta-zoot @@ -184,7 +184,7 @@ The TPM 1.2 main specification index at . .Sh SPECIAL THANKS To all who support further development, in particular: -.Bl -bullet -offset 4n -compact -width 0 +.Bl -bullet -offset 4n -compact -width "@" .It ThePhD .It diff --git a/zfs-tpm1x-change-key.8.html b/zfs-tpm1x-change-key.8.html index 0d94851..9243e4f 100644 --- a/zfs-tpm1x-change-key.8.html +++ b/zfs-tpm1x-change-key.8.html @@ -218,7 +218,7 @@ - +
December 4, 2022tzpfms 0.3.1-9-gd2dcf95tzpfms 0.3.1-10-gf403ffe
diff --git a/zfs-tpm1x-clear-key.8 b/zfs-tpm1x-clear-key.8 index 944e169..39e624d 100644 --- a/zfs-tpm1x-clear-key.8 +++ b/zfs-tpm1x-clear-key.8 @@ -3,7 +3,7 @@ .Dd December 4, 2022 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CLEAR-KEY 8 -.Os tzpfms 0.3.1-9-gd2dcf95 +.Os tzpfms 0.3.1-10-gf403ffe . .Sh NAME .Nm zfs-tpm1x-clear-key @@ -19,7 +19,7 @@ was encrypted with .Nm tzpfms backend .Sy TPM1.X : -.Bl -enum -compact -offset 4n -width "" +.Bl -enum -compact -offset 2n -width 2n .It performs the equivalent of .Nm zfs Cm change-key Fl o Li keylocation=prompt Fl o Li keyformat=passphrase Ar dataset , @@ -70,7 +70,7 @@ The TPM 1.2 main specification index at . .Sh SPECIAL THANKS To all who support further development, in particular: -.Bl -bullet -offset 4n -compact -width 0 +.Bl -bullet -offset 4n -compact -width "@" .It ThePhD .It diff --git a/zfs-tpm1x-clear-key.8.html b/zfs-tpm1x-clear-key.8.html index 376f6a9..b7148e3 100644 --- a/zfs-tpm1x-clear-key.8.html +++ b/zfs-tpm1x-clear-key.8.html @@ -102,7 +102,7 @@ - +
December 4, 2022tzpfms 0.3.1-9-gd2dcf95tzpfms 0.3.1-10-gf403ffe
diff --git a/zfs-tpm1x-load-key.8 b/zfs-tpm1x-load-key.8 index ccf49ae..33f057c 100644 --- a/zfs-tpm1x-load-key.8 +++ b/zfs-tpm1x-load-key.8 @@ -3,7 +3,7 @@ .Dd December 4, 2022 .ds doc-volume-operating-system .Dt ZFS-TPM1X-LOAD-KEY 8 -.Os tzpfms 0.3.1-9-gd2dcf95 +.Os tzpfms 0.3.1-10-gf403ffe . .Sh NAME .Nm zfs-tpm1x-load-key @@ -31,7 +31,7 @@ See for a detailed description. . .Sh OPTIONS -.Bl -tag -compact -width "-n" +.Bl -tag -compact -width ".Fl n" .It Fl n Do a no-op/dry run, can be used even if the key is already loaded. Equivalent to @@ -43,7 +43,7 @@ option. .\" SPDX-License-Identifier: MIT . .Sh ENVIRONMENT VARIABLES -.Bl -tag -compact -width "TZPFMS" +.Bl -tag -compact -width 4n .It Ev TZPFMS_PASSPHRASE_HELPER By default, passphrases are prompted for and read in on the standard output and input streams. If @@ -54,7 +54,7 @@ to provide each passphrase, instead. .Pp The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. The arguments are: -.Bl -tag -compact -offset "@@" -width "@@" +.Bl -tag -compact -offset 2n -width ".Li $1" .It Li $1 Pre-formatted noun phrase with all the information below, for use as a prompt .\" Passphrase for tarta-zoot @@ -113,7 +113,7 @@ The TPM 1.2 main specification index at . .Sh SPECIAL THANKS To all who support further development, in particular: -.Bl -bullet -offset 4n -compact -width 0 +.Bl -bullet -offset 4n -compact -width "@" .It ThePhD .It diff --git a/zfs-tpm1x-load-key.8.html b/zfs-tpm1x-load-key.8.html index 940e161..a99f498 100644 --- a/zfs-tpm1x-load-key.8.html +++ b/zfs-tpm1x-load-key.8.html @@ -138,7 +138,7 @@ - +
December 4, 2022tzpfms 0.3.1-9-gd2dcf95tzpfms 0.3.1-10-gf403ffe
diff --git a/zfs-tpm2-change-key.8 b/zfs-tpm2-change-key.8 index 47ec752..4fd0cb0 100644 --- a/zfs-tpm2-change-key.8 +++ b/zfs-tpm2-change-key.8 @@ -3,7 +3,7 @@ .Dd December 4, 2022 .ds doc-volume-operating-system .Dt ZFS-TPM2-CHANGE-KEY 8 -.Os tzpfms 0.3.1-9-gd2dcf95 +.Os tzpfms 0.3.1-10-gf403ffe . .Sh NAME .Nm zfs-tpm2-change-key @@ -12,7 +12,7 @@ .Nm .Op Fl b Ar backup-file .Oo -.Fl P Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Ns Oo Cm + Ns Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Oc Ns … +.Fl P Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Ns \: Ns Oo Cm + Ns Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Oc Ns … .Op Fl A .Oc .Ar dataset @@ -54,7 +54,7 @@ The following properties are set on .It .Li xyz.nabijaczleweli:tzpfms.backend Ns = Ns Sy TPM2 .It -.Li xyz.nabijaczleweli:tzpfms.key Ns = Ns Ar persistent-object-ID Ns Op Cm ;\& Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Ns Oo Cm + Ns Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Oc Ns … +.Li xyz.nabijaczleweli:tzpfms.key Ns = Ns Ar persistent-object-ID Ns \: Ns Op Cm ;\& Ns Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Ns Oo Cm + Ns Ar algorithm Ns Cm \&: Ns Ar PCR Ns Oo Ns Cm \&, Ns Ar PCR Oc Ns … Oc Ns … .El .Pp .Li tzpfms.backend @@ -97,7 +97,7 @@ and you are hereby asked to report a bug, please. can be used to free the TPM persistent object and go back to using a passphrase. . .Sh OPTIONS -.Bl -tag -compact -width "-b backup-file" +.Bl -tag -compact -width ".Fl b Ar backup-file" .It Fl b Ar backup-file Save a back-up of the key to .Ar backup-file , @@ -154,7 +154,7 @@ with the passphrase, and this is usually not the intent. .\" SPDX-License-Identifier: MIT . .Sh ENVIRONMENT VARIABLES -.Bl -tag -compact -width "TZPFMS" +.Bl -tag -compact -width 4n .It Ev TZPFMS_PASSPHRASE_HELPER By default, passphrases are prompted for and read in on the standard output and input streams. If @@ -165,7 +165,7 @@ to provide each passphrase, instead. .Pp The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. The arguments are: -.Bl -tag -compact -offset "@@" -width "@@" +.Bl -tag -compact -offset 2n -width ".Li $1" .It Li $1 Pre-formatted noun phrase with all the information below, for use as a prompt .\" Passphrase for tarta-zoot @@ -192,7 +192,7 @@ If it fails for any other reason, the prompting is aborted. . .Sh TPM2 back-end configuration .Ss Environment variables -.Bl -tag -compact -width "TSS2_LOG" +.Bl -tag -compact -width ".Ev TSS2_LOG" .It Ev TSS2_LOG Any of: .Sy NONE , ERROR , WARNING , INFO , DEBUG , TRACE . @@ -229,7 +229,7 @@ and related pages. . .Sh SPECIAL THANKS To all who support further development, in particular: -.Bl -bullet -offset 4n -compact -width 0 +.Bl -bullet -offset 4n -compact -width "@" .It ThePhD .It diff --git a/zfs-tpm2-change-key.8.html b/zfs-tpm2-change-key.8.html index 4ffd536..8b9e7da 100644 --- a/zfs-tpm2-change-key.8.html +++ b/zfs-tpm2-change-key.8.html @@ -61,8 +61,7 @@ dataset:

tzpfms.backend identifies this dataset for work with TPM2-back-ended tzpfms @@ -265,7 +264,7 @@ - +
December 4, 2022tzpfms 0.3.1-9-gd2dcf95tzpfms 0.3.1-10-gf403ffe
diff --git a/zfs-tpm2-clear-key.8 b/zfs-tpm2-clear-key.8 index b25ccb2..43c1463 100644 --- a/zfs-tpm2-clear-key.8 +++ b/zfs-tpm2-clear-key.8 @@ -3,7 +3,7 @@ .Dd December 4, 2022 .ds doc-volume-operating-system .Dt ZFS-TPM2-CLEAR-KEY 8 -.Os tzpfms 0.3.1-9-gd2dcf95 +.Os tzpfms 0.3.1-10-gf403ffe . .Sh NAME .Nm zfs-tpm2-clear-key @@ -19,7 +19,7 @@ was encrypted with .Nm tzpfms backend .Sy TPM2 : -.Bl -enum -compact -offset 4n -width "" +.Bl -enum -compact -offset 2n -width 2n .It performs the equivalent of .Nm zfs Cm change-key Fl o Li keylocation=prompt Fl o Li keyformat=passphrase Ar dataset , @@ -40,7 +40,7 @@ for a detailed description. .\" SPDX-License-Identifier: MIT . .Sh ENVIRONMENT VARIABLES -.Bl -tag -compact -width "TZPFMS" +.Bl -tag -compact -width 4n .It Ev TZPFMS_PASSPHRASE_HELPER By default, passphrases are prompted for and read in on the standard output and input streams. If @@ -51,7 +51,7 @@ to provide each passphrase, instead. .Pp The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. The arguments are: -.Bl -tag -compact -offset "@@" -width "@@" +.Bl -tag -compact -offset 2n -width ".Li $1" .It Li $1 Pre-formatted noun phrase with all the information below, for use as a prompt .\" Passphrase for tarta-zoot @@ -78,7 +78,7 @@ If it fails for any other reason, the prompting is aborted. . .Sh TPM2 back-end configuration .Ss Environment variables -.Bl -tag -compact -width "TSS2_LOG" +.Bl -tag -compact -width ".Ev TSS2_LOG" .It Ev TSS2_LOG Any of: .Sy NONE , ERROR , WARNING , INFO , DEBUG , TRACE . @@ -115,7 +115,7 @@ and related pages. . .Sh SPECIAL THANKS To all who support further development, in particular: -.Bl -bullet -offset 4n -compact -width 0 +.Bl -bullet -offset 4n -compact -width "@" .It ThePhD .It diff --git a/zfs-tpm2-clear-key.8.html b/zfs-tpm2-clear-key.8.html index aec48a1..29e222b 100644 --- a/zfs-tpm2-clear-key.8.html +++ b/zfs-tpm2-clear-key.8.html @@ -153,7 +153,7 @@ - +
December 4, 2022tzpfms 0.3.1-9-gd2dcf95tzpfms 0.3.1-10-gf403ffe
diff --git a/zfs-tpm2-load-key.8 b/zfs-tpm2-load-key.8 index 30ed145..ae86fa8 100644 --- a/zfs-tpm2-load-key.8 +++ b/zfs-tpm2-load-key.8 @@ -3,7 +3,7 @@ .Dd December 4, 2022 .ds doc-volume-operating-system .Dt ZFS-TPM2-LOAD-KEY 8 -.Os tzpfms 0.3.1-9-gd2dcf95 +.Os tzpfms 0.3.1-10-gf403ffe . .Sh NAME .Nm zfs-tpm2-load-key @@ -30,7 +30,7 @@ See for a detailed description. . .Sh OPTIONS -.Bl -tag -compact -width "-n" +.Bl -tag -compact -width ".Fl n" .It Fl n Do a no-op/dry run, can be used even if the key is already loaded. Equivalent to @@ -42,7 +42,7 @@ option. .\" SPDX-License-Identifier: MIT . .Sh ENVIRONMENT VARIABLES -.Bl -tag -compact -width "TZPFMS" +.Bl -tag -compact -width 4n .It Ev TZPFMS_PASSPHRASE_HELPER By default, passphrases are prompted for and read in on the standard output and input streams. If @@ -53,7 +53,7 @@ to provide each passphrase, instead. .Pp The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. The arguments are: -.Bl -tag -compact -offset "@@" -width "@@" +.Bl -tag -compact -offset 2n -width ".Li $1" .It Li $1 Pre-formatted noun phrase with all the information below, for use as a prompt .\" Passphrase for tarta-zoot @@ -112,7 +112,7 @@ The TPM 1.2 main specification index at . .Sh SPECIAL THANKS To all who support further development, in particular: -.Bl -bullet -offset 4n -compact -width 0 +.Bl -bullet -offset 4n -compact -width "@" .It ThePhD .It diff --git a/zfs-tpm2-load-key.8.html b/zfs-tpm2-load-key.8.html index 057b859..6286cb3 100644 --- a/zfs-tpm2-load-key.8.html +++ b/zfs-tpm2-load-key.8.html @@ -137,7 +137,7 @@ - +
December 4, 2022tzpfms 0.3.1-9-gd2dcf95tzpfms 0.3.1-10-gf403ffe