]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tests/crypto.sh
CVE-2017-13687/CHDLC: Improve bounds and length checks.
[tcpdump] / tests / crypto.sh
index 93d1adc9d09df87421e1c734b771c47aa3e4e6d6..dd852bab5547f2f12d4f158851fa8d7455bde3ca 100755 (executable)
@@ -1,18 +1,98 @@
 #!/bin/sh
 
+exitcode=0
+
 # Only attempt OpenSSL-specific tests when compiled with the library.
 
 if grep '^#define HAVE_LIBCRYPTO 1$' ../config.h >/dev/null
 then
-       ./TESTonce esp1 02-sunrise-sunset-esp.pcap esp1.out '-t -E "[email protected] 3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
-       ./TESTonce esp2 08-sunrise-sunset-esp2.pcap esp2.out '-t -E "[email protected] 3des-cbc-hmac96:0x43434545464649494a4a4c4c4f4f51515252545457575840,[email protected] 3des-cbc-hmac96:0x434545464649494a4a4c4c4f4f5151525254545757584043"'
-       ./TESTonce esp3 02-sunrise-sunset-esp.pcap esp1.out '-t -E "3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
-       ./TESTonce esp4 08-sunrise-sunset-esp2.pcap esp2.out '-t -E "file esp-secrets.txt"'
-       ./TESTonce esp5 08-sunrise-sunset-aes.pcap esp5.out '-t -E "file esp-secrets.txt"'
-       ./TESTonce espudp1 espudp1.pcap espudp1.out '-nnnn -t -E "file esp-secrets.txt"'
-       ./TESTonce ikev2pI2 ikev2pI2.pcap ikev2pI2.out '-t -E "file ikev2pI2-secrets.txt" -v -v -v -v'
+       passed=`cat .passed`
+       failed=`cat .failed`
+       if ./TESTonce esp1 02-sunrise-sunset-esp.pcap esp1.out '-E "[email protected] 3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
+       then
+               passed=`expr $passed + 1`
+               echo $passed >.passed
+       else
+               failed=`expr $failed + 1`
+               echo $failed >.failed
+               exitcode=1
+       fi
+       if ./TESTonce esp2 08-sunrise-sunset-esp2.pcap esp2.out '-E "[email protected] 3des-cbc-hmac96:0x43434545464649494a4a4c4c4f4f51515252545457575840,[email protected] 3des-cbc-hmac96:0x434545464649494a4a4c4c4f4f5151525254545757584043"'
+       then
+               passed=`expr $passed + 1`
+               echo $passed >.passed
+       else
+               failed=`expr $failed + 1`
+               echo $failed >.failed
+               exitcode=1
+       fi
+       if ./TESTonce esp3 02-sunrise-sunset-esp.pcap esp1.out '-E "3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
+       then
+               passed=`expr $passed + 1`
+               echo $passed >.passed
+       else
+               failed=`expr $failed + 1`
+               echo $failed >.failed
+               exitcode=1
+       fi
+       # Reading the secret(s) from a file does not work with Capsicum.
+       if grep '^#define HAVE_CAPSICUM 1$' ../config.h >/dev/null
+       then
+               FORMAT='    %-35s: TEST SKIPPED (compiled w/Capsicum)\n'
+               printf "$FORMAT" esp4
+               printf "$FORMAT" esp5
+               printf "$FORMAT" espudp1
+               printf "$FORMAT" ikev2pI2
+               printf "$FORMAT" isakmp4
+       else
+               if ./TESTonce esp4 08-sunrise-sunset-esp2.pcap esp2.out '-E "file esp-secrets.txt"'
+               then
+                       passed=`expr $passed + 1`
+                       echo $passed >.passed
+               else
+                       failed=`expr $failed + 1`
+                       echo $failed >.failed
+                       exitcode=1
+               fi
+               if ./TESTonce esp5 08-sunrise-sunset-aes.pcap esp5.out '-E "file esp-secrets.txt"'
+               then
+                       passed=`expr $passed + 1`
+                       echo $passed >.passed
+               else
+                       failed=`expr $failed + 1`
+                       echo $failed >.failed
+                       exitcode=1
+               fi
+               if ./TESTonce espudp1 espudp1.pcap espudp1.out '-nnnn -E "file esp-secrets.txt"'
+               then
+                       passed=`expr $passed + 1`
+                       echo $passed >.passed
+               else
+                       failed=`expr $failed + 1`
+                       echo $failed >.failed
+                       exitcode=1
+               fi
+               if ./TESTonce ikev2pI2 ikev2pI2.pcap ikev2pI2.out '-E "file ikev2pI2-secrets.txt" -v -v -v -v'
+               then
+                       passed=`expr $passed + 1`
+                       echo $passed >.passed
+               else
+                       failed=`expr $failed + 1`
+                       echo $failed >.failed
+                       exitcode=1
+               fi
+               if ./TESTonce isakmp4 isakmp4500.pcap isakmp4.out '-E "file esp-secrets.txt"'
+               then
+                       passed=`expr $passed + 1`
+                       echo $passed >.passed
+               else
+                       failed=`expr $failed + 1`
+                       echo $failed >.failed
+                       exitcode=1
+               fi
+       fi
 else
-       FORMAT='    %-30s: TEST SKIPPED (compiled w/o OpenSSL)\n'
+       FORMAT='    %-35s: TEST SKIPPED (compiled w/o OpenSSL)\n'
        printf "$FORMAT" esp1
        printf "$FORMAT" esp2
        printf "$FORMAT" esp3
@@ -20,4 +100,7 @@ else
        printf "$FORMAT" esp5
        printf "$FORMAT" espudp1
        printf "$FORMAT" ikev2pI2
+       printf "$FORMAT" isakmp4
 fi
+
+exit $exitcode