Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
.EQ
2
delim $$
3
.EN
4
.TH DSA 8
5
.SH NAME
6
dsagen, asn12dsa, dsa2pub, dsa2ssh \- generate and format dsa keys
7
.SH SYNOPSIS
8
.B auth/dsagen
9
.\" [
10
.\" .B -b
11
.\" .I nbits
12
.\" ]
13
[
14
.B -t
15
.I tag
16
]
17
.PP
18
.B auth/asn12dsa
19
[
20
.B -t
21
.I tag
22
]
23
[
24
.I file
25
]
26
.PP
27
.B auth/dsa2pub
28
[
29
.I file
30
]
31
.PP
32
.B auth/dsa2ssh
33
[
34
.B -c
35
.I comment
36
] [
37
.I file
38
]
39
.SH DESCRIPTION
40
Plan 9 represents a DSA (Digital Signature Algorithm)
41
key as an attribute-value pair list
42
prefixed with the string
43
.BR key ;
44
this is the generic key format used by
45
.IR factotum (4).
46
A full DSA private key has the following attributes:
47
.TF secret
48
.TP
49
.B proto
50
must be
51
.B dsa
52
.TP
53
.B !secret
54
decryption key
55
.TP
56
.B p
57
modulus, a large prime
58
.TP
59
.B q
60
group order, another large prime that divides
61
.I p
62
- 1.
63
.TP
64
.B alpha
65
group generator
66
.TP
67
.B key
68
$"alpha" sup secret ~ mod ~ p$
69
.PD
70
.LP
71
All the numbers are in hexadecimal.
72
A DSA public key omits the attributes beginning with
73
.LR ! .
74
A key may have other attributes as well (for example, a
75
.B service
76
attribute identifying how this key is typically used),
77
but to these utilities such attributes are merely comments.
78
.PP
79
For example, a private key and corresponding public key might look like this
80
(with [⋯] indicating elisions and \e marking line breaks for readability):
81
.IP
82
.EX
83
key proto=dsa p=D5[⋯]DB q=C2[⋯]E7 alpha=44[⋯]9B key=C1[⋯]3F \e
84
	!secret=9E[⋯]3B
85
key proto=dsa p=D5[⋯]DB q=C2[⋯]E7 alpha=44[⋯]9B key=C1[⋯]3F
86
.EE
87
.LP
88
Note that the order of the attributes does not matter.
89
.PP
90
.I Dsagen
91
prints a randomly generated DSA private key
92
whose
93
.B n
94
has exactly
95
.I nbits
96
(default 1024)
97
significant bits.
98
If
99
.I tag
100
is specified, it is printed between
101
.B key
102
and
103
.BR proto=dsa ;
104
typically,
105
.I tag
106
is a sequence of attribute-value comments describing the key.
107
.PP
108
.I Asn12dsa
109
reads an DSA private key stored as ASN.1
110
encoded in the binary Distinguished Encoding Rules (DER)
111
and prints a Plan 9 DSA key,
112
inserting
113
.I tag
114
exactly as
115
.I dsagen
116
does.
117
ASN.1/DER is a popular key format on Unix and Windows;
118
it is often encoded in text form using the Privacy Enhanced Mail (PEM) format
119
in a section labeled as an
120
.RB `` DSA
121
.B PRIVATE
122
.BR KEY .''
123
The command:
124
.IP
125
.EX
126
auth/pemdecode 'DSA PRIVATE KEY' | auth/asn12dsa
127
.EE
128
.LP
129
extracts the key section from a textual ASN.1/DER/PEM key
130
into binary ASN.1/DER format and then
131
converts it to a Plan 9 DSA key.
132
.PP
133
.I Dsa2pub
134
reads a Plan 9 DSA public or private key,
135
removes the private attributes, and prints the resulting public key.
136
Comment attributes are preserved.
137
.PP
138
.I Dsa2ssh
139
reads a Plan 9 DSA public or private key and prints the public portion 
140
in the format used by SSH:
141
.L ssh-dss
142
and a long base-64 encoded number.
143
.EQ
144
delim @@
145
.EN
146
For compatibility with external SSH implementations, the public keys in
147
.B /sys/lib/ssh/keyring
148
and
149
.B $home/lib/keyring
150
are stored in this format.
151
.br
152
.ne 4
153
.SH EXAMPLES
154
Generate a fresh key and configure a remote Unix system to
155
allow use of that key for logins:
156
.IP
157
.EX
158
auth/dsagen -t 'service=ssh' >key
159
auth/dsa2ssh key | ssh unix 'cat >>.ssh/authorized_keys'
160
cat key >/mnt/factotum/ctl
161
ssh unix
162
.EE
163
.SH SOURCE
164
.B /sys/src/cmd/auth
165
.SH "SEE ALSO
166
.IR ssh (1),
167
.IR factotum (4),
168
.IR pem (8),
169
.IR rsa (8)
170
.SH BUGS
171
There are too many key formats.