summaryrefslogtreecommitdiff
path: root/hostfile.h
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@google.com>2011-12-07 08:17:59 -0800
committerMike Lockwood <lockwood@google.com>2012-02-08 10:12:43 -0800
commit1305e95ba6ff9fa202d0818caf10405df4b0f648 (patch)
tree6003d5fc2cb7c43cf28ed53dc9c880500c9bcd98 /hostfile.h
parent8273adc47a9f7405a0e038e9364a3c45f3609347 (diff)
Initial commit of openssh-5.9p1
Change-Id: I991b8d22c9904ed6ced33a096776f4f342af52a8 Signed-off-by: Mike Lockwood <lockwood@google.com>
Diffstat (limited to 'hostfile.h')
-rw-r--r--hostfile.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/hostfile.h b/hostfile.h
new file mode 100644
index 00000000..d84d422f
--- /dev/null
+++ b/hostfile.h
@@ -0,0 +1,54 @@
+/* $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