|  | /* $OpenBSD: hostfile.h,v 1.19 2010/11/29 23:45:51 djm Exp $ */ | 
|  |  | 
|  | /* | 
|  | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 
|  | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 
|  | *                    All rights reserved | 
|  | * | 
|  | * As far as I am concerned, the code I have written for this software | 
|  | * can be used freely for any purpose.  Any derived versions of this | 
|  | * software must be clearly marked as such, and if the derived work is | 
|  | * incompatible with the protocol description in the RFC file, it must be | 
|  | * called by a name other than "ssh" or "Secure Shell". | 
|  | */ | 
|  | #ifndef HOSTFILE_H | 
|  | #define HOSTFILE_H | 
|  |  | 
|  | typedef enum { | 
|  | HOST_OK, HOST_NEW, HOST_CHANGED, HOST_REVOKED, HOST_FOUND | 
|  | }       HostStatus; | 
|  |  | 
|  | typedef enum { | 
|  | MRK_ERROR, MRK_NONE, MRK_REVOKE, MRK_CA | 
|  | }	HostkeyMarker; | 
|  |  | 
|  | struct hostkey_entry { | 
|  | char *host; | 
|  | char *file; | 
|  | u_long line; | 
|  | Key *key; | 
|  | HostkeyMarker marker; | 
|  | }; | 
|  | struct hostkeys; | 
|  |  | 
|  | struct hostkeys *init_hostkeys(void); | 
|  | void	 load_hostkeys(struct hostkeys *, const char *, const char *); | 
|  | void	 free_hostkeys(struct hostkeys *); | 
|  |  | 
|  | HostStatus check_key_in_hostkeys(struct hostkeys *, Key *, | 
|  | const struct hostkey_entry **); | 
|  | int	 lookup_key_in_hostkeys_by_type(struct hostkeys *, int, | 
|  | const struct hostkey_entry **); | 
|  |  | 
|  | int	 hostfile_read_key(char **, u_int *, Key *); | 
|  | int	 add_host_to_hostfile(const char *, const char *, const Key *, int); | 
|  |  | 
|  | #define HASH_MAGIC	"|1|" | 
|  | #define HASH_DELIM	'|' | 
|  |  | 
|  | #define CA_MARKER	"@cert-authority" | 
|  | #define REVOKE_MARKER	"@revoked" | 
|  |  | 
|  | char	*host_hash(const char *, const char *, u_int); | 
|  |  | 
|  | #endif |