g10: Be more careful when checking cross signatures.
[gnupg.git] / tests / openpgp / tofu / cross-sigs / README
1 # How I generate the keys and messages to verify:
2
3 # Generate and export two non-conflicting keys.
4 gpg --quick-gen-key 'Spy Cow <spy@cow.com>'
5 gpg --quick-gen-key 'Spy R. Cow <spy@cow.de>'
6
7 KEYIDA=1938C3A0E4674B6C217AC0B987DB2814EC38277E
8 KEYIDB=DC463A16E42F03240D76E8BA8B48C6BD871C2247
9
10 for KEYID in $KEYIDA $KEYIDB
11 do
12   gpg --export $KEYID  > tofu-$KEYID.gpg
13   gpg --export-secret-keys $KEYID  > tofu-$KEYID-secret.gpg
14 done
15
16 # Sign some data.
17 echo foo | gpg --default-key $KEYIDA -s > tofu-$KEYIDA-1.txt
18 echo foo | gpg --default-key $KEYIDB -s > tofu-$KEYIDB-1.txt
19
20 # Again, but with an issuer.
21 echo foo | gpg --default-key "<spy@cow.com>" -s > tofu-$KEYIDA-2.txt
22 echo foo | gpg --default-key "<spy@cow.de>" -s > tofu-$KEYIDB-2.txt
23
24 # Have A sign B and vice versa.
25 gpg --default-key $KEYIDA --quick-sign $KEYIDB
26 gpg --default-key $KEYIDB --quick-sign $KEYIDA
27
28 gpg --export $KEYIDA  > tofu-$KEYIDA-2.gpg
29 gpg --export $KEYIDB  > tofu-$KEYIDB-2.gpg
30
31 # Cause A and B to conflict.
32 gpg --quick-adduid $KEYIDB 'Spy R. Cow <spy@cow.com>'
33 gpg --export $KEYIDB  > tofu-$KEYIDB-3.gpg
34
35 echo foo | gpg --default-key "<spy@cow.com>" -s > tofu-$KEYIDA-3.txt
36 echo foo | gpg --default-key "<spy@cow.com>" -s > tofu-$KEYIDB-3.txt
37
38 # Have A sign B's conflicting user id.
39 gpg --default-key $KEYIDA --quick-sign $KEYIDB
40 gpg --export $KEYIDB  > tofu-$KEYIDB-4.gpg
41
42 exit 0
43
44 # In a new directory (so the keys are not ultimately trusted).
45
46 D=~/neal/work/gpg/test
47 echo 'trust-model tofu+pgp' > gpg.conf
48 gpg --import $D/tofu-$KEYIDA.gpg
49 gpg --import $D/tofu-$KEYIDB.gpg
50 gpg -k
51
52 gpg --verify $D/tofu-$KEYIDA-1.txt
53 gpg --verify $D/tofu-$KEYIDB-1.txt
54 # With an issuer.
55 gpg --verify $D/tofu-$KEYIDA-2.txt
56 gpg --verify $D/tofu-$KEYIDB-2.txt
57
58 # Import the cross signatures.
59 gpg --import $D/tofu-$KEYIDA-2.gpg
60 gpg --import $D/tofu-$KEYIDB-2.gpg
61 gpg -k
62
63 gpg --verify $D/tofu-$KEYIDA-1.txt
64 gpg --verify $D/tofu-$KEYIDB-1.txt
65 # With an issuer.
66 gpg --verify $D/tofu-$KEYIDA-2.txt
67 gpg --verify $D/tofu-$KEYIDB-2.txt
68
69
70 gpg --status-fd=1 --batch --verify $D/tofu-$KEYIDA-3.txt | grep TRUST_UNDEFINED
71 gpg --status-fd=1 --batch --verify $D/tofu-$KEYIDB-3.txt | grep TRUST_UNDEFINED
72
73 # Import the conflicting user id.
74 gpg --import $D/tofu-$KEYIDB-3.gpg
75 gpg -k
76
77 # Import the cross signature, which should remove the conflict.
78 gpg --import $D/tofu-$KEYIDB-4.gpg
79 gpg -k