tcpdump/tests/crypto.sh
Denis Ovsienko d72adb9406 Fix a bug in test scripts (exposed in GH #613).
crypto.sh ran its tests as expected but only indicated a failure
upstream when the last test failed. Add necessary checks and modify
the other "complex" tests in a similar manner to make sure the same
bug does not creep into these scripts later. Fix some indentation
while at it.
2017-07-13 21:18:23 +01:00

49 lines
1.9 KiB
Bash
Executable File

#!/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 '-E "0x12345678@192.1.2.45 3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
[ $? -eq 0 ] || exitcode=1
./TESTonce esp2 08-sunrise-sunset-esp2.pcap esp2.out '-E "0x12345678@192.1.2.45 3des-cbc-hmac96:0x43434545464649494a4a4c4c4f4f51515252545457575840,0xabcdabcd@192.0.1.1 3des-cbc-hmac96:0x434545464649494a4a4c4c4f4f5151525254545757584043"'
[ $? -eq 0 ] || exitcode=1
./TESTonce esp3 02-sunrise-sunset-esp.pcap esp1.out '-E "3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
[ $? -eq 0 ] || exitcode=1
# 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
./TESTonce esp4 08-sunrise-sunset-esp2.pcap esp2.out '-E "file esp-secrets.txt"'
[ $? -eq 0 ] || exitcode=1
./TESTonce esp5 08-sunrise-sunset-aes.pcap esp5.out '-E "file esp-secrets.txt"'
[ $? -eq 0 ] || exitcode=1
./TESTonce espudp1 espudp1.pcap espudp1.out '-nnnn -E "file esp-secrets.txt"'
[ $? -eq 0 ] || exitcode=1
./TESTonce ikev2pI2 ikev2pI2.pcap ikev2pI2.out '-E "file ikev2pI2-secrets.txt" -v -v -v -v'
[ $? -eq 0 ] || exitcode=1
./TESTonce isakmp4 isakmp4500.pcap isakmp4.out '-E "file esp-secrets.txt"'
[ $? -eq 0 ] || exitcode=1
fi
else
FORMAT=' %-35s: TEST SKIPPED (compiled w/o OpenSSL)\n'
printf "$FORMAT" esp1
printf "$FORMAT" esp2
printf "$FORMAT" esp3
printf "$FORMAT" esp4
printf "$FORMAT" esp5
printf "$FORMAT" espudp1
printf "$FORMAT" ikev2pI2
printf "$FORMAT" isakmp4
fi
exit $exitcode