| 
									
										
										
										
											1999-05-26 14:24:57 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  *	BIRD -- Password handling | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2004-06-26 20:11:14 +00:00
										 |  |  |  *	(c) 1999 Pavel Machek <pavel@ucw.cz> | 
					
						
							|  |  |  |  *	(c) 2004 Ondrej Filip <feela@network.cz> | 
					
						
							| 
									
										
										
										
											1999-05-26 14:24:57 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  *	Can be freely distributed and used under the terms of the GNU GPL. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-05-26 14:37:07 +00:00
										 |  |  | #ifndef PASSWORD_H
 | 
					
						
							|  |  |  | #define PASSWORD_H
 | 
					
						
							| 
									
										
										
										
											2016-01-26 16:45:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-05-26 14:24:57 +00:00
										 |  |  | struct password_item { | 
					
						
							| 
									
										
										
										
											2004-06-26 20:11:14 +00:00
										 |  |  |   node n; | 
					
						
							| 
									
										
										
										
											2020-04-08 22:25:15 +02:00
										 |  |  |   const char *password;			/* Key data, null terminated */ | 
					
						
							| 
									
										
										
										
											2016-01-26 16:45:13 +01:00
										 |  |  |   uint length;				/* Key length, without null */ | 
					
						
							|  |  |  |   uint id;				/* Key ID */ | 
					
						
							|  |  |  |   uint alg;				/* MAC algorithm */ | 
					
						
							| 
									
										
										
										
											2017-06-06 16:47:30 +02:00
										 |  |  |   btime accfrom, accto, genfrom, gento; | 
					
						
							| 
									
										
										
										
											1999-05-26 14:24:57 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern struct password_item *last_password_item; | 
					
						
							| 
									
										
										
										
											1999-05-31 17:12:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-08 17:24:23 +01:00
										 |  |  | struct password_item *password_find(list *l, int first_fit); | 
					
						
							| 
									
										
										
										
											2016-10-25 17:04:17 +02:00
										 |  |  | struct password_item *password_find_by_id(list *l, uint id); | 
					
						
							| 
									
										
										
										
											2015-10-05 12:14:50 +02:00
										 |  |  | struct password_item *password_find_by_value(list *l, char *pass, uint size); | 
					
						
							| 
									
										
										
										
											2021-04-15 04:38:49 +02:00
										 |  |  | void password_validate_length(const struct password_item *p); | 
					
						
							| 
									
										
										
										
											2014-10-24 10:27:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | static inline int password_verify(struct password_item *p1, char *p2, uint size) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   char buf[size]; | 
					
						
							|  |  |  |   strncpy(buf, p1->password, size); | 
					
						
							|  |  |  |   return !memcmp(buf, p2, size); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											1999-05-31 17:12:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-26 16:07:45 +02:00
										 |  |  | uint max_mac_length(list *l); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-05-26 14:37:07 +00:00
										 |  |  | #endif
 |