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
|
#!/bin/bash
TW1=$PWD/tw1
TW2=$PWD/tw2
# Check for tree binary
TREE=$(which tree || echo "ls -1R")
echo "# Cleanup"
if [ -d $TW1 ]; then rm -r $TW1; fi
if [ -d $TW2 ]; then rm -r $TW2; fi
KEY=$(sed -e 's/New user key: //' user.key)
echo "# User key: $KEY"
echo
echo "# Create first taskwarrior client"
mkdir $TW1
echo "data.location=$TW1" > $TW1/rc
echo "taskd.server=localhost:53589" >> $TW1/rc
echo "taskd.credentials=Public/USER/$KEY" >> $TW1/rc
echo "taskd.certificate=$TW1/client.cert.pem" >> $TW1/rc
echo "taskd.key=$TW1/client.key.pem" >> $TW1/rc
echo "taskd.ca=$TW1/ca.cert.pem" >> $TW1/rc
echo "taskd.trust=strict" >> $TW1/rc
#echo "taskd.trust=ignore hostname" >> $TW1/rc
#echo "taskd.trust=allow all" >> $TW1/rc
echo "confirmation=off" >> $TW1/rc
echo "verbose=sync" >> $TW1/rc
cp ../../pki/client.cert.pem $TW1
cp ../../pki/client.key.pem $TW1
cp ../../pki/ca.cert.pem $TW1
echo
${TREE} $TW1
echo
echo "# Create second taskwarrior client"
mkdir $TW2
echo "data.location=$TW2" > $TW2/rc
echo "taskd.server=localhost:53589" >> $TW2/rc
echo "taskd.credentials=Public/USER/$KEY" >> $TW2/rc
echo "taskd.certificate=$TW2/client.cert.pem" >> $TW2/rc
echo "taskd.key=$TW2/client.key.pem" >> $TW2/rc
echo "taskd.ca=$TW2/ca.cert.pem" >> $TW2/rc
echo "taskd.trust=strict" >> $TW2/rc
#echo "taskd.trust=ignore hostname" >> $TW2/rc
#echo "taskd.trust=allow all" >> $TW2/rc
echo "confirmation=off" >> $TW2/rc
echo "verbose=sync" >> $TW2/rc
cp ../../pki/client.cert.pem $TW2
cp ../../pki/client.key.pem $TW2
cp ../../pki/ca.cert.pem $TW2
echo
${TREE} $TW2
echo
echo "# Create negative testing requests"
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.0
echo "# Payload"
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n" > bad.10
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\r\r\r" > bad.11
echo "# Protocol"
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v10\n\n\n" > bad.20
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\n\n\n" > bad.21
echo "# Client"
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nclient: NOPE\nprotocol: v1\n\n\n" > bad.30
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nclient:\nprotocol: v1\n\n\n" > bad.31
printf "type: sync\norg: Public\nuser: USER\nkey: $KEY\nprotocol: v1\n\n\n" > bad.32
echo "# Type"
printf "type: Sync\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.40
printf "type: sync \norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.41
printf "type:sync\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.42
printf "type: \norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.43
printf "type:\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.44
printf "\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.45
printf "org: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.46
echo "# Org"
printf "type: sync\norg: Foo\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.50
printf "type: sync\norg:\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.51
printf "type: sync\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.52
echo "# User"
printf "type: sync\norg: Public\nuser: USERX\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.60
printf "type: sync\norg: Public\nuser: USE\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.60
printf "type: sync\norg: Public\nuser:\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.60
printf "type: sync\norg: Public\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.60
echo "# Key"
printf "type: sync\norg: Public\nuser: USER\nkey: 00000000-0000-0000-0000-000000000000\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.70
printf "type: sync\norg: Public\nuser: USER\nkey: 0000000-000-000-000-00000000000\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.71
printf "type: sync\norg: Public\nuser: USER\nkey:0\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.72
printf "type: sync\norg: Public\nuser: USER\nkey:\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.73
printf "type: sync\norg: Public\nuser: USER\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.74
echo "# Garbage"
printf "type: sync\norg: Public\nuser: USER\nhello: there\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > bad.80
printf "\n\n\n" > bad.81
printf "Ice cream and candy floss. Parents with dosh." > bad.82
printf "" > bad.83
echo "# Stats"
printf "type: statistics\norg: Public\nuser: USER\nkey: $KEY\nclient: taskd 1.0.0\nprotocol: v1\n\n\n" > stats.0
|