You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

59 rivejä
2.0 KiB

  1. #!/usr/bin/env bash
  2. set -xeuo pipefail
  3. if [ "$1" = "INSTALL" ]; then
  4. # INSTALL <client> [<revision>]
  5. if [ -n "${3:-}" ]; then
  6. REVISION="--build-arg REVISION=$3"
  7. else
  8. REVISION=""
  9. fi
  10. docker build $REVISION -t tls-tris:$2 _dev/$2
  11. elif [ "$1" = "RUN" ]; then
  12. # RUN <client>
  13. IP=$(docker inspect -f '{{ .NetworkSettings.IPAddress }}' tris-localserver)
  14. docker run --rm tls-tris:$2 $IP:1443 | tee output.txt # RSA
  15. grep "Hello TLS 1.3" output.txt | grep -v "resumed" | grep -v "0-RTT"
  16. grep "Hello TLS 1.3" output.txt | grep "resumed" | grep -v "0-RTT"
  17. docker run --rm tls-tris:$2 $IP:2443 | tee output.txt # ECDSA
  18. grep "Hello TLS 1.3" output.txt | grep -v "resumed" | grep -v "0-RTT"
  19. grep "Hello TLS 1.3" output.txt | grep "resumed" | grep -v "0-RTT"
  20. elif [ "$1" = "0-RTT" ]; then
  21. # 0-RTT <client>
  22. IP=$(docker inspect -f '{{ .NetworkSettings.IPAddress }}' tris-localserver)
  23. docker run --rm tls-tris:$2 $IP:3443 | tee output.txt # rejecting 0-RTT
  24. grep "Hello TLS 1.3" output.txt | grep "resumed" | grep -v "0-RTT"
  25. docker run --rm tls-tris:$2 $IP:4443 | tee output.txt # accepting 0-RTT
  26. grep "Hello TLS 1.3" output.txt | grep "resumed" | grep "0-RTT"
  27. docker run --rm tls-tris:$2 $IP:5443 | tee output.txt # confirming 0-RTT
  28. grep "Hello TLS 1.3" output.txt | grep "resumed" | grep "0-RTT confirmed"
  29. elif [ "$1" = "INSTALL-CLIENT" ]; then
  30. cd "$(dirname "$0")/tris-testclient"
  31. ./build.sh
  32. elif [ "$1" = "RUN-CLIENT" ]; then
  33. # RUN-CLIENT <target-server>
  34. cd "$(dirname "$0")/tris-testclient"
  35. servername="$2-localserver"
  36. docker run --rm --detach --name "$servername" \
  37. --entrypoint /server.sh \
  38. --expose 1443 --expose 2443 \
  39. tls-tris:$2
  40. IP=$(docker inspect -f '{{ .NetworkSettings.IPAddress }}' "$servername")
  41. # Obtain information and stop server on exit
  42. trap 'docker ps -a; docker logs "$servername"; docker kill "$servername"' EXIT
  43. docker run --rm tris-testclient -ecdsa=false $IP:1443 # RSA
  44. docker run --rm tris-testclient -rsa=false $IP:2443 # ECDSA
  45. # TODO maybe check server logs for expected output?
  46. fi