diff options
author | Gerald Combs <gerald@wireshark.org> | 2012-03-30 17:51:54 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2012-03-30 17:51:54 +0000 |
commit | 1bf7a61ac02c772c9399aff87a44843aba90366d (patch) | |
tree | c00103f0c05eb604dfb18ef09cbcc842ea705495 /test/suite-decryption.sh | |
parent | 17ce01b48d3dff111bc6c1333855865ea9ccb004 (diff) |
Add a decryption test suite along with an SSL decryption test. Move our
growing collection of capture files to a subdirectory.
svn path=/trunk/; revision=41852
Diffstat (limited to 'test/suite-decryption.sh')
-rwxr-xr-x | test/suite-decryption.sh | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/test/suite-decryption.sh b/test/suite-decryption.sh new file mode 100755 index 0000000000..e8a0babdf0 --- /dev/null +++ b/test/suite-decryption.sh @@ -0,0 +1,108 @@ +#!/bin/bash +# +# Test decryption capabilities of the Wireshark tools +# +# $Id$ +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 2005 Ulf Lamping +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + + +# common exit status values +EXIT_OK=0 +EXIT_COMMAND_LINE=1 +EXIT_ERROR=2 + +UAT_FILES=" + ssl_keys +" + +TEST_KEYS_DIR="$PWD/keys/" +if [ "$WS_SYSTEM" == "Windows" ] ; then + TEST_KEYS_DIR="`cygpath -w $TEST_KEYS_DIR`" +fi + +#TS_ARGS="-Tfields -e frame.number -e frame.time_epoch -e frame.time_delta" +TS_DC_ARGS="" +TS_DC_ENV="HOME=${TEST_HOME}" + +DIFF_OUT=./diff-output.txt + +# We create UATs in the source directory. Add a unique ID so we can avoid +# deleting files we shouldn't. +DC_ID="suite-decryption.sh-$$" + +# SSL +decryption_step_ssl() { + env $TS_DC_ENV $TSHARK $TS_DC_ARGS -Tfields -e http.request.uri -r captures/rsasnakeoil2.cap -R http | grep favicon.ico > /dev/null 2>&1 + RETURNVALUE=$? + if [ ! $RETURNVALUE -eq $EXIT_OK ]; then + test_step_failed "Failed to decrypt SSL" + return + fi + test_step_ok +} + + +tshark_decryption_suite() { + # Microsecond pcap direct read is used as the baseline. + test_step_add "SSL Decryption" decryption_step_ssl +} + +decryption_cleanup_step() { + for UAT in $UAT_FILES ; do + grep $DC_ID ../$UAT > /dev/null 2>&1 + RETURNVALUE=$? + if [ $RETURNVALUE -eq $EXIT_OK ]; then + rm -f ../$UAT + fi + done + rm -rf fakehome +} + +decryption_prep_step() { + decryption_cleanup_step + mkdir fakehome + + for UAT in $UAT_FILES ; do + if [ -f ../$UAT ] ; then + test_remark_add "../$UAT exists. One or more tests may fail." + else + echo "# Created by $DC_ID" > ../$UAT + sed -e "s:%test_keys_dir%:${TEST_KEYS_DIR}:" < ./config/$UAT.tmpl >> ../$UAT + fi + done +} + +decryption_suite() { + test_step_set_pre decryption_prep_step + test_step_set_post decryption_cleanup_step + test_suite_add "TShark decryption" tshark_decryption_suite +} + +# Editor modelines +# +# Local Variables: +# sh-basic-offset: 8 +# tab-width: 8 +# indent-tabs-mode: t +# End: +# +# ex: set shiftwidth=8 tabstop=8 noexpandtab: +# :indentSize=8:tabSize=8:noTabs=false: |