Annotation of embedaddon/bird/nest/password.c, revision 1.1.1.1
1.1 misho 1: /*
2: * BIRD -- Password handling
3: *
4: * (c) 1999 Pavel Machek <pavel@ucw.cz>
5: * (c) 2004 Ondrej Filip <feela@network.cz>
6: *
7: * Can be freely distributed and used under the terms of the GNU GPL.
8: */
9:
10: #include "nest/bird.h"
11: #include "nest/password.h"
12: #include "lib/string.h"
13: #include "lib/mac.h"
14:
15: struct password_item *last_password_item = NULL;
16:
17: struct password_item *
18: password_find(list *l, int first_fit)
19: {
20: struct password_item *pi;
21: struct password_item *pf = NULL;
22:
23: if (l)
24: {
25: WALK_LIST(pi, *l)
26: {
27: if ((pi->genfrom < now_real) && (pi->gento > now_real))
28: {
29: if (first_fit)
30: return pi;
31:
32: if (!pf || pf->genfrom < pi->genfrom)
33: pf = pi;
34: }
35: }
36: }
37: return pf;
38: }
39:
40: struct password_item *
41: password_find_by_id(list *l, uint id)
42: {
43: struct password_item *pi;
44:
45: if (!l)
46: return NULL;
47:
48: WALK_LIST(pi, *l)
49: if ((pi->id == id) && (pi->accfrom <= now_real) && (now_real < pi->accto))
50: return pi;
51:
52: return NULL;
53: }
54:
55: struct password_item *
56: password_find_by_value(list *l, char *pass, uint size)
57: {
58: struct password_item *pi;
59:
60: if (!l)
61: return NULL;
62:
63: WALK_LIST(pi, *l)
64: if (password_verify(pi, pass, size) && (pi->accfrom <= now_real) && (now_real < pi->accto))
65: return pi;
66:
67: return NULL;
68: }
69:
70: uint
71: max_mac_length(list *l)
72: {
73: struct password_item *pi;
74: uint val = 0;
75:
76: if (!l)
77: return 0;
78:
79: WALK_LIST(pi, *l)
80: val = MAX(val, mac_type_length(pi->alg));
81:
82: return val;
83: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>