123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- # SPDX-License-Identifier: BSD-3-Clause
- source helpers.sh
- file_primary_key_ctx=prim.ctx
- file_input_data=secret.data
- file_policy=policy.data
- file_unseal_key_pub=sealkey.pub
- file_unseal_key_priv=sealkey.priv
- file_unseal_key_ctx=sealkey.ctx
- file_unseal_key_name=sealkey.name
- file_output_data=unsealed.data
- file_session_data=session.dat
- secret=12345678
- cleanup() {
- rm -f $file_primary_key_ctx $file_input_data $file_policy \
- $file_unseal_key_pub $file_unseal_key_priv $file_unseal_key_ctx \
- $file_unseal_key_name $file_output_data $file_session_data
- if [ "${1}" != "no-shutdown" ]; then
- shut_down
- fi
- }
- trap cleanup EXIT
- start_up
- cleanup "no-shutdown"
- echo $secret > $file_input_data
- tpm2 clear
- tpm2 createprimary -Q -C o -c $file_primary_key_ctx
- tpm2 startauthsession -S $file_session_data
- tpm2 policycommandcode -S $file_session_data -L $file_policy TPM2_CC_Unseal
- tpm2 flushcontext $file_session_data
- rm $file_session_data
- echo "tpm2 create -C $file_primary_key_ctx -u $file_unseal_key_pub \
- -r $file_unseal_key_priv -L $file_policy -i- <<< $secret"
- tpm2 create -C $file_primary_key_ctx -u $file_unseal_key_pub \
- -r $file_unseal_key_priv -L $file_policy -i- <<< $secret
- tpm2 load -C $file_primary_key_ctx -u $file_unseal_key_pub \
- -r $file_unseal_key_priv -n $file_unseal_key_name -c $file_unseal_key_ctx
- # Ensure unsealing passes with proper policy
- tpm2 startauthsession --policy-session -S $file_session_data
- tpm2 policycommandcode -S $file_session_data -L $file_policy TPM2_CC_Unseal
- tpm2 unseal -p session:$file_session_data -c sealkey.ctx > $file_output_data
- tpm2 flushcontext $file_session_data
- rm $file_session_data
- cmp -s $file_output_data $file_input_data
- # Test that other operations fail
- if tpm2 encryptdecrypt -o $file_output_data -c $file_unseal_key_ctx \
- $file_input_data; then
- echo "tpm2 policycommandcode: Should have failed!"
- exit 1
- else
- true
- fi
- exit 0
|