gpg: Remove all support for v3 keys and always create v4-signatures.
[gnupg.git] / tests / openpgp / defs.inc
1 # Definitions for the OpenPGP test scripts                     -*- sh -*-
2 # Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
3 #           2007, 2010 Free Software Foundation, Inc.
4 # This file is free software; as a special exception the author gives
5 # unlimited permission to copy and/or distribute it, with or without
6 # modifications, as long as this notice is preserved.  This file is
7 # distributed in the hope that it will be useful, but WITHOUT ANY
8 # WARRANTY, to the extent permitted by law; without even the implied
9 # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
11 #--------------------------------
12 #------ constants ---------------
13 #--------------------------------
14
15 usrname1="one@example.com"
16 usrpass1="def"
17 usrname2="two@example.com"
18 usrpass2=""
19 usrname3="three@example.com"
20 usrpass3=""
21
22
23 dsa_usrname1="pgp5"
24 # we use the sub key because we do not yet have the logic to to derive
25 # the first encryption key from a keyblock (I guess) (Well of course
26 # we have this by now and the notation below will lookup the primary
27 # first and then search for the encryption subkey.)
28 dsa_usrname2="0xCB879DE9"
29
30
31 plain_files="plain-1 plain-2 plain-3"
32 data_files="data-500 data-9000 data-32000 data-80000"
33 exp_files=""
34
35 # The testscripts expect the original language
36 LANG=
37 LANGUAGE=
38 LC_ALL=
39 LC_MESSAGES=
40
41 # Internal use.
42 defs_stop_on_error=no
43 defs_error_seen=no
44 defs_progress_active=no
45
46 #--------------------------------
47 #------ utility functions -------
48 #--------------------------------
49
50 progress_cancel () {
51     if [ x$defs_progress_active = xyes ]; then
52         echo
53         defs_progress_active=no
54     fi
55 }
56
57 fatal () {
58     progress_cancel
59     echo "$pgmname: fatal:" $* >&2
60     echo "$pgmname: fatal:" $* >&5
61     echo stop >gnupg-test.stop
62     exit 1;
63 }
64
65 error () {
66     progress_cancel
67     echo "$pgmname:" $* >&2
68     defs_error_seen=yes
69     echo "$pgmname:" $* >&5
70     if [ x$defs_stop_on_error != xyes ]; then
71       exit 1
72     fi
73 }
74
75 # Call this at the start of a test and resume_error at the end to keep
76 # on running all subtests without immediately exiting on error.
77 suspend_error () {
78    defs_stop_on_error=yes
79 }
80
81 resume_error () {
82     if [ x$defs_error_seen = xyes ]; then
83         exit 1
84     fi
85     defs_stop_on_error=no
86     defs_error_seen=no
87 }
88
89 info () {
90     progress_cancel
91     echo "$pgmname:" $* >&2
92     if [ -n "${verbose+set}" ]; then
93       echo "$pgmname:" $* >&5
94     fi
95 }
96
97 linefeed () {
98     echo >&2
99 }
100
101 echo_n_init=no
102 echo_n () {
103   if test "$echo_n_init" = "no"; then
104     if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
105       if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
106         echo_n_n=
107         echo_n_c='
108 '
109       else
110         echo_n_n='-n'
111         echo_n_c=
112       fi
113     else
114       echo_n_n=
115       echo_n_c='\c'
116     fi
117     echo_n_init=yes
118   fi
119   echo $echo_n_n "${1}$echo_n_c"
120 }
121
122
123 progress_end () {
124     if [ x$defs_progress_active = xyes ]; then
125         echo "<"
126         defs_progress_active=no
127     fi
128 }
129
130 progress () {
131     if [ x$defs_progress_active != xyes ]; then
132         echo_n "    > "
133         defs_progress_active=yes
134     fi
135     echo_n "$* "
136 }
137
138
139
140 #cleanup () {
141 #    rm $cleanup_files 2>/dev/null || true
142 #    echo "#empty" >./gpg.conf
143 #}
144
145
146 #add_cleanup () {
147 #    cleanup_files="$cleanup_files $*"
148 #}
149
150 have_pubkey_algo () {
151   if  $GPG --version | grep "Pubkey:.*$1" >/dev/null
152   then
153         true
154   else
155         false
156   fi
157 }
158
159 have_cipher_algo () {
160   if $GPG --version | grep "Cipher:.*$1" >/dev/null
161   then
162         true
163   else
164         false
165   fi
166 }
167
168 have_hash_algo () {
169   if $GPG --version | grep "Hash:.*$1" >/dev/null
170   then
171         true
172   else
173         false
174   fi
175 }
176
177 all_cipher_algos () {
178   $GPG --with-colons --list-config ciphername \
179        | sed 's/^cfg:ciphername://; s/;/ /g'
180 }
181
182 all_hash_algos () {
183   $GPG --with-colons --list-config digestname \
184        | sed 's/^cfg:digestname://; s/;/ /g'
185 }
186
187 set -e
188 pgmname=`basename $0`
189 #trap cleanup SIGHUP SIGINT SIGQUIT
190
191 [ -z "$srcdir" ] && fatal "not called from make"
192
193 #
194 if [ -f gnupg-test.stop ]; then
195     if [ $pgmname = "version.test" ]; then
196         rm gnupg-test.stop
197     else
198         # Skip the rest of the tests.
199         exit 77
200     fi
201 fi
202
203 # Always work in the current directory.  We set GNUPGHOME only if it
204 # has not been set already.  Usually it is set through the Makefile's
205 # TESTS_ENVIRONMENT macro.
206 if [ -z "$GNUPGHOME" ]; then
207   GNUPGHOME=`/bin/pwd`
208   export GNUPGHOME
209 elif [ "$GNUPGHOME" != `/bin/pwd` ]; then
210   echo "$pgmname: GNUPGHOME not set to the cwd" $* >&2
211   exit 1
212 fi
213
214 # We don't use GPG_AGENT_INFO anymore - better reset it.
215 unset GPG_AGENT_INFO
216
217 # (--no-permission-warning makes only sense on the commandline)
218 GPG="../../g10/gpg2 --no-permission-warning "
219 # (We may not use a relative name for gpg-agent.)
220 GPG_AGENT="$(cd ../../agent && /bin/pwd)/gpg-agent"
221 GPG_CONNECT_AGENT="../../tools/gpg-connect-agent"
222 GPGCONF="../../tools/gpgconf"
223 GPG_PRESET_PASSPHRASE="../../agent/gpg-preset-passphrase"
224 MKTDATA="../../tools/mk-tdata"
225 PINENTRY="$(cd $srcdir && /bin/pwd)/pinentry.sh"
226 # Default to empty passphrase for pinentry.sh
227 PINENTRY_USER_DATA=
228
229 # If --check-trustdb is not an option, GPG has been build without
230 # trust model support.  Thus we can't use --always-trust and some
231 # other options.
232 if $GPG --dump-options | grep '^--check-trustdb$' >/dev/null ; then
233   opt_always="--always-trust"
234 else
235   opt_always=
236 fi
237
238 # Make sure we have a valid option files even with VPATH builds.
239 for f in gpg.conf gpg-agent.conf ; do
240   if [ -f ./$f ]; then
241     :
242   elif [ -f $srcdir/$f.tmpl ]; then
243     cat $srcdir/$f.tmpl >$f
244     case "$f" in
245       gpg.conf)
246         [ -n "${opt_always}" ] && echo "no-auto-check-trustdb" >>"$f"
247         echo "agent-program $GPG_AGENT" >>"$f"
248         echo "allow-weak-digest-algos" >>"$f"
249
250       ;;
251       gpg-agent.conf)
252         echo "pinentry-program $PINENTRY" >>"$f"
253         ;;
254     esac
255   fi
256 done
257
258 if [ "${verbose:-0}" -gt "1" ]; then
259   exec 5>/dev/null
260 else
261   echo "Test: $pgmname"                  >  ${pgmname}.log
262   echo "GNUPGHOME=$GNUPGHOME"            >> ${pgmname}.log
263   exec 5>&2 2>>${pgmname}.log
264 fi
265 :
266 # end