tests: replace binary GPG keyrings with ASCII-armored keys
[git] / t / lib-gpg.sh
1 #!/bin/sh
2
3 gpg_version=$(gpg --version 2>&1)
4 if test $? = 127; then
5         say "You do not seem to have gpg installed"
6 else
7         # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19
8         # the gpg version 1.0.6 didn't parse trust packets correctly, so for
9         # that version, creation of signed tags using the generated key fails.
10         case "$gpg_version" in
11         'gpg (GnuPG) 1.0.6'*)
12                 say "Your version of gpg (1.0.6) is too buggy for testing"
13                 ;;
14         *)
15                 # key generation info: gpg --homedir t/lib-gpg --gen-key
16                 # Type DSA and Elgamal, size 2048 bits, no expiration date.
17                 # Name and email: C O Mitter <committer@example.com>
18                 # No password given, to enable non-interactive operation.
19                 mkdir ./gpghome
20                 chmod 0700 ./gpghome
21                 GNUPGHOME="$(pwd)/gpghome"
22                 export GNUPGHOME
23                 gpg --homedir "${GNUPGHOME}" --import \
24                         "$TEST_DIRECTORY"/lib-gpg/keyring.gpg
25                 gpg --homedir "${GNUPGHOME}" --import-ownertrust \
26                         "$TEST_DIRECTORY"/lib-gpg/ownertrust
27                 test_set_prereq GPG
28                 if echo | gpg --homedir "${GNUPGHOME}" -b --rfc1991 >/dev/null 2>&1
29                 then
30                         test_set_prereq RFC1991
31                 fi
32                 ;;
33         esac
34 fi
35
36 sanitize_pgp() {
37         perl -ne '
38                 /^-----END PGP/ and $in_pgp = 0;
39                 print unless $in_pgp;
40                 /^-----BEGIN PGP/ and $in_pgp = 1;
41         '
42 }