chiark / gitweb /
server/, keys/: Support Bernstein's X25519 and Hamburg's X448 algorithms.
[tripe] / server / tests.at
index df77d7184da5c1eb539595f7fa1e402f8c1b6da9..f3f7c2e4c5d9f25f5dbe802dcbc2becc9c6d441c 100644 (file)
@@ -58,7 +58,7 @@ m4_define([WITH_STRACE],
     mkdir -p strace-hack.$1/
     (ulimit -c hard >/dev/null 2>&1
      sh -c 'cd strace-hack.$1; exec "$[]@"' - \
-       strace -f -o../$1.trace \
+       strace -ff -tt -v -s1024 -o../$1.trace \
        sh -c 'cd ..; exec "$[]@"' - \
        $2)
     ;;
@@ -229,11 +229,12 @@ m4_define([COMMS_SLIP], [
 m4_define([AWAIT_KXDONE], [
 
   ## Ignore some reports caused by races.
-  for d in $1 $3; do
+  for i in $1!$4 $3!$2; do
+    d=${i%!*} o=${i#*!}
     TRIPECTL -d$d WARN test PUSH
-    TRIPECTL -d$d WARN test IGNORE WARN KX $2 incorrect cookie
-    TRIPECTL -d$d WARN test IGNORE WARN KX $2 unexpected pre-challenge
-    TRIPECTL -d$d WARN test IGNORE WARN KX $2 unexpected challenge
+    TRIPECTL -d$d WARN test IGNORE WARN KX $o incorrect cookie
+    TRIPECTL -d$d WARN test IGNORE WARN KX $o unexpected pre-challenge
+    TRIPECTL -d$d WARN test IGNORE WARN KX $o unexpected challenge
   done
 
   ## Watch for the key-exchange completion announcement in the background.
@@ -245,7 +246,7 @@ m4_define([AWAIT_KXDONE], [
       case "$[]1:$[]2:$[]3" in
        OK::) ;;
        NOTE:KXDONE:$4) break ;;
-       NOTE:*) ;;
+       NOTE:* | TRACE:* | WARN:*) ;;
        *) exit 63 ;;
       esac
     done
@@ -390,6 +391,7 @@ for k in alpha beta-new; do
     ESTABLISH([alice], [not-alice], [-key alice],
              [bob], [bob], [])
   ])
+  for p in alice bob; do rm -rf $p.$k; mv $p $p.$k; done
 done
 
 AT_CLEANUP
@@ -472,12 +474,16 @@ WITH_2TRIPES([alice], [bob], [-nslip], [-talice], [-tbob], [
 
   ## Set up the evil proxy.
   alicemitm=24516 bobmitm=14016
-  MITM -kalice/keyring.pub >mitm.out 2>mitm.err \
-    peer:alice:$alicemitm:127.0.0.1:$(cat alice/port) \
-    peer:bob:$bobmitm:127.0.0.1:$(cat bob/port) \
-    filt:drop:5 filt:send& mitmpid=$!
-  strace -omitm.trace -p$mitmpid& mitmtrace=$!
-  trap 'kill $mitmpid $mitmtrace; exit 127' EXIT INT QUIT TERM HUP
+  mknod pipe-mitmpid p
+  WITH_STRACE([mitm],
+             [sh -c 'echo $$ >pipe-mitmpid; exec "$@"' - \
+              MITM -kalice/keyring.pub >mitm.out 2>mitm.err \
+                peer:alice:$alicemitm:127.0.0.1:$(cat alice/port) \
+                peer:bob:$bobmitm:127.0.0.1:$(cat bob/port) \
+                filt:drop:5 filt:send])&
+  read mitmpid <pipe-mitmpid
+  trap 'kill $mitmpid; exit 127' EXIT INT QUIT TERM HUP
+  exec 3>&-
 
   ## Try to establish keys anyway.
   AWAIT_KXDONE([alice], [alice], [bob], [bob], [
@@ -491,8 +497,6 @@ WITH_2TRIPES([alice], [bob], [-nslip], [-talice], [-tbob], [
 
   ## Tear down the MITM proxy.
   kill $mitmpid
-  wait $mitmpid
-  wait $mitmtrace
 ])
 
 AT_CLEANUP
@@ -582,12 +586,12 @@ WITH_3TRIPES([alice], [bob], [carol], [-nslip -Tmx],
   for p in $princs; do TRIPECTL -d$p RELOAD; done
 
   AT_DATA([algs-alpha], [dnl
-kx-group=ec kx-group-order-bits=256 kx-group-elt-bits=512
-hash=rmd160 mgf=rmd160-mgf hash-sz=20
-bulk-transform=v0 bulk-overhead=22
-cipher=blowfish-cbc cipher-keysz=20 cipher-blksz=8
-cipher-data-limit=67108864
-mac=rmd160-hmac mac-keysz=20 mac-tagsz=10
+kx-group=curve25519 kx-group-order-bits=252 kx-group-elt-bits=255
+hash=sha256 mgf=sha256-mgf hash-sz=32
+bulk-transform=naclbox bulk-overhead=20
+cipher=chacha20 cipher-keysz=32
+mac=poly1305 mac-tagsz=16
+cipher-data-limit=2147483648
 ])
 
   AT_DATA([algs-beta-old], [dnl
@@ -595,8 +599,8 @@ kx-group=prime kx-group-order-bits=160 kx-group-elt-bits=1023
 hash=rmd160 mgf=rmd160-mgf hash-sz=20
 bulk-transform=v0 bulk-overhead=22
 cipher=blowfish-cbc cipher-keysz=20 cipher-blksz=8
-cipher-data-limit=67108864
 mac=rmd160-hmac mac-keysz=20 mac-tagsz=10
+cipher-data-limit=67108864
 ])
 
   AT_DATA([algs-beta-new], [dnl
@@ -604,9 +608,9 @@ kx-group=ec kx-group-order-bits=161 kx-group-elt-bits=320
 hash=rmd160 mgf=rmd160-mgf hash-sz=20
 bulk-transform=iiv bulk-overhead=14
 cipher=blowfish-cbc cipher-keysz=20 cipher-blksz=8
-cipher-data-limit=67108864
 mac=rmd160-hmac mac-keysz=20 mac-tagsz=10
 blkc=blowfish blkc-keysz=20 blkc-blksz=8
+cipher-data-limit=67108864
 ])
 
   cp algs-alpha expout;    AT_CHECK([TRIPECTL -dalice ALGS],,       [expout])