123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- # SPDX-License-Identifier: BSD-3-Clause
- source helpers.sh
- alg_primary_obj=sha256
- alg_primary_key=rsa
- alg_create_obj=0x000B
- alg_create_key=hmac
- alg_quote=0x0004
- alg_quote1=0x000b
- file_primary_key_ctx=context.p_"$alg_primary_obj"_"$alg_primary_key"
- file_quote_key_pub=opu_"$alg_create_obj"_"$alg_create_key"
- file_quote_key_priv=opr_"$alg_create_obj"_"$alg_create_key"
- file_quote_key_name=name.load_"$alg_primary_obj"_"$alg_primary_key"-\
- "$alg_create_obj"_"$alg_create_key"
- file_quote_key_ctx=ctx_load_out_"$alg_primary_obj"_"$alg_primary_key"-\
- "$alg_create_obj"_"$alg_create_key"
- Handle_ak_quote=0x81010016
- Handle_ek_quote=0x81010017
- Handle_ak_quote2=0x81010018
- ak2_ctx=ak2.ctx
- out=out.yaml
- toss_out=junk.out
- cleanup() {
- rm -f $file_primary_key_ctx $file_quote_key_pub $file_quote_key_priv \
- $file_quote_key_name $file_quote_key_ ak.pub2 ak.name_2 \
- $out $toss_out $ak2_ctx ek.ctx ak.ctx nonce.bin quote.bin quote.sig quote.pcr
- tpm2 evictcontrol -Q -Co -c $Handle_ek_quote 2>/dev/null || true
- tpm2 evictcontrol -Q -Co -c $Handle_ak_quote 2>/dev/null || true
- tpm2 evictcontrol -Q -Co -c $Handle_ak_quote2 2>/dev/null || true
- if [ "$1" != "no-shut-down" ]; then
- shut_down
- fi
- }
- trap cleanup EXIT
- start_up
- tpm2 getcap properties-fixed | tr -dc '[[:print:]]\r\n' > $out
- maxdigest=$(yaml_get_kv $out "TPM2_PT_MAX_DIGEST" "raw")
- if ! [[ "$maxdigest" =~ ^(0x)*[0-9]+$ ]] ; then
- echo "error: not a number, got: \"$maxdigest\"" >&2
- exit 1
- fi
- nonce=12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde
- nonce=${nonce:0:2*$maxdigest}
- cleanup "no-shut-down"
- tpm2 clear
- tpm2 createprimary -Q -C e -g $alg_primary_obj -G $alg_primary_key \
- -c $file_primary_key_ctx
- tpm2 create -Q -g $alg_create_obj -G $alg_create_key -u $file_quote_key_pub \
- -r $file_quote_key_priv -C $file_primary_key_ctx
- tpm2 load -Q -C $file_primary_key_ctx -u $file_quote_key_pub \
- -r $file_quote_key_priv -n $file_quote_key_name -c $file_quote_key_ctx
- tpm2 quote -c $file_quote_key_ctx -l $alg_quote:16,17,18 -q $nonce \
- -m $toss_out -s $toss_out -o $toss_out -g $alg_primary_obj > $out
- yaml_verify $out
- tpm2 quote -Q -c $file_quote_key_ctx \
- -l $alg_quote:16,17,18+$alg_quote1:16,17,18 -q $nonce -m $toss_out \
- -s $toss_out -o $toss_out -g $alg_primary_obj
- #####handle testing
- tpm2 evictcontrol -Q -C o -c $file_quote_key_ctx $Handle_ak_quote
- tpm2 quote -Q -c $Handle_ak_quote -l $alg_quote:16,17,18 -q $nonce \
- -m $toss_out -s $toss_out -o $toss_out -g $alg_primary_obj
- tpm2 quote -Q -c $Handle_ak_quote -l $alg_quote:16,17,18+$alg_quote1:16,17,18 \
- -q $nonce -m $toss_out -s $toss_out -o $toss_out -g $alg_primary_obj
- #####AK
- tpm2 createek -Q -c $Handle_ek_quote -G 0x01
- tpm2 createak -Q -C $Handle_ek_quote -c $ak2_ctx -u ak.pub2 -n ak.name_2
- tpm2 evictcontrol -Q -C o -c $ak2_ctx $Handle_ak_quote2
- tpm2 quote -Q -c $Handle_ak_quote -l $alg_quote:16,17,18 -q $nonce \
- -m $toss_out -s $toss_out -o $toss_out -g $alg_primary_obj
- # ECC Test
- tpm2 createek -G ecc -c ek.ctx
- tpm2 createak -C ek.ctx -c ak.ctx -G ecc -g sha256 -s ecdsa
- tpm2 getrandom -o nonce.bin 20
- tpm2 quote -c ak.ctx -l sha256:15,16,22 -q nonce.bin -m quote.bin -s quote.sig -o quote.pcr -g sha256
- exit 0
|