-
Notifications
You must be signed in to change notification settings - Fork 0
/
gpg-overview.dot
97 lines (77 loc) · 3.66 KB
/
gpg-overview.dot
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
digraph gpg {
//----------------
// Default settigs
//----------------
fontname="Bitstream Vera Sans"
fontsize=8
graph [
nodesep=0.5
ranksep=1.5
ordering=out
]
node [
shape=record
style=filled
color=white
]
edge [
arrowhead=vee
labeldistance=1.5
]
{
node [
style=solid
color=black
]
"gpg"
"private keyring"
"public keyring"
}
"private key" -> "public key" [arrowhead=none, label="same hash as", constraint=false]
"private key" -> "private keyring" [arrowhead=diamond, taillabel="*", headlabel="*", constraint=false]
"public key" -> "public keyring" [arrowhead=diamond, taillabel="*", headlabel="*", constraint=false]
"gpg" -> "public keyring" [label="operates on"]
"gpg" -> "private keyring" [label="operates on"]
//
// Private key sub-graph
//
subgraph cluster_private {
style=filled
color=tomato
// Nodes
"private key" [label="{private key|+ hash : Key fingerprint\l}"]
"key data to private key" [label="", fixedsize="false", width=0, height=0, shape=none]
"private key to smart card" [label="", fixedsize="false", width=0, height=0, shape=none]
"smart card" [label="{smart card|+ serial : Smart card serial number\l}"]
"private key data" [label="key data"]
// Relations
"private key data" -> "key data to private key" [arrowhead=none, taillabel="1"]
"key data to private key" -> "private key" [arrowhead=diamond, headlabel="1"]
"private key" -> "private key to smart card" [arrowhead=none, taillabel="1"]
"private key to smart card" -> "smart card" [headlabel="1"]
"key data to private key" -> "private key to smart card" [arrowhead=none, style=dashed, label="{xor}"]
{ rank=same; "private key data" "smart card" }
{ rank=same; "private key to smart card" "key data to private key" }
}
//
// Public key sub-graph
//
subgraph cluster_public {
style=filled
color=lightblue
// Nodes
"public key" [label="{public key|+ hash : Key fingerprint\l+ created : Date created\l+ expires : Expiration date\l+ usage : One or more of certify, sign, encrypt and authenticate\l}"]
"signature" [label="{signature|+ hash : Hash of key that signed the uid\l+ policy : URL to policy description\l+ notation : Notation text\l}"]
"public key data" [label="key data"]
// Relations
"sub-key" -> "master key" [arrowhead=diamond, taillabel="*", headlabel="1"]
"uid" -> "master key" [arrowhead=diamond, taillabel="*", headlabel="1"]
"signature" -> "uid" [arrowhead=diamond, taillabel="*", headlabel="1"]
"master key" -> "public key" [arrowhead=onormal]
"sub-key" -> "public key" [arrowhead=onormal]
"e-mail uid" -> "uid" [arrowhead=onormal]
"photo uid" -> "uid" [arrowhead=onormal]
"public key" -> "keyserver" [arrowhead=diamond, label="stores", taillabel="*", headlabel="*"]
"public key data" -> "public key" [arrowhead=diamond, taillabel="1", headlabel="1"]
}
}