blob: 9c4462b3f2b01c802137248c32f0335b2a6f93b5 (
plain)
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
|
implement Authproto;
include "sys.m";
sys: Sys;
include "../authio.m";
authio: Authio;
Attr, IO: import authio;
init(f: Authio): string
{
sys = load Sys Sys->PATH;
authio = f;
return nil;
}
interaction(attrs: list of ref Attr, io: ref Authio->IO): string
{
(key, err) := io.findkey(attrs, "user? !password?");
if(key == nil)
return err;
user := authio->lookattrval(key.attrs, "user");
if(user == nil)
return "unknown user";
pass := authio->lookattrval(key.secrets, "!password");
a := sys->aprint("%q %q", user, pass);
io.write(a, len a);
return nil;
}
|