1 2 package ch.ethz.ssh2; 3 4 /** 5 * A callback interface used to implement a client specific method of checking 6 * server host keys. 7 * 8 * @author Christian Plattner, plattner@inf.ethz.ch 9 * @version $Id: ServerHostKeyVerifier.java,v 1.4 2006/02/14 19:43:16 cplattne Exp $ 10 */ 11 12 public interface ServerHostKeyVerifier 13 { 14 /** 15 * The actual verifier method, it will be called by the key exchange code 16 * on EVERY key exchange - this can happen several times during the lifetime 17 * of a connection. 18 * <p> 19 * Note: SSH-2 servers are allowed to change their hostkey at ANY time. 20 * 21 * @param hostname the hostname used to create the {@link Connection} object 22 * @param port the remote TCP port 23 * @param serverHostKeyAlgorithm the public key algorithm (<code>ssh-rsa</code> or <code>ssh-dss</code>) 24 * @param serverHostKey the server's public key blob 25 * @return if the client wants to accept the server's host key - if not, the 26 * connection will be closed. 27 * @throws Exception Will be wrapped with an IOException, extended version of returning false =) 28 */ 29 public boolean verifyServerHostKey(String hostname, int port, String serverHostKeyAlgorithm, byte[] serverHostKey) 30 throws Exception; 31 } 32