gpg: Fix false negatives in Ed25519 signature verification.
[gnupg.git] / tests / openpgp / quick-key-manipulation.test
1 #!/bin/sh
2 # Copyright 2016 Free Software Foundation, Inc.
3 # This file is free software; as a special exception the author gives
4 # unlimited permission to copy and/or distribute it, with or without
5 # modifications, as long as this notice is preserved.  This file is
6 # distributed in the hope that it will be useful, but WITHOUT ANY
7 # WARRANTY, to the extent permitted by law; without even the implied
8 # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
10 . $srcdir/defs.inc || exit 3
11
12 export PINENTRY_USER_DATA=test
13
14 alpha="Alpha <alpha@example.net>"
15 bravo="Bravo <bravo@example.net>"
16
17 $GPG --with-colons --with-fingerprint --list-secret-keys ="$alpha" &&
18     error "User ID '$alpha'exists when it should not!"
19 $GPG --with-colons --with-fingerprint --list-secret-keys ="$bravo" &&
20     error "User ID '$bravo' exists when it should not!"
21
22 #info verify that key creation works
23 $GPG --quick-gen-key "$alpha"  || \
24         error "failed to generate key"
25
26 fpr=$($GPG --with-colons --with-fingerprint --list-secret-keys ="$alpha" | \
27              grep '^fpr:' | cut -f10 -d: | head -n1)
28
29 $GPG --check-trustdb
30
31 cleanup() {
32     $GPG --batch --yes --delete-secret-key "0x$fpr"
33     $GPG --batch --yes --delete-key "0x$fpr"
34 }
35
36 count_uids_of_secret() {
37     if ! [ $($GPG --with-colons --list-secret-keys ="$1" | \
38                     grep -c '^uid:u:') = "$2" ] ; then
39         cleanup
40         error "wrong number of user IDs for '$1' after $3"
41     fi
42 }
43
44 count_uids_of_secret "$alpha" 1 "key generation"
45
46 #info verify that we can add a user ID
47 if ! $GPG --quick-adduid ="$alpha" "$bravo" ; then
48     cleanup
49     error "failed to add user id"
50 fi
51
52 $GPG --check-trustdb
53
54 count_uids_of_secret "$alpha" 2 "adding User ID"
55 count_uids_of_secret "$bravo" 2 "adding User ID"
56
57 #info verify that we can revoke a user ID
58 if ! $GPG --quick-revuid ="$bravo" "$alpha"; then
59     cleanup
60     error "failed to revoke user id"
61 fi
62
63 $GPG --check-trustdb
64
65 count_uids_of_secret "$bravo" 1 "revoking user ID"
66
67 cleanup
68
69 ! $GPG --with-colons --list-secret-keys ="$bravo" ||
70     error "key still exists when it should not!"