diff --git a/.gitignore b/.gitignore index c8ac704d51407c2dcf8f4b852d67ec70f19aa010..21e66f74a1a12e4080fe67089bba55bc84b697f7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ bin/* *results* */.udb-cMix-session blob* +junk* + # Vim swap files *.swp *.swo diff --git a/basice2e/clients.goldoutput/client25.txt b/basice2e/clients.goldoutput/client25.txt new file mode 100644 index 0000000000000000000000000000000000000000..d05dd8b1be845f51df490de609c5e07b16516386 --- /dev/null +++ b/basice2e/clients.goldoutput/client25.txt @@ -0,0 +1,27 @@ +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Josh25 to myself, without E2E Encryption +Message received: Hello from Josh25 to myself, without E2E Encryption +Received 1 +Authentication channel request from: AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD +Received 0 +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Received 5 +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Sending to AtBThtTr7VCMJkY5BjfCjrQ/RhuQ3KOpsmNAWH55zIgD: Hello from Josh25, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Message received: Hello from Jonah26, with E2E Encryption +Received 5 diff --git a/basice2e/clients.goldoutput/client26.txt b/basice2e/clients.goldoutput/client26.txt new file mode 100644 index 0000000000000000000000000000000000000000..85a98b6184edd05e0f97d76f9495c52f33d52b5f --- /dev/null +++ b/basice2e/clients.goldoutput/client26.txt @@ -0,0 +1,25 @@ +WARNING: unsafe channel creation enabled +Adding authenticated channel for: sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD +Received 0 +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Received 5 +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Sending to sCvJTLxvVZKglcBfTcQu0830+OhbF5MS8uOGw7v8ewsD: Hello from Jonah26, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Message received: Hello from Josh25, with E2E Encryption +Received 5 diff --git a/basice2e/permissioning.yaml b/basice2e/permissioning.yaml index 3b904d38efb9947f40201b0999a534fb21ca00a6..5b72acb20d7bd7401eabf81c6b058d3caaf4d89c 100644 --- a/basice2e/permissioning.yaml +++ b/basice2e/permissioning.yaml @@ -34,6 +34,10 @@ allowLocalIPs: true disableNDFPruning: true permissiveIPChecking: true +# How long rounds will be tracked by gateways. Rounds (and messages as an extension) +# prior to this period are not guaranteed to be delivered to clients. +# Expects duration in"h". (Defaults to 1 weeks (168 hours) +messageRetentionLimit: "168h" # "Location of the user discovery contact file. udContactPath: "results/udContact.bin" diff --git a/basice2e/run.sh b/basice2e/run.sh index 1fccf2ebc7e0413df734a4186d342b8b5ec68d59..72f802545f303afcc942fccb90ba0f7807f75e1e 100755 --- a/basice2e/run.sh +++ b/basice2e/run.sh @@ -392,6 +392,8 @@ PIDVAL2=$! echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL2 + +########### KEEP COMMENTED OUT, UNTIL TESTS ARE FIXED ################################ # echo "CREATING USERS for REKEY TEST..." # JAKEID=$(../bin/client init -s blob100 -l $CLIENTOUT/client100.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/Jake100-contact.bin -v $DEBUGLEVEL) # NIAMHID=$(../bin/client init -s blob101 -l $CLIENTOUT/client101.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/Niamh101-contact.bin -v $DEBUGLEVEL) @@ -466,6 +468,94 @@ wait $PIDVAL2 # wait $PIDVAL # wait $PIDVAL2 +################### Do not uncomment above, it was meant to be commented out + +# Proto user test: client25 and client26 generate a proto user JSON file and close. +# Both clients are restarted and load from their respective proto user files and attempt to send. + +# Generate contact and proto user file for client25 +echo "TESTING PROTO USER FILE..." + +CLIENTCMD="timeout 20s ../bin/client -l $CLIENTOUT/client25.log -s blob11420 --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/josh25-contact.bin --protoUserOut $CLIENTOUT/client25Proto.json " +eval $CLIENTCMD >> $CLIENTOUT/client25.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL + +# Generate contact and proto user file for client 26 +CLIENTCMD="timeout 20s ../bin/client -l $CLIENTOUT/client26.log -s blob11421 --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/jonah26-contact.bin --protoUserOut $CLIENTOUT/client26Proto.json" +eval $CLIENTCMD >> $CLIENTOUT/client26.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL + +# Clients will now load from the protoUser file and write to session +CLIENTCMD="timeout 60s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client25.log -s blob25 --protoUserPath $CLIENTOUT/client25Proto.json" +eval $CLIENTCMD >> $CLIENTOUT/client25.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +CLIENTCMD="timeout 60s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client26.log -s blob26 --protoUserPath $CLIENTOUT/client26Proto.json" +eval $CLIENTCMD >> $CLIENTOUT/client26.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL2" +wait $PIDVAL +wait $PIDVAL2 + +# Continue with E2E testing with session files loaded from proto +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client25.log -s blob25 --writeContact $CLIENTOUT/josh25-contact.bin --unsafe -m \"Hello from Josh25 to myself, without E2E Encryption\" " +eval $CLIENTCMD >> $CLIENTOUT/client25.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client26.log -s blob26 --writeContact $CLIENTOUT/jonah26-contact.bin --destfile $CLIENTOUT/josh25-contact.bin --send-auth-request --sendCount 0 --receiveCount 0" +eval $CLIENTCMD >> $CLIENTOUT/client26.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL" + +while [ ! -s $CLIENTOUT/jonah26-contact.bin ]; do + sleep 1 + echo -n "." +done + +# Print IDs to console +TMPID=$(cat $CLIENTOUT/client25.log | grep -a "User\:" | awk -F' ' '{print $5}' | head -1) +JOSHID=${TMPID} +echo "JOSH ID: $JOSHID" +TMPID=$(cat $CLIENTOUT/client26.log | grep -a "User\:" | awk -F' ' '{print $5}' | head -1) +JONAHID=${TMPID} +echo "JONAH ID: $JONAHID" + +## Client 25 will now wait for client 26's E2E Auth channel request and confirm +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client25.log -s blob25 --destfile $CLIENTOUT/jonah26-contact.bin --sendCount 0 --receiveCount 0" +eval $CLIENTCMD >> $CLIENTOUT/client25.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL +wait $PIDVAL2 +# + +# Send E2E messages with written sessions +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client25.log -s blob25 --destid b64:$JONAHID --sendCount 5 --receiveCount 5 -m \"Hello from Josh25, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client25.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client26.log -s blob26 --destid b64:$JOSHID --sendCount 5 --receiveCount 5 -m \"Hello from Jonah26, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client26.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL +wait $PIDVAL2 +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client25.log -s blob25 --destid b64:$JONAHID --sendCount 5 --receiveCount 5 -m \"Hello from Josh25, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client25.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client26.log -s blob26 --destid b64:$JOSHID --sendCount 5 --receiveCount 5 -m \"Hello from Jonah26, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client26.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL +wait $PIDVAL2 + # Single-use test: client53 sends message to client52; client52 responds with # the same message in the set number of message parts