tpm2_sign(1) General Commands Manual tpm2_sign(1) (NAME) tpm2_sign - TPM (SYNOPSIS) tpm2_sign [OPTIONS] [ARGUMENT] (DESCRIPTION) tpm2_sign(1) (message-digest) . tpm2_sign tpm2_hash . (unrestricted) (restricted) (validation ticket) TPM2_RH_NULL TPM2_RH_OWNER . tpm2_hash . : -t . TPM . (OPTIONS) o -c, --key-context=OBJECT: . (handle) . " (Context Object Format)" . o -p, --auth_AUTH_: -c. " " "Authorization Formatting" . o -g, --hash-algorithm=ALGORITHM: . " " "Algorithm Specifiers" . "Supported Hash Algorithms" . o -s, --scheme=ALGORITHM: (signing scheme) . . " " "Algorithm Specifiers" . . . o -d, --digest: FILE (digest) . -t (-t) . (restricted) . o -t, --ticket=FILE: . o -o, --signature=FILE: . o -f, --format=FORMAT: . "Signature Format Specifiers" . o --cphash=FILE . cpHash . : cpHash . o --commit-index=NATURALNUMBER commit ECDAA. 0 . o ARGUMENT . (References) (Context Object Format) handle : o (transient object) TPM . o : o owner: owner o platform: platform o endorsement: endorsement o lockout: lockout o handle ( 0x81010013) ._OBJECT_..SH " (Authorization Formatting)" TPM2.0 : . (Password) . HMAC . (Sessions) : " (EMPTY PASSWORD) ". auth HMAC . . . HMAC ( tpm2_startauthsession(1)). (Passwords) . : . (String) "str:" ( ) . (EXAMPLES) foobar str:foobar (Hex-string) "hex:" . (Example) hex:1122334455667788 (File) "file:" "-" stdin . . (EXAMPLES) # to use stdin and be prompted file:- # to use a file from a path file:path/to/password/file # to echo a password via stdin: echo foobar | tpm2_tool -p file:- # to use a bash here-string via stdin: tpm2_tool -p file:- <<< foobar (Sessions) (policy session) session . tpm2_startauthsession(1) . auth value (handle) ( policy password) + (Passwords) . (EXAMPLES) (context) session.ctx: session:session.ctx session.ctx authvalue mypassword: session:session.ctx+mypassword session.ctx authvalue HEX 0x11223344: session:session.ctx+hex:11223344 PCR (PCR Authorizations) "pcr:" PCR PCR . PCR : = PCR " PCR (PCR bank specifiers)" . raw-pcr-file PCR tpm2_pcrread(1) . PCR (PCR bank specifiers) (EXAMPLES) PCR sha256 : pcr:sha256:0,1,2,3 AUTH. (Algorithm Specifiers) " (nice-names)" . : . TPM ..SS " (Simple specifiers)" . . " " . (Asymmetric) o rsa o ecc (Symmetric) o aes o camellia o sm4 (Hashing Algorithms) o sha1 o sha256 o sha384 o sha512 o sm3_256 o sha3_256 o sha3_384 o sha3_512 (Keyed Hash) o hmac o xor (Signing Schemes) o rsassa o rsapss o ecdsa o ecdaa o ecschnorr o sm2 (Asymmetric Encryption Schemes) o oaep o rsaes o ecdh (Modes) o ctr o ofb o cbc o cfb o ecb (Misc) o null (Complex Specifiers) TPM (public data) . : :: (Type Specifiers) . . o aes - AES: aes128 o aes128 - AES (ctr|ofb|cbc|cfb|ecb). null . o aes192 - aes128 . o aes256 - aes128 . o sm4 - SM4: sm4128 o sm4128 sm4_128 - SM4 (ctr|ofb|cbc|cfb|ecb). null . o ecc - ecc256. o ecc192 ecc_nist_p192 - ECC NIST o ecc224 ecc_nist_p224 - ECC NIST o ecc256 ecc_nist_p256 - ECC NIST o ecc384 ecc_nist_p384 - ECC NIST o ecc521 ecc_nist_p521 - ECC NIST o ecc_sm2 ecc_sm2_p256 - SM2 o rsa - RSA: rsa2048 o rsa1024 - RSA . o rsa2048 - RSA . o rsa3072 - RSA . o rsa4096 - RSA ..SS " (Scheme Specifiers)" . Signing Schemes ( ) Asymmetric Encryption Schemes ( ) . () . sha256 . . (Hash Optional Scheme Specifiers) : oaep-sha256. o oaep o ecdh o rsassa o rsapss o ecdsa o ecschnorr o sm2 (Multiple Option Scheme Specifiers) ( UINT16) (-) . * ecdaa ecdaa4-sha256. 4 . (No Option Scheme Specifiers) . * rsaes (Symmetric Details Specifiers) type . Symmetric Type Specifiers . aes128cfb . (EXAMPLES) rsa2048 rsaes tpm2_create -C parent.ctx -G rsa2048:rsaes -u key.pub -r key.priv ecc256 ecdaa sha384 /tpm2_create -C parent.ctx -G ecc256:ecdaa4-sha384 -u key.pub -r key.priv ALGORITHM. (COMMON OPTIONS) . o -h --help=[man|no-man]: (manpage) . (manpager) . "man" "man" man stderr . "no-man" manpager stdout . manpage MANPATH man(1) . o -v --version: tcti . o -V --verbose: . . o -Q --quiet: stdout. o -Z --enable-errata: (errata fixups). TPM . TPM2TOOLS_ENABLE_ERRATA . o -z --pwd-session: HMAC . (clear text) TPM . (unsalted) OpenSSL FIPS . auth (salted) . o -R --autoflush: (autoflush) . (context file) . TPM2TOOLS_AUTOFLUSH yes true autoflush . . 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 ( TPM) TCTI . TCTI . "none" . : : ..SS " 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 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. (SIGNATURE FORMAT SPECIFIERS) . tss () (binary blob) TPM 2.0 . plain . (EXAMPLES) TPM endorsement tpm2_createprimary -C e -c primary.ctx tpm2_create -G rsa -u rsa.pub -r rsa.priv -C primary.ctx tpm2_load -C primary.ctx -u rsa.pub -r rsa.priv -c rsa.ctx echo "my message" > message.dat tpm2_sign -c rsa.ctx -g sha256 -o sig.rssa message.dat tpm2_verifysignature -c rsa.ctx -g sha256 -s sig.rssa -m message.dat TPM OSSL openssl ecparam -name prime256v1 -genkey -noout -out private.ecc.pem openssl ec -in private.ecc.pem -out public.ecc.pem -pubout # Generate a hash to sign echo "data to sign" > data.in.raw sha256sum data.in.raw | awk '{ print "000000 " $1 }' | \ xxd -r -c 32 > data.in.digest # Load the private key for signing tpm2_loadexternal -Q -G ecc -r private.ecc.pem -c key.ctx # Sign in the TPM and verify with OSSL tpm2_sign -Q -c key.ctx -g sha256 -d -f plain -o data.out.signed data.in.digest openssl dgst -verify public.ecc.pem -keyform pem -sha256 \ -signature data.out.signed data.in.raw (EXIT STATUS) : o 0 - . o 1 - . o 2 - . o 3 - . o 4 - TCTI. o 5 - (scheme) . tpm2_testparams..SH " (BUGS)" (Github Issues) (HELP) (Mailing List) (LICENSE) Creative Commons Attribution 4.0 International License (CC BY 4.0) . tpm2-tools tpm2_sign(1)