1 d93fca6a 2005-02-11 devnull .TH AUTHSRV 3
3 d93fca6a 2005-02-11 devnull authdial, passtokey, nvcsum, readnvram, convT2M, convM2T, convTR2M, convM2TR, convA2M, convM2A, convPR2M, convM2PR, _asgetticket, _asrdresp \- routines for communicating with authentication servers
4 d93fca6a 2005-02-11 devnull .SH SYNOPSIS
8 d93fca6a 2005-02-11 devnull #include <u.h>
9 d93fca6a 2005-02-11 devnull #include <libc.h>
10 d93fca6a 2005-02-11 devnull #include <authsrv.h>
12 d93fca6a 2005-02-11 devnull .ta 8n +4n +4n +4n +4n +4n +4n
15 d93fca6a 2005-02-11 devnull int authdial(char *netroot, char *ad);
18 d93fca6a 2005-02-11 devnull int passtokey(char key[DESKEYLEN], char *password)
21 d93fca6a 2005-02-11 devnull uchar nvcsum(void *mem, int len)
24 d93fca6a 2005-02-11 devnull int readnvram(Nvrsafe *nv, int flag);
27 d93fca6a 2005-02-11 devnull int convT2M(Ticket *t, char *msg, char *key)
30 d93fca6a 2005-02-11 devnull void convM2T(char *msg, Ticket *t, char *key)
33 d93fca6a 2005-02-11 devnull int convA2M(Authenticator *a, char *msg, char *key)
36 d93fca6a 2005-02-11 devnull void convM2A(char *msg, Authenticator *a, char *key)
39 d93fca6a 2005-02-11 devnull int convTR2M(Ticketreq *tr, char *msg)
42 d93fca6a 2005-02-11 devnull void convM2TR(char *msg, Ticketreq *tr)
45 d93fca6a 2005-02-11 devnull int convPR2M(Passwordreq *pr, char *msg, char *key)
48 d93fca6a 2005-02-11 devnull void convM2PR(char *msg, Passwordreq *pr, char *key)
51 d93fca6a 2005-02-11 devnull int _asgetticket(int fd, char *trbuf, char *tbuf);
54 d93fca6a 2005-02-11 devnull int _asrdresp(int fd, char *buf, int len);
55 d93fca6a 2005-02-11 devnull .SH DESCRIPTION
57 d93fca6a 2005-02-11 devnull .I Authdial
58 d93fca6a 2005-02-11 devnull dials an authentication server over the
59 d93fca6a 2005-02-11 devnull network rooted at
60 d93fca6a 2005-02-11 devnull .IR net ,
62 d93fca6a 2005-02-11 devnull .BR /net .
63 d93fca6a 2005-02-11 devnull The authentication domain,
65 d93fca6a 2005-02-11 devnull specifies which server to call.
68 d93fca6a 2005-02-11 devnull is non-nil,
69 d93fca6a 2005-02-11 devnull the network database
71 d93fca6a 2005-02-11 devnull .IR ndb (1))
72 d93fca6a 2005-02-11 devnull is queried for an entry which contains
73 d93fca6a 2005-02-11 devnull .B authdom=\fIad\fP
75 d93fca6a 2005-02-11 devnull .BR dom=\fIad\fP ,
76 d93fca6a 2005-02-11 devnull the former having precedence,
77 d93fca6a 2005-02-11 devnull and which also contains an
79 d93fca6a 2005-02-11 devnull attribute.
80 d93fca6a 2005-02-11 devnull The string dialed is then
81 d93fca6a 2005-02-11 devnull .I netroot\fP!\fIserver\fP!ticket
83 d93fca6a 2005-02-11 devnull .I server
84 d93fca6a 2005-02-11 devnull is the value of the
86 d93fca6a 2005-02-11 devnull attribute.
87 d93fca6a 2005-02-11 devnull If no entry is found, the error string is
88 d93fca6a 2005-02-11 devnull set to ``no authentication server found''
89 d93fca6a 2005-02-11 devnull and -1 is returned.
91 d93fca6a 2005-02-11 devnull .I authdom
92 d93fca6a 2005-02-11 devnull is nil, the string
93 d93fca6a 2005-02-11 devnull .IB netroot !$auth! ticket
94 d93fca6a 2005-02-11 devnull is used to make the call.
96 d93fca6a 2005-02-11 devnull .I Passtokey
98 d93fca6a 2005-02-11 devnull .I password
99 d93fca6a 2005-02-11 devnull into a DES key and stores the result in
100 d93fca6a 2005-02-11 devnull .IR key .
101 d93fca6a 2005-02-11 devnull It returns 0 if
102 d93fca6a 2005-02-11 devnull .I password
103 d93fca6a 2005-02-11 devnull could not be converted,
104 d93fca6a 2005-02-11 devnull and 1 otherwise.
106 d93fca6a 2005-02-11 devnull .I Readnvram
107 d93fca6a 2005-02-11 devnull reads authentication information into the structure:
109 d93fca6a 2005-02-11 devnull .ta 4n +4n +8n +4n +4n +4n +4n
110 d93fca6a 2005-02-11 devnull struct Nvrsafe
112 d93fca6a 2005-02-11 devnull char machkey[DESKEYLEN];
113 d93fca6a 2005-02-11 devnull uchar machsum;
114 d93fca6a 2005-02-11 devnull char authkey[DESKEYLEN];
115 d93fca6a 2005-02-11 devnull uchar authsum;
116 d93fca6a 2005-02-11 devnull char config[CONFIGLEN];
117 d93fca6a 2005-02-11 devnull uchar configsum;
118 d93fca6a 2005-02-11 devnull char authid[ANAMELEN];
119 d93fca6a 2005-02-11 devnull uchar authidsum;
120 d93fca6a 2005-02-11 devnull char authdom[DOMLEN];
121 d93fca6a 2005-02-11 devnull uchar authdomsum;
125 d93fca6a 2005-02-11 devnull On Sparc, MIPS, and SGI machines this information is
126 d93fca6a 2005-02-11 devnull in non-volatile ram, accessible in the file
127 d93fca6a 2005-02-11 devnull .BR #r/nvram .
128 d93fca6a 2005-02-11 devnull On x86s and Alphas
129 d93fca6a 2005-02-11 devnull .I readnvram
130 d93fca6a 2005-02-11 devnull successively opens the following areas stopping with the
131 d93fca6a 2005-02-11 devnull first to succeed:
133 d93fca6a 2005-02-11 devnull \- the partition named by the
134 d93fca6a 2005-02-11 devnull .B $nvram
135 d93fca6a 2005-02-11 devnull environment variable
136 83c4506a 2005-02-11 devnull .\" (commonly set via
137 83c4506a 2005-02-11 devnull .\" .IR plan9.ini (8))
139 d93fca6a 2005-02-11 devnull \- the partition
140 d93fca6a 2005-02-11 devnull .B #S/sdC0/nvram
142 d93fca6a 2005-02-11 devnull \- a file called
143 d93fca6a 2005-02-11 devnull .B plan9.nvr
144 d93fca6a 2005-02-11 devnull in the partition
145 d93fca6a 2005-02-11 devnull .B #S/sdC0/9fat
147 d93fca6a 2005-02-11 devnull \- the partition
148 d93fca6a 2005-02-11 devnull .B #S/sd00/nvram
150 d93fca6a 2005-02-11 devnull \- a file called
151 d93fca6a 2005-02-11 devnull .B plan9.nvr
152 d93fca6a 2005-02-11 devnull in the partition
153 d93fca6a 2005-02-11 devnull .B #S/sd00/9fat
155 d93fca6a 2005-02-11 devnull \- a file called
156 d93fca6a 2005-02-11 devnull .B plan9.nvr
157 d93fca6a 2005-02-11 devnull on a DOS floppy in drive 0
159 d93fca6a 2005-02-11 devnull \- a file called
160 d93fca6a 2005-02-11 devnull .B plan9.nvr
161 d93fca6a 2005-02-11 devnull on a DOS floppy in drive 1
164 d93fca6a 2005-02-11 devnull .IR nvcsum s
165 d93fca6a 2005-02-11 devnull of the fields
166 d93fca6a 2005-02-11 devnull .BR machkey ,
167 d93fca6a 2005-02-11 devnull .BR authid ,
169 d93fca6a 2005-02-11 devnull .B authdom
170 d93fca6a 2005-02-11 devnull must match their respective checksum or that field is zeroed.
174 d93fca6a 2005-02-11 devnull .B NVwrite
175 d93fca6a 2005-02-11 devnull or at least one checksum fails and
178 d93fca6a 2005-02-11 devnull .BR NVwriteonerr ,
179 d93fca6a 2005-02-11 devnull .I readnvram
180 d93fca6a 2005-02-11 devnull will prompt for new values on
181 d93fca6a 2005-02-11 devnull .B #c/cons
182 d93fca6a 2005-02-11 devnull and then write them back to the storage area.
184 d93fca6a 2005-02-11 devnull .IR ConvT2M ,
185 d93fca6a 2005-02-11 devnull .IR convA2M ,
186 d93fca6a 2005-02-11 devnull .IR convTR2M ,
188 d93fca6a 2005-02-11 devnull .I convPR2M
189 d93fca6a 2005-02-11 devnull convert tickets, authenticators, ticket requests, and password change request
190 d93fca6a 2005-02-11 devnull structures into transmittable messages.
191 d93fca6a 2005-02-11 devnull .IR ConvM2T ,
192 d93fca6a 2005-02-11 devnull .IR convM2A ,
193 d93fca6a 2005-02-11 devnull .IR convM2TR ,
195 d93fca6a 2005-02-11 devnull .I convM2PR
196 d93fca6a 2005-02-11 devnull are used to convert them back.
198 d93fca6a 2005-02-11 devnull is used for encrypting the message before transmission and decrypting
199 d93fca6a 2005-02-11 devnull after reception.
201 d93fca6a 2005-02-11 devnull The routine
202 d93fca6a 2005-02-11 devnull .I _asgetresp
203 d93fca6a 2005-02-11 devnull receives either a character array or an error string.
204 d93fca6a 2005-02-11 devnull On error, it sets errstr and returns -1. If successful,
205 d93fca6a 2005-02-11 devnull it returns the number of bytes received.
207 d93fca6a 2005-02-11 devnull The routine
208 d93fca6a 2005-02-11 devnull .I _asgetticket
209 d93fca6a 2005-02-11 devnull sends a ticket request message and then uses
210 d93fca6a 2005-02-11 devnull .I _asgetresp
211 d93fca6a 2005-02-11 devnull to recieve an answer.
212 d93fca6a 2005-02-11 devnull .SH SOURCE
213 d93fca6a 2005-02-11 devnull .B \*9/src/libauthsrv
214 d93fca6a 2005-02-11 devnull .SH SEE ALSO
215 30f6ae14 2005-02-13 devnull .IR passwd (1),
216 d93fca6a 2005-02-11 devnull .IR dial (3),
217 d93fca6a 2005-02-11 devnull Plan 9's
218 d93fca6a 2005-02-11 devnull \fIauthsrv\fR(6).
219 d93fca6a 2005-02-11 devnull .SH DIAGNOSTICS
220 d93fca6a 2005-02-11 devnull These routines set
221 d93fca6a 2005-02-11 devnull .IR errstr .
222 d93fca6a 2005-02-11 devnull Integer-valued functions return -1 on error.