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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
// $Id$
//
// A pictoral attempt to explain how key rollover works.
digraph step0 {
rotate=90; size="11,8.5"; splines=true; ratio=fill;
alice [ shape = record, label = "{Issuer key whatever|Subject key Alice}" ];
bob1 [ shape = record, label = "{Issuer key Alice|Subject key Bob1}" ];
carol1 [ shape = record, label = "{Issuer key Bob1|Subject key Carol}" ];
claire1 [ shape = record, label = "{Issuer key Bob1|Subject key Claire}" ];
charlie1 [ shape = record, label = "{Issuer key Bob1|Subject key Charlie}" ];
dave [ shape = record, label = "{Issuer key Carol|Subject key Dave}" ];
danny [ shape = record, label = "{Issuer key Carol|Subject key Danny}" ];
dale [ shape = record, label = "{Issuer key Claire|Subject key Dale}" ];
donald [ shape = record, label = "{Issuer key Claire|Subject key Donald}" ];
doug [ shape = record, label = "{Issuer key Charlie|Subject key Doug}" ];
drew [ shape = record, label = "{Issuer key Charlie|Subject key Drew}" ];
alice -> bob1;
bob1 -> carol1;
bob1 -> claire1;
bob1 -> charlie1;
carol1 -> dave;
carol1 -> danny;
claire1 -> dale;
claire1 -> donald;
charlie1 -> doug;
charlie1 -> drew;
}
digraph step1 {
rotate=90; size="11,8.5"; splines=true; ratio=fill;
alice [ shape = record, label = "{Issuer key whatever|Subject key Alice}" ];
bob1 [ shape = record, label = "{Issuer key Alice|Subject key Bob1}" ];
bob2 [ shape = record, label = "{Issuer key Alice|Subject key Bob2}" ];
carol1 [ shape = record, label = "{Issuer key Bob1|Subject key Carol}" ];
claire1 [ shape = record, label = "{Issuer key Bob1|Subject key Claire}" ];
charlie1 [ shape = record, label = "{Issuer key Bob1|Subject key Charlie}" ];
dave [ shape = record, label = "{Issuer key Carol|Subject key Dave}" ];
danny [ shape = record, label = "{Issuer key Carol|Subject key Danny}" ];
dale [ shape = record, label = "{Issuer key Claire|Subject key Dale}" ];
donald [ shape = record, label = "{Issuer key Claire|Subject key Donald}" ];
doug [ shape = record, label = "{Issuer key Charlie|Subject key Doug}" ];
drew [ shape = record, label = "{Issuer key Charlie|Subject key Drew}" ];
alice -> bob1;
alice -> bob2;
bob1 -> carol1;
bob1 -> claire1;
bob1 -> charlie1;
carol1 -> dave;
carol1 -> danny;
claire1 -> dale;
claire1 -> donald;
charlie1 -> doug;
charlie1 -> drew;
}
digraph step2 {
rotate=90; size="11,8.5"; splines=true; ratio=fill;
alice [ shape = record, label = "{Issuer key whatever|Subject key Alice}" ];
bob1 [ shape = record, label = "{Issuer key Alice|Subject key Bob1}" ];
bob2 [ shape = record, label = "{Issuer key Alice|Subject key Bob2}" ];
carol1 [ shape = record, label = "{Issuer key Bob1|Subject key Carol}" ];
carol2 [ shape = record, label = "{Issuer key Bob2|Subject key Carol}" ];
claire1 [ shape = record, label = "{Issuer key Bob1|Subject key Claire}" ];
claire2 [ shape = record, label = "{Issuer key Bob2|Subject key Claire}" ];
charlie1 [ shape = record, label = "{Issuer key Bob1|Subject key Charlie}" ];
charlie2 [ shape = record, label = "{Issuer key Bob2|Subject key Charlie}" ];
dave [ shape = record, label = "{Issuer key Carol|Subject key Dave}" ];
danny [ shape = record, label = "{Issuer key Carol|Subject key Danny}" ];
dale [ shape = record, label = "{Issuer key Claire|Subject key Dale}" ];
donald [ shape = record, label = "{Issuer key Claire|Subject key Donald}" ];
doug [ shape = record, label = "{Issuer key Charlie|Subject key Doug}" ];
drew [ shape = record, label = "{Issuer key Charlie|Subject key Drew}" ];
alice -> bob1;
alice -> bob2;
bob1 -> carol1;
bob1 -> claire1;
bob1 -> charlie1;
bob2 -> carol2;
bob2 -> claire2;
bob2 -> charlie2;
carol1 -> dave;
carol1 -> danny;
claire1 -> dale;
claire1 -> donald;
charlie1 -> doug;
charlie1 -> drew;
carol2 -> dave;
carol2 -> danny;
claire2 -> dale;
claire2 -> donald;
charlie2 -> doug;
charlie2 -> drew;
}
digraph step3 {
rotate=90; size="11,8.5"; splines=true; ratio=fill;
alice [ shape = record, label = "{Issuer key whatever|Subject key Alice}" ];
bob2 [ shape = record, label = "{Issuer key Alice|Subject key Bob2}" ];
carol2 [ shape = record, label = "{Issuer key Bob2|Subject key Carol}" ];
claire2 [ shape = record, label = "{Issuer key Bob2|Subject key Claire}" ];
charlie2 [ shape = record, label = "{Issuer key Bob2|Subject key Charlie}" ];
dave [ shape = record, label = "{Issuer key Carol|Subject key Dave}" ];
danny [ shape = record, label = "{Issuer key Carol|Subject key Danny}" ];
dale [ shape = record, label = "{Issuer key Claire|Subject key Dale}" ];
donald [ shape = record, label = "{Issuer key Claire|Subject key Donald}" ];
doug [ shape = record, label = "{Issuer key Charlie|Subject key Doug}" ];
drew [ shape = record, label = "{Issuer key Charlie|Subject key Drew}" ];
alice -> bob2;
bob2 -> carol2;
bob2 -> claire2;
bob2 -> charlie2;
carol2 -> dave;
carol2 -> danny;
claire2 -> dale;
claire2 -> donald;
charlie2 -> doug;
charlie2 -> drew;
}
// Local Variables:
// compile-command: "dot -Tps2 key-rollover.dot | ps2pdf - key-rollover.pdf"
// End:
|