1/* $OpenBSD: hostfile.h,v 1.19 2010/11/29 23:45:51 djm Exp $ */ 2 3/* 4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 5 * Copyright (c) 1995 Tatu Ylonen <ylo@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 17typedef enum { 18 HOST_OK, HOST_NEW, HOST_CHANGED, HOST_REVOKED, HOST_FOUND 19} HostStatus; 20 21typedef enum { 22 MRK_ERROR, MRK_NONE, MRK_REVOKE, MRK_CA 23} HostkeyMarker; 24 25struct hostkey_entry { 26 char *host; 27 char *file; 28 u_long line; 29 Key *key; 30 HostkeyMarker marker; 31}; 32struct hostkeys; 33 34struct hostkeys *init_hostkeys(void); 35void load_hostkeys(struct hostkeys *, const char *, const char *); 36void free_hostkeys(struct hostkeys *); 37 38HostStatus check_key_in_hostkeys(struct hostkeys *, Key *, 39 const struct hostkey_entry **); 40int lookup_key_in_hostkeys_by_type(struct hostkeys *, int, 41 const struct hostkey_entry **); 42 43int hostfile_read_key(char **, u_int *, Key *); 44int 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 52char *host_hash(const char *, const char *, u_int); 53 54#endif 55