11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* $OpenBSD: hostfile.h,v 1.19 2010/11/29 23:45:51 djm Exp $ */ 21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* 41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Author: Tatu Ylonen <ylo@cs.hut.fi> 51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * All rights reserved 71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * As far as I am concerned, the code I have written for this software 91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * can be used freely for any purpose. Any derived versions of this 101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * software must be clearly marked as such, and if the derived work is 111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * incompatible with the protocol description in the RFC file, it must be 121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * called by a name other than "ssh" or "Secure Shell". 131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood */ 141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HOSTFILE_H 151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define HOSTFILE_H 161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef enum { 181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood HOST_OK, HOST_NEW, HOST_CHANGED, HOST_REVOKED, HOST_FOUND 191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood} HostStatus; 201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef enum { 221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood MRK_ERROR, MRK_NONE, MRK_REVOKE, MRK_CA 231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood} HostkeyMarker; 241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct hostkey_entry { 261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood char *host; 271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood char *file; 281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood u_long line; 291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood Key *key; 301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood HostkeyMarker marker; 311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct hostkeys; 331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct hostkeys *init_hostkeys(void); 351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodvoid load_hostkeys(struct hostkeys *, const char *, const char *); 361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodvoid free_hostkeys(struct hostkeys *); 371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 381305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodHostStatus check_key_in_hostkeys(struct hostkeys *, Key *, 391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood const struct hostkey_entry **); 401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodint lookup_key_in_hostkeys_by_type(struct hostkeys *, int, 411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood const struct hostkey_entry **); 421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodint hostfile_read_key(char **, u_int *, Key *); 441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodint add_host_to_hostfile(const char *, const char *, const Key *, int); 451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define HASH_MAGIC "|1|" 471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define HASH_DELIM '|' 481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define CA_MARKER "@cert-authority" 501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define REVOKE_MARKER "@revoked" 511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodchar *host_hash(const char *, const char *, u_int); 531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 55