tpm2_policyauthorize(1) General Commands Manual tpm2_policyauthorize(1) (NAME) tpm2_policyauthorize - (SYNOPSIS) tpm2_policyauthorize [] (DESCRIPTION) tpm2_policyauthorize(1) - . 1. (trial session) (policy digest) . 2. (real policy session) tpm2_policyauthorize(1) (verification ticket) TPM TPM . (OPTIONS) o -L --policy=FILE: . o -S --session=FILE: -S tpm2_startauthsession(1). o -i --input=FILE: . o -q --qualification=FILE_OR_HEX: (policy qualifier data) . . o -n --name=FILE: . . tpm2_readpublic(1) . o -t --ticket=FILE: (validation structure). tpm2_verifysignature(1) . o --cphash=FILE . cpHash . : cpHash . (References) (COMMON OPTIONS) . o -h --help=[man|no-man]: (manpage) . (manpager) . "man" "man" man stderr . "no-man" stdout . MANPATH man(1) . o -v --version: TCTI . o -V --verbose: . . o -Q --quiet: stdout. o -Z --enable-errata: (errata fixups). errata TPM . TPM2TOOLS_ENABLE_ERRATA . o -z --pwd-session: HMAC . (clear text) TPM . (unsalted) OpenSSL FIPS . auth (salted) . o -R --autoflush: (autoflush) . . TPM2TOOLS_AUTOFLUSH yes true . . TCTI (TCTI Configuration) TCTI "Transmission Interface" TPM . TCTI TPM . TCTI : 1. -T --tcti 2. : TPM2TOOLS_TCTI. : . TCTI : o tabrmd - tabrmd . tabrmd abrmd tcti . o mssim - TPM . o device - TPM . o none - TPM . TPM (off-tpm) TCTI . TCTI . "none" . : : . TCTI (TCTI Defaults) TCTI TCTI dlopen(3) . TCTI tabrmd device mssim . -v TCTI . - "default-tcti" TCTI . TCTI (Custom TCTIs) TCTI TCTI . dlopen(3) tcti-name . dlopen(3) . TCTI (TCTI OPTIONS) TCTI : o device: TCTI (device) (character device) TPM TCTI . /dev/tpm0 . : -T device:/dev/tpm0 export TPM2TOOLS_TCTI="device:/dev/tpm0" o mssim: TCTI mssim IP () . 127.0.0.1 2321 . : -T mssim:host=localhost,port=2321 export TPM2TOOLS_TCTI="mssim:host=localhost,port=2321" o abrmd: TCTI abrmd - `,' . `=' . o TCTI abrmd : 1. `bus_name' : tabrmd ( ). 2. `bus_type' : dbus ( ) `session' `system'. tcti tabrmd bus_name=com.example.FooBar: \--tcti=tabrmd:bus_name=com.example.FooBar tcti (abrmd) bus_type=session: \--tcti:bus_type=session : abrmd tabrmd . TCTI. (EXAMPLES) (trial) PCR . PCR tpm2_policyauthorize(1) . . PCR PCR tpm2_policyauthorize(1) . PCR PCR tpm2_policyauthorize(1) . (Create a signing authority) openssl genrsa -out signing_key_private.pem 2048 openssl rsa -in signing_key_private.pem -out signing_key_public.pem -pubout tpm2_loadexternal -G rsa -C o -u signing_key_public.pem -c signing_key.ctx -n signing_key.name (Create the authorize policy digest) tpm2_startauthsession -S session.ctx tpm2_policyauthorize -S session.ctx -L authorized.policy -n signing_key.name tpm2_flushcontext session.ctx PCR (Create a policy to be authorized like a PCR policy) tpm2_pcrread -opcr0.sha256 sha256:0 tpm2_startauthsession -S session.ctx tpm2_policypcr -S session.ctx -l sha256:0 -f pcr0.sha256 -L pcr.policy_desired tpm2_flushcontext session.ctx (Sign the policy) openssl dgst -sha256 -sign signing_key_private.pem -out pcr.signature pcr.policy_desired TPM (Create a TPM object like a sealing object with the authorized policy based authentication) tpm2_createprimary -C o -g sha256 -G rsa -c prim.ctx tpm2_create -g sha256 -u sealing_pubkey.pub -r sealing_prikey.pub -i- -C prim.ctx -L authorized.policy <<< "secret to seal" PCR (Verify the desired policy digest comes from the signing authority, read the actual value of PCR and check that read policy and desired policy are equal) tpm2_verifysignature -c signing_key.ctx -g sha256 -m pcr.policy_desired -s pcr.signature -t verification.tkt -f rsassa tpm2_startauthsession \--policy-session -S session.ctx tpm2_policypcr -S session.ctx -l sha256:0 -L pcr.policy_read tpm2_policyauthorize -S session.ctx -L authorized.policy -i pcr.policy_desired -n signing_key.name -t verification.tkt tpm2_load -C prim.ctx -u sealing_pubkey.pub -r sealing_prikey.pub -c sealing_key.ctx unsealed=$(tpm2_unseal -p"session:session.ctx" -c sealing_key.ctx) echo $unsealed tpm2_flushcontext session.ctx (RETURNS) : o 0 - . o 1 - . o 2 - . o 3 - . o 4 - TCTI. o 5 - . tpm2_testparams. (LIMITATIONS) tpm2_startauthsession(1) : o o tpm2-abrmd. . (BUGS) (Github Issues) (HELP) (Mailing List) (LICENSE) Creative Commons Attribution 4.0 (CC BY 4.0) . tpm2-tools tpm2_policyauthorize(1)