/* * 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(); } } }