blob: b45294ef42d0ea19a77057d70e61922a7eb64f61 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/bin/bash
set -e
test_eml() {
message="$1"
shift
diff -u "$message.out" <(./email-print-mime-structure "$@" <"$message.eml")
}
for eml in tests/email-print-mime-structure/*.eml; do
base="${eml%%.eml}"
pgpkey="$base.pgpkey"
p12key="$base.p12"
if [ -e "$pgpkey" ]; then
printf "Testing %s (PGPy)\n" "${eml##*/}"
test_eml "$base" --pgpkey "$pgpkey"
testgpghome=$(mktemp -d)
printf "Testing %s (GnuPG PGP/MIME)\n" "${eml##*/}"
gpg --homedir="$testgpghome" --batch --quiet --import <"$pgpkey"
GNUPGHOME="$testgpghome" test_eml "$base" --use-gpg-agent
rm -rf "$testgpghome"
elif [ -e "$p12key" ]; then
printf "Testing %s (OpenSSL)\n" "${eml##*/}"
grep -v ^- < "$p12key" | base64 -d | \
openssl pkcs12 -nocerts -nodes -passin pass: -passout pass: -out "$base.pemkey"
test_eml "$base" --cmskey "$base.pemkey"
rm -f "$base.pemkey"
testgpghome=$(mktemp -d)
printf "Testing %s (GnuPG S/MIME)\n" "${eml##*/}"
gpgsm --pinentry-mode=loopback --passphrase-fd 4 4<<<'' --homedir="$testgpghome" --batch --quiet --import <"$p12key"
GNUPGHOME="$testgpghome" test_eml "$base" --use-gpg-agent
rm -rf "$testgpghome"
else
printf "Testing %s\n" "${eml##*/}"
test_eml "$base"
fi
done
|