2007-10-25 11:06:21 +02:00
|
|
|
# Definitions for the OpenPGP test scripts -*- sh -*-
|
|
|
|
# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
|
2010-05-12 11:49:28 +02:00
|
|
|
# 2007, 2010 Free Software Foundation, Inc.
|
2007-10-25 11:06:21 +02:00
|
|
|
# This file is free software; as a special exception the author gives
|
|
|
|
# unlimited permission to copy and/or distribute it, with or without
|
|
|
|
# modifications, as long as this notice is preserved. This file is
|
|
|
|
# distributed in the hope that it will be useful, but WITHOUT ANY
|
|
|
|
# WARRANTY, to the extent permitted by law; without even the implied
|
|
|
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
2006-08-21 22:20:23 +02:00
|
|
|
|
|
|
|
#--------------------------------
|
|
|
|
#------ constants ---------------
|
|
|
|
#--------------------------------
|
|
|
|
|
|
|
|
# Note that usrpass1 is also used in Makefile.am
|
|
|
|
usrname1="one"
|
|
|
|
usrpass1="def"
|
|
|
|
usrname2="two"
|
|
|
|
usrpass2=""
|
|
|
|
usrname3="three"
|
|
|
|
usrpass3=""
|
|
|
|
|
|
|
|
|
|
|
|
dsa_usrname1="pgp5"
|
|
|
|
# we use the sub key because we do not yet have the logic to
|
|
|
|
# to derive the first encryption key from a keyblock (I guess)
|
|
|
|
dsa_usrname2="0xCB879DE9"
|
|
|
|
|
|
|
|
dsa_keyrings="--keyring ./pubring.pkr --secret-keyring ./secring.skr"
|
|
|
|
|
|
|
|
|
|
|
|
plain_files="plain-1 plain-2 plain-3"
|
|
|
|
data_files="data-500 data-9000 data-32000 data-80000"
|
|
|
|
exp_files=""
|
|
|
|
|
|
|
|
# The testscripts expect the original language
|
|
|
|
LANG=
|
|
|
|
LANGUAGE=
|
|
|
|
LC_ALL=
|
|
|
|
LC_MESSAGES=
|
|
|
|
|
|
|
|
# Internal use.
|
|
|
|
defs_stop_on_error=no
|
|
|
|
defs_error_seen=no
|
2012-04-05 20:32:42 +02:00
|
|
|
defs_progress_active=no
|
2006-08-21 22:20:23 +02:00
|
|
|
|
|
|
|
#--------------------------------
|
|
|
|
#------ utility functions -------
|
|
|
|
#--------------------------------
|
|
|
|
|
2012-04-05 20:32:42 +02:00
|
|
|
progress_cancel () {
|
|
|
|
if [ x$defs_progress_active = xyes ]; then
|
|
|
|
echo
|
|
|
|
defs_progress_active=no
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2006-08-21 22:20:23 +02:00
|
|
|
fatal () {
|
2012-04-05 20:32:42 +02:00
|
|
|
progress_cancel
|
2006-08-21 22:20:23 +02:00
|
|
|
echo "$pgmname: fatal:" $* >&2
|
|
|
|
echo "$pgmname: fatal:" $* >&5
|
|
|
|
exit 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
error () {
|
2012-04-05 20:32:42 +02:00
|
|
|
progress_cancel
|
2006-08-21 22:20:23 +02:00
|
|
|
echo "$pgmname:" $* >&2
|
|
|
|
defs_error_seen=yes
|
|
|
|
echo "$pgmname:" $* >&5
|
|
|
|
if [ x$defs_stop_on_error != xyes ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# Call this at the start of a test and resume_error at the end to keep
|
|
|
|
# on running all subtests without immediately exiting on error.
|
|
|
|
suspend_error () {
|
|
|
|
defs_stop_on_error=yes
|
|
|
|
}
|
|
|
|
|
|
|
|
resume_error () {
|
|
|
|
if [ x$defs_error_seen = xyes ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
defs_stop_on_error=no
|
|
|
|
defs_error_seen=no
|
|
|
|
}
|
|
|
|
|
|
|
|
info () {
|
2012-04-05 20:32:42 +02:00
|
|
|
progress_cancel
|
2006-08-21 22:20:23 +02:00
|
|
|
echo "$pgmname:" $* >&2
|
|
|
|
if [ -n "${verbose+set}" ]; then
|
|
|
|
echo "$pgmname:" $* >&5
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
linefeed () {
|
|
|
|
echo >&2
|
|
|
|
}
|
|
|
|
|
|
|
|
echo_n_init=no
|
|
|
|
echo_n () {
|
|
|
|
if test "$echo_n_init" = "no"; then
|
|
|
|
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
|
|
|
|
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
|
|
|
|
echo_n_n=
|
|
|
|
echo_n_c='
|
|
|
|
'
|
|
|
|
else
|
|
|
|
echo_n_n='-n'
|
|
|
|
echo_n_c=
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo_n_n=
|
|
|
|
echo_n_c='\c'
|
|
|
|
fi
|
|
|
|
echo_n_init=yes
|
|
|
|
fi
|
|
|
|
echo $echo_n_n "${1}$echo_n_c"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2012-04-05 20:32:42 +02:00
|
|
|
progress_end () {
|
|
|
|
if [ x$defs_progress_active = xyes ]; then
|
|
|
|
echo "<"
|
|
|
|
defs_progress_active=no
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
progress () {
|
|
|
|
if [ x$defs_progress_active != xyes ]; then
|
|
|
|
echo_n " > "
|
|
|
|
defs_progress_active=yes
|
|
|
|
fi
|
|
|
|
echo_n "$* "
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 22:20:23 +02:00
|
|
|
#cleanup () {
|
|
|
|
# rm $cleanup_files 2>/dev/null || true
|
|
|
|
# echo "#empty" >./gpg.conf
|
|
|
|
#}
|
|
|
|
|
|
|
|
|
|
|
|
#add_cleanup () {
|
|
|
|
# cleanup_files="$cleanup_files $*"
|
|
|
|
#}
|
|
|
|
|
|
|
|
have_pubkey_algo () {
|
|
|
|
if ../../g10/gpg2 --homedir . --version | grep "Pubkey:.*$1" >/dev/null
|
|
|
|
then
|
|
|
|
true
|
|
|
|
else
|
|
|
|
false
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
have_cipher_algo () {
|
|
|
|
if ../../g10/gpg2 --homedir . --version | grep "Cipher:.*$1" >/dev/null
|
|
|
|
then
|
|
|
|
true
|
|
|
|
else
|
|
|
|
false
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
have_hash_algo () {
|
|
|
|
if ../../g10/gpg2 --homedir . --version | grep "Hash:.*$1" >/dev/null
|
|
|
|
then
|
|
|
|
true
|
|
|
|
else
|
|
|
|
false
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2007-10-25 11:06:21 +02:00
|
|
|
all_cipher_algos () {
|
2009-06-05 15:54:08 +02:00
|
|
|
../../g10/gpg2 --homedir . --with-colons --list-config ciphername | sed 's/^cfg:ciphername://; s/;/ /g'
|
2007-10-25 11:06:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
all_hash_algos () {
|
2009-06-05 15:54:08 +02:00
|
|
|
../../g10/gpg2 --homedir . --with-colons --list-config digestname | sed 's/^cfg:digestname://; s/;/ /g'
|
2007-10-25 11:06:21 +02:00
|
|
|
}
|
|
|
|
|
2006-08-21 22:20:23 +02:00
|
|
|
set -e
|
|
|
|
pgmname=`basename $0`
|
|
|
|
#trap cleanup SIGHUP SIGINT SIGQUIT
|
|
|
|
|
|
|
|
[ -z "$srcdir" ] && fatal "not called from make"
|
|
|
|
|
2010-05-11 19:52:00 +02:00
|
|
|
# Make sure we have a valid option file even with VPATH builds.
|
2010-05-12 11:49:28 +02:00
|
|
|
for f in gpg.conf ; do
|
2010-05-11 19:52:00 +02:00
|
|
|
if [ -f ./$f ]; then
|
|
|
|
:
|
|
|
|
elif [ -f $srcdir/$f.tmpl ]; then
|
|
|
|
cat $srcdir/$f.tmpl >$f
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2010-05-12 11:49:28 +02:00
|
|
|
# Always work in the current directory. We set GNUPGHOME only if it
|
|
|
|
# has not been set already. Usually it is set through the Makefile's
|
|
|
|
# TESTS_ENVIRONMENT macro.
|
|
|
|
if [ -z "$GNUPGHOME" ]; then
|
|
|
|
GNUPGHOME=`pwd`
|
|
|
|
export GNUPGHOME
|
|
|
|
elif [ "$GNUPGHOME" != `pwd` ]; then
|
|
|
|
echo "$pgmname: GNUPGHOME not set to the cwd" $* >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
2010-05-11 19:52:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
GPG="../../g10/gpg2 --no-permission-warning "
|
2006-08-21 22:20:23 +02:00
|
|
|
|
2010-05-12 11:49:28 +02:00
|
|
|
echo "Test: $pgmname" > ${pgmname}.log
|
|
|
|
echo "GNUPGHOME=$GNUPGHOME" >> ${pgmname}.log
|
|
|
|
echo "GPG_AGENT_INFO=$GPG_AGENT_INFO" >> ${pgmname}.log
|
|
|
|
exec 5>&2 2>>${pgmname}.log
|
2006-08-21 22:20:23 +02:00
|
|
|
|
|
|
|
:
|
|
|
|
# end
|