Home | History | Annotate | Download | only in openssh
      1 /* $OpenBSD: hostfile.h,v 1.19 2010/11/29 23:45:51 djm Exp $ */
      2 
      3 /*
      4  * Author: Tatu Ylonen <ylo (at) cs.hut.fi>
      5  * Copyright (c) 1995 Tatu Ylonen <ylo (at) cs.hut.fi>, Espoo, Finland
      6  *                    All rights reserved
      7  *
      8  * As far as I am concerned, the code I have written for this software
      9  * can be used freely for any purpose.  Any derived versions of this
     10  * software must be clearly marked as such, and if the derived work is
     11  * incompatible with the protocol description in the RFC file, it must be
     12  * called by a name other than "ssh" or "Secure Shell".
     13  */
     14 #ifndef HOSTFILE_H
     15 #define HOSTFILE_H
     16 
     17 typedef enum {
     18 	HOST_OK, HOST_NEW, HOST_CHANGED, HOST_REVOKED, HOST_FOUND
     19 }       HostStatus;
     20 
     21 typedef enum {
     22 	MRK_ERROR, MRK_NONE, MRK_REVOKE, MRK_CA
     23 }	HostkeyMarker;
     24 
     25 struct hostkey_entry {
     26 	char *host;
     27 	char *file;
     28 	u_long line;
     29 	Key *key;
     30 	HostkeyMarker marker;
     31 };
     32 struct hostkeys;
     33 
     34 struct hostkeys *init_hostkeys(void);
     35 void	 load_hostkeys(struct hostkeys *, const char *, const char *);
     36 void	 free_hostkeys(struct hostkeys *);
     37 
     38 HostStatus check_key_in_hostkeys(struct hostkeys *, Key *,
     39     const struct hostkey_entry **);
     40 int	 lookup_key_in_hostkeys_by_type(struct hostkeys *, int,
     41     const struct hostkey_entry **);
     42 
     43 int	 hostfile_read_key(char **, u_int *, Key *);
     44 int	 add_host_to_hostfile(const char *, const char *, const Key *, int);
     45 
     46 #define HASH_MAGIC	"|1|"
     47 #define HASH_DELIM	'|'
     48 
     49 #define CA_MARKER	"@cert-authority"
     50 #define REVOKE_MARKER	"@revoked"
     51 
     52 char	*host_hash(const char *, const char *, u_int);
     53 
     54 #endif
     55