aboutsummaryrefslogtreecommitdiff
path: root/examples/SimpleVerifier.java
diff options
context:
space:
mode:
Diffstat (limited to 'examples/SimpleVerifier.java')
-rw-r--r--examples/SimpleVerifier.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/examples/SimpleVerifier.java b/examples/SimpleVerifier.java
new file mode 100644
index 0000000..6ce67a2
--- /dev/null
+++ b/examples/SimpleVerifier.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2006-2011 Christian Plattner. All rights reserved.
+ * Please refer to the LICENSE.txt for licensing details.
+ */
+import ch.ethz.ssh2.KnownHosts;
+import ch.ethz.ssh2.ServerHostKeyVerifier;
+
+class SimpleVerifier implements ServerHostKeyVerifier
+{
+ KnownHosts database;
+
+ /*
+ * This class is being used by the UsingKnownHosts.java example.
+ */
+
+ public SimpleVerifier(KnownHosts database)
+ {
+ if (database == null)
+ throw new IllegalArgumentException();
+
+ this.database = database;
+ }
+
+ public boolean verifyServerHostKey(String hostname, int port, String serverHostKeyAlgorithm, byte[] serverHostKey)
+ throws Exception
+ {
+ int result = database.verifyHostkey(hostname, serverHostKeyAlgorithm, serverHostKey);
+
+ switch (result)
+ {
+ case KnownHosts.HOSTKEY_IS_OK:
+
+ return true; // We are happy
+
+ case KnownHosts.HOSTKEY_IS_NEW:
+
+ // Unknown host? Blindly accept the key and put it into the cache.
+ // Well, you definitely can do better (e.g., ask the user).
+
+ // The following call will ONLY put the key into the memory cache!
+ // To save it in a known hosts file, also call "KnownHosts.addHostkeyToFile(...)"
+ database.addHostkey(new String[] { hostname }, serverHostKeyAlgorithm, serverHostKey);
+
+ return true;
+
+ case KnownHosts.HOSTKEY_HAS_CHANGED:
+
+ // Close the connection if the hostkey has changed.
+ // Better: ask user and add new key to database.
+ return false;
+
+ default:
+ throw new IllegalStateException();
+ }
+ }
+} \ No newline at end of file