diff --git a/basice2e/- b/basice2e/- new file mode 100644 index 0000000000000000000000000000000000000000..708356a9b79451af3980e07822fe17d788f18d90 --- /dev/null +++ b/basice2e/- @@ -0,0 +1 @@ +<xxc(2)0Tn65dcaNnvkZNbGnn9EhuW3qD0D6sDnGgWGJoqxGtoDrgZ7Ugdw/BAr6cdsGnfdtW48mvt+1hEE+unorwuFjzHdCBpXqddAtM5fPczC3sEP8SNdtVxN3BZ3tTXntFTMgklZPEjIL0P5+GXsyPA2BwAbMHlG6/UQ69kdwC0s/qgz7bAcXxhilk/RnopTVYHAoyqSkm43EpJLbVRX6jg6JyDqg3M8QhEOGKbrBwfxmWFosroBP2gUWJAtR3vDHaVjLku4hbeVPHDIJJlCN94Y0YDjpRTg788ad6B3gSN759gPuvKK1mL+ilB6U7tl/XDvidTCjUUqbEZcLQIthfAHmMjyn6AKFTPPigqCkFHOJyYXvhbvZOri7cag8dSqCvXfvgoOnzXAyLf1Yvy7+5e4bqAwZGY3bGrLxPGTz1yxoKKH3+TRMXdXXGb0tRrnAePXbUwrn1i4lnmiUTdNioP2BswViBZZy246fqJpICWG8oEO6E+SS/qPL9rdux7Dxr88hgwndHoKNEW9Q6lPDx+TqV7/Pq8W6droEOmEhn11KfgWXNlZkBfP7QNMyhPcdfjDFYPA4Dqt5GuC8QAAAgA7f2vtFu2mhRGc1XtaLU/Z0g==xxc> \ No newline at end of file diff --git a/basice2e/clients.goldoutput/client200.txt b/basice2e/clients.goldoutput/client200.txt new file mode 100644 index 0000000000000000000000000000000000000000..832c11da1630aacc2aa81275562d5695160e6a53 --- /dev/null +++ b/basice2e/clients.goldoutput/client200.txt @@ -0,0 +1,3 @@ +Established connection server, begin listening... +Established connection with client +ConnectionServer heard message "Hello 200 from 201, using connections" diff --git a/basice2e/clients.goldoutput/client201.txt b/basice2e/clients.goldoutput/client201.txt new file mode 100644 index 0000000000000000000000000000000000000000..79da732c81ee4e5c421ba2a539420a337da51d31 --- /dev/null +++ b/basice2e/clients.goldoutput/client201.txt @@ -0,0 +1,8 @@ +Loading ephemerally +Sending connection request +Established connection with server +Sent message "Hello 200 from 201, using connections" to connection partner. +Loading ephemerally +Sending connection request +Established connection with server +Disconnected from partner diff --git a/basice2e/clients.goldoutput/client202.txt b/basice2e/clients.goldoutput/client202.txt new file mode 100644 index 0000000000000000000000000000000000000000..6b73f59e8cebed3a305b2bb8ba8bd2fa7fa84c39 --- /dev/null +++ b/basice2e/clients.goldoutput/client202.txt @@ -0,0 +1,5 @@ +Established connection server, begin listening... +Established authenticated connection with client +AuthServer heard message "Hello 202 from 203, using connections" +Established authenticated connection with client + diff --git a/basice2e/clients.goldoutput/client203.txt b/basice2e/clients.goldoutput/client203.txt new file mode 100644 index 0000000000000000000000000000000000000000..6608551fb458585fba1d72ed801f5a3cc3dadb59 --- /dev/null +++ b/basice2e/clients.goldoutput/client203.txt @@ -0,0 +1,8 @@ +Loading ephemerally +Sending connection request +Established authenticated connection with server. +Sent message "Hello 202 from 203, using connections" to connection partner. +Loading ephemerally +Sending connection request +Established authenticated connection with server. +Disconnected from partner diff --git a/basice2e/run.sh b/basice2e/run.sh index 73b04e78a2247d0891b853ed379bdc798126d9ca..f692582288fedc460da2cd74faabdc2809100a98 100755 --- a/basice2e/run.sh +++ b/basice2e/run.sh @@ -1,6 +1,9 @@ #!/bin/bash # NOTE: This is verbose on purpose. +################################################################################ +## Initial Set Up & Clean Up of Past Runs +################################################################################ set -e rm -fr results.bak || true @@ -37,12 +40,18 @@ CLIENTGROUPOPTS="--password hello --waitTimeout 600 --ndf results/ndf.json -v $D CLIENTFILETRANSFEROPTS="--password hello --waitTimeout 600 --ndf results/ndf.json -v $DEBUGLEVEL" CLIENTREKEYOPTS="--password hello --ndf results/ndf.json --verify-sends --waitTimeout 600 --unsafe-channel-creation -v $DEBUGLEVEL" CLIENTBACKUPOPTS="--password hello --ndf results/ndf.json -v $DEBUGLEVEL" +CONNECTIONOPTS="--password hello --waitTimeout 360 --ndf results/ndf.json -v $DEBUGLEVEL" mkdir -p $SERVERLOGS mkdir -p $GATEWAYLOGS mkdir -p $CLIENTOUT mkdir -p $CLIENTCLEAN +################################################################################ +## Network Set Up +################################################################################ + + if [ "$NETWORKENTRYPOINT" == "betanet" ] then NETWORKENTRYPOINT=$(sort -R betanet.txt | head -1) @@ -138,6 +147,10 @@ runclients() { done } +############################################################################### +# Test Basic Client +############################################################################### + if [ "$NETWORKENTRYPOINT" == "localhost:8440" ] then @@ -222,6 +235,10 @@ then fi +############################################################################### +# Test Sending E2E +############################################################################### + # Non-precanned E2E user messaging echo "SENDING E2E MESSAGES TO NEW USERS..." CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --writeContact $CLIENTOUT/rick42-contact.bin --unsafe -m \"Hello from Rick42 to myself, without E2E Encryption\"" @@ -277,6 +294,10 @@ echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL wait $PIDVAL2 +############################################################################### +# Test Renegotiation +############################################################################### + echo "TESTING RENEGOTIATION..." CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -s blob43 --destfile $CLIENTOUT/rick42-contact.bin --send-auth-request --sendCount 0 --receiveCount 0" eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true & @@ -327,6 +348,10 @@ wait $PIDVAL wait $PIDVAL2 echo "END RENEGOTIATION" +############################################################################### +# Test Deleting Contacts & Requests +############################################################################### + echo "DELETING CONTACT FROM CLIENT..." CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --delete-channel --destfile $CLIENTOUT/ben43-contact.bin --sendCount 0 --receiveCount 0" eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true & @@ -370,6 +395,9 @@ echo "$CLIENTCMD -- $PIDVAL" echo "NOTE: The command above causes an EXPECTED failure to confirm authentication channel!" wait $PIDVAL2 +############################################################################### +# Test Simultaneous Auth +############################################################################### echo "CREATING USERS for SIMULTANEOUSAUTH TEST..." JONOID=$(../bin/client init -s blob85 -l $CLIENTOUT/client85.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/jono85-contact.bin -v $DEBUGLEVEL) @@ -405,6 +433,9 @@ echo "$CLIENTCMD -- $PIDVAL2" wait $PIDVAL1 wait $PIDVAL2 +############################################################################### +# Test Rekey +############################################################################### 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) @@ -454,6 +485,9 @@ echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL wait $PIDVAL2 +############################################################################### +# Test Historical Rounds +############################################################################### echo "FORCING HISTORICAL ROUNDS..." FH1ID=$(../bin/client init -s blob35 -l $CLIENTOUT/client35.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/FH1-contact.bin -v $DEBUGLEVEL) @@ -484,6 +518,10 @@ echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL wait $PIDVAL2 +############################################################################### +# Test Back Up & Restore +############################################################################### + echo "START BACKUP AND RESTORE..." CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client120.log -s blob120 --force-legacy --writeContact $CLIENTOUT/client120-contact.bin --unsafe -m \"Hello from Client120 to myself, without E2E Encryption\"" eval $CLIENTCMD >> $CLIENTOUT/client120.txt || true & @@ -571,6 +609,9 @@ wait $PIDVAL2 echo "END BACKUP AND RESTORE..." +############################################################################### +# Test Proto User +############################################################################### # 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. @@ -657,6 +698,9 @@ echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL wait $PIDVAL2 +############################################################################### +# Test Single Use +############################################################################### # Single-use test: client53 sends message to client52; client52 responds with # the same message in the set number of message parts @@ -683,6 +727,9 @@ echo "$CLIENTCMD -- $PIDVAL1" wait $PIDVAL1 wait $PIDVAL2 +############################################################################### +# Test User Discovery +############################################################################### if [ "$NETWORKENTRYPOINT" == "localhost:8440" ] then @@ -769,6 +816,10 @@ then wait $PIDVAL fi +############################################################################### +# Test Group Chat +############################################################################### + echo "TESTING GROUP CHAT..." # Create authenticated channel between client 80 and 81 CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client80.log -s blob80 --writeContact $CLIENTOUT/client80-contact.bin --unsafe -m \"Hello from contact 80 to myself, without E2E Encryption\"" @@ -958,6 +1009,9 @@ wait $PIDVAL3 echo "GROUP CHAT FINISHED!" +############################################################################### +# Test File Transfer +############################################################################### echo "TESTING FILE TRANSFER..." @@ -1006,6 +1060,122 @@ wait $PIDVAL1 wait $PIDVAL2 echo "FILE TRANSFER FINISHED..." + +############################################################################### +# Test connections +############################################################################### + +echo "TESTING CONNECTIONS..." +echo "Testing Ephemeral Initialization..." +# Initiate server +CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob200 $CONNECTIONOPTS --writeContact $CLIENTOUT/client200-server.bin -l $CLIENTOUT/client200.log --startServer --serverTimeout 2m" +eval $CLIENTCMD > $CLIENTOUT/client200.txt 2>&1 || true & +PIDVAL1=$! +echo "$CLIENTCMD -- $PIDVAL1" +echo "Sleeping to ensure connection server instantiation" +sleep 5 +# Initiate client and send message to server +CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob201 --connect $CLIENTOUT/client200-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client201.log -m \"Hello 200 from 201, using connections\" --receiveCount 0" +eval $CLIENTCMD > $CLIENTOUT/client201.txt 2>&1 || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL2" +wait $PIDVAL2 + +# Disconnect +CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob201 $CONNECTIONOPTS -l $CLIENTOUT/client201.log --connect $CLIENTOUT/client200-server.bin --disconnect" +eval $CLIENTCMD >> $CLIENTOUT/client201.txt 2>&1 || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL2" +wait $PIDVAL2 +wait $PIDVAL1 +echo "Ephemeral Test Complete." + + +# TODO: TEST NON-EPHEMERAL CODE-PATH WHEN SUPPORTED +#echo "Testing Non-Ephemeral Initialization..." +## Initiate server +#CLIENTCMD="timeout 240s ../bin/client connection -s blob200 $CONNECTIONOPTS --writeContact $CLIENTOUT/client200-server.bin -l $CLIENTOUT/client200.log --startServer --serverTimeout 2m" +#eval $CLIENTCMD > $CLIENTOUT/client200.txt 2>&1 || true & +#PIDVAL1=$! +#echo "$CLIENTCMD -- $PIDVAL1" +#echo "Sleeping to ensure connection server instantiation" +#sleep 5 +## Initiate client and send message to server +#CLIENTCMD="timeout 240s ../bin/client connection -s blob201 --connect $CLIENTOUT/client200-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client201.log -m \"Hello 200 from 201, using connections\" --receiveCount 0" +#eval $CLIENTCMD > $CLIENTOUT/client201.txt 2>&1 || true & +#PIDVAL2=$! +#echo "$CLIENTCMD -- $PIDVAL2" +#wait $PIDVAL2 +# +## Disconnect +#CLIENTCMD="timeout 240s ../bin/client connection -s blob201 $CONNECTIONOPTS -l $CLIENTOUT/client201.log --connect $CLIENTOUT/client200-server.bin --disconnect" +#eval $CLIENTCMD >> $CLIENTOUT/client201.txt 2>&1 || true & +#PIDVAL2=$! +#echo "$CLIENTCMD -- $PIDVAL2" +#wait $PIDVAL2 +#wait $PIDVAL1 +#echo "Non-Ephemeral Test Complete." +# + +echo "CONNECTION TESTS FINISHED" + +############################################################################### +# Test authenticated connections +############################################################################### +echo "TESTING AUTHENTICATED CONNECTIONS..." +echo "Testing Ephemeral Initialization..." +# Initiate server +CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob202 --authenticated $CONNECTIONOPTS --writeContact $CLIENTOUT/client202-server.bin -l $CLIENTOUT/client202.log --startServer --serverTimeout 2m" +eval $CLIENTCMD > $CLIENTOUT/client202.txt 2>&1 || true & +PIDVAL1=$! +echo "$CLIENTCMD -- $PIDVAL1" +echo "Sleeping to ensure connection server instantiation" +sleep 5 + +# Initiate client and send message to server +CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob203 --authenticated --connect $CLIENTOUT/client202-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client203.log -m \"Hello 202 from 203, using connections\" --receiveCount 0" +eval $CLIENTCMD > $CLIENTOUT/client203.txt 2>&1 || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL2" +wait $PIDVAL2 + +# Disconnect +CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob203 --authenticated $CONNECTIONOPTS -l $CLIENTOUT/client203.log --connect $CLIENTOUT/client202-server.bin --disconnect" +eval $CLIENTCMD >> $CLIENTOUT/client203.txt 2>&1 || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL2" +wait $PIDVAL2 +wait $PIDVAL1 +echo "Ephemeral test complete." + +# TODO: TEST NON-EPHEMERAL CODE-PATH WHEN SUPPORTED +#echo "Testing Non-Ephemeral Initialization..." +## Initiate server +#CLIENTCMD="timeout 240s ../bin/client connection -s blob202 --authenticated $CONNECTIONOPTS --writeContact $CLIENTOUT/client202-server.bin -l $CLIENTOUT/client202.log --startServer --serverTimeout 2m" +#eval $CLIENTCMD > $CLIENTOUT/client202.txt 2>&1 || true & +#PIDVAL1=$! +#echo "$CLIENTCMD -- $PIDVAL1" +#echo "Sleeping to ensure connection server instantiation" +#sleep 5 +# +## Initiate client and send message to server +#CLIENTCMD="timeout 240s ../bin/client connection -s blob203 --authenticated --connect $CLIENTOUT/client202-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client203.log -m \"Hello 202 from 203, using connections\" --receiveCount 0" +#eval $CLIENTCMD > $CLIENTOUT/client203.txt 2>&1 || true & +#PIDVAL2=$! +#echo "$CLIENTCMD -- $PIDVAL2" +#wait $PIDVAL2 +# +## Disconnect +#CLIENTCMD="timeout 240s ../bin/client connection -s blob203 --authenticated $CONNECTIONOPTS -l $CLIENTOUT/client203.log --connect $CLIENTOUT/client202-server.bin --disconnect" +#eval $CLIENTCMD >> $CLIENTOUT/client203.txt 2>&1 || true & +#PIDVAL2=$! +#echo "$CLIENTCMD -- $PIDVAL2" +#wait $PIDVAL2 +#wait $PIDVAL1 +#echo "Non-Ephemeral Test Complete." + +echo "AUTHENTICATED CONNECTION TESTS FINISHED" + echo "TESTS EXITED SUCCESSFULLY, CHECKING OUTPUT..." diff --git a/basice2e/tmp b/basice2e/tmp new file mode 100644 index 0000000000000000000000000000000000000000..c45f321881aafc4553b70a8171a9a59247b3afae --- /dev/null +++ b/basice2e/tmp @@ -0,0 +1,8 @@ +Disconnected from partner +Established +Established +loading ephemerally +loading ephemerally +Sending connection request +Sending connection request +Sent message "Hello 202 from 203, using connections" to connection partner.