1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
set -e
source helpers.sh
start_up
CRYPTO_PROFILE="RSA"
setup_fapi $CRYPTO_PROFILE
function cleanup {
tss2 delete --path=/
shut_down
}
trap cleanup EXIT
NV_PATH=/nv/Owner/NvExtend
DATA_EXTEND_FILE=$TEMP_DIR/nv_extend.data
DATA_READ_FILE=$TEMP_DIR/nv_read.data
LOG_DATA=$TEMP_DIR/log.data
READ_LOG_DATA=$TEMP_DIR/read_log.data
EMPTY_FILE=$TEMP_DIR/empty.file
BIG_FILE=$TEMP_DIR/big_file.file
LOG_FILE=$TEMP_DIR/log.file
touch $LOG_FILE
echo -n 01234567890123456789 > $DATA_EXTEND_FILE
echo -n 01234567890123456789 > $LOG_DATA
tss2 provision
tss2 createnv --path=$NV_PATH --type="noDa, pcr" --size=0 --authValue=""
tss2 nvextend --nvPath=$NV_PATH --data=$DATA_EXTEND_FILE --logData=$LOG_DATA
echo "tss2 nvextend with EMPTY_FILE data" # Expected to succeed
tss2 nvextend --nvPath=$NV_PATH --data=$EMPTY_FILE --logData=$LOG_DATA
echo "tss2 nvextend with BIG_FILE data" # Expected to fail
expect <<EOF
spawn sh -c "tss2 nvextend --nvPath=$NV_PATH --data=$BIG_FILE \
--logData=$LOG_DATA 2> $LOG_FILE"
set ret [wait]
if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
set file [open $LOG_FILE r]
set log [read \$file]
close $file
send_user "[lindex \$log]\n"
exit 1
}
EOF
if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
echo "Error: AddressSanitizer triggered."
cat $LOG_FILE
exit 1
fi
echo "tss2 nvextend with EMPTY_FILE logData" # Expected to fail
expect <<EOF
spawn sh -c "tss2 nvextend --nvPath=$NV_PATH --data=$DATA_EXTEND_FILE \
--logData=$EMPTY_FILE 2> $LOG_FILE"
set ret [wait]
if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
set file [open $LOG_FILE r]
set log [read \$file]
close $file
send_user "[lindex \$log]\n"
exit 1
}
EOF
if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
echo "Error: AddressSanitizer triggered."
cat $LOG_FILE
exit 1
fi
echo "tss2 nvextend with BIG_FILE logData" # Expected to fail
expect <<EOF
spawn sh -c "tss2 nvextend --nvPath=$NV_PATH --data=$DATA_EXTEND_FILE0 \
--logData=$BIG_FILE 2> $LOG_FILE"
set ret [wait]
if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
set file [open $LOG_FILE r]
set log [read \$file]
close $file
send_user "[lindex \$log]\n"
exit 1
}
EOF
if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
echo "Error: AddressSanitizer triggered."
cat $LOG_FILE
exit 1
fi
tss2 nvread --nvPath=$NV_PATH --data=$DATA_READ_FILE --logData=$READ_LOG_DATA
if [ ! -f $READ_LOG_DATA ]; then
echo "No log data returned"
exit 1
fi
expect <<EOF
# Try with missing nvPath
spawn tss2 nvextend --data=$DATA_EXTEND_FILE --logData=$LOG_DATA
set ret [wait]
if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
Command has not failed as expected\n"
exit 1
}
EOF
expect <<EOF
# Try with missing data
spawn tss2 nvextend --nvPath=$NV_PATH --logData=$LOG_DATA
set ret [wait]
if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
Command has not failed as expected\n"
exit 1
}
EOF
expect <<EOF
# Try with multiple stdin
spawn tss2 nvextend --nvPath=$NV_PATH --data=- --logData=-
set ret [wait]
if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
Command has not failed as expected\n"
exit 1
}
EOF
expect <<EOF
# Try with multiple stdin
spawn tss2 nvextend --nvPath $NV_PATH --data - --logData -
set ret [wait]
if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
Command has not failed as expected\n"
exit 1
}
EOF
exit 0
|