tpm2_policysigned(1) General Commands Manual tpm2_policysigned(1) (NAME) tpm2_policysigned - TPM2 (SYNOPSIS) tpm2_policysigned [OPTIONS] (DESCRIPTION) tpm2_policysigned(1) - TPM2 . . TPM2 cpHashA nonceTPM policyRef expiration ( ). (OPTIONS) o -L, --policy=FILE: (compounded policy digest). o -S, --session=FILE: -S tpm2_startauthsession(1). o -c, --key-context=OBJECT: . (handle) . " (Context Object Format)" . o -g, --hash-algorithm=ALGORITHM: () . o -s, --signature=FILE: . o -f, --format=FORMAT: . TPMT_SIGNATURE tpm2.0 OpenSSL . rsassa ecdsa . o -t, --expiration=NATURAL_NUMBER: . nonceTPM . . 0 . o --cphash-input=FILE: (cpHash) TPM . o --raw-data=FILE: . o --ticket=FILE: (authorization ticket). o --timeout=FILE: . o -q, --qualification=FILE_OR_HEX_STR: (policy qualifier data) . . o -x, --nonce-tpm: nonceTPM . (References) (COMMON OPTIONS) . o -h, --help=[man|no-man]: . (manpager) . "man" "man" man (stderr) . "no-man" man (stdout) . manpages 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 values) (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 (port) . 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 . (EXAMPLES) TPM . (Create the signing authority) openssl genrsa -out private.pem 2048 openssl rsa -in private.pem -outform PEM -pubout -out public.pem nonceTPM cpHashA policyRef expiration 0 (Generate signature with nonceTPM, cpHashA, policyRef and expiration set to 0) echo "00 00 00 00" | xxd -r -p | \ openssl dgst -sha256 -sign private.pem -out signature.dat policysigned (Load the verification key and Create the policysigned policy) tpm2_loadexternal -C o -G rsa -u public.pem -c signing_key.ctx tpm2_startauthsession -S session.ctx tpm2_policysigned -S session.ctx -g sha256 -s signature.dat -f rsassa \ -c signing_key.ctx -L policy.signed tpm2_flushcontext session.ctx policysigned (Create a sealing object to use the policysigned) echo "plaintext" > secret.data tpm2_createprimary -C o -c prim.ctx tpm2_create -u key.pub -r sealing_key.priv -c sealing_key.ctx -C prim.ctx \ -i secret.data -L policy.signed (Satisfy the policy and unseal secret) tpm2_startauthsession -S session.ctx --policy-session tpm2_policysigned -S session.ctx -g sha256 -s signature.dat -f rsassa \ -c signing_key.ctx -L policy.signed tpm2_unseal -p session:session.ctx -c sealing_key.ctx tpm2_flushcontext session.ctx (RETURNS) : o 0 - . o 1 - . o 2 - . o 3 - . o 4 - TCTI. o 5 - (Non supported scheme). tpm2_testparams. (LIMITATIONS) tpm2_startauthsession(1) : o o tpm2-abrmd. . (BUGS) (Github Issues) (HELP) (Mailing List) (LICENSE) . (CC BY 4.0) . tpm2-tools tpm2_policysigned(1)