| /* |
| * Copyright (c) 2006-2011 Christian Plattner. All rights reserved. |
| * Please refer to the LICENSE.txt for licensing details. |
| */ |
| package ch.ethz.ssh2; |
| |
| /** |
| * An <code>InteractiveCallback</code> is used to respond to challenges sent |
| * by the server if authentication mode "keyboard-interactive" is selected. |
| * |
| * @see Connection#authenticateWithKeyboardInteractive(String, |
| * String[], InteractiveCallback) |
| * |
| * @author Christian Plattner |
| * @version 2.50, 03/15/10 |
| */ |
| |
| public interface InteractiveCallback |
| { |
| /** |
| * This callback interface is used during a "keyboard-interactive" |
| * authentication. Every time the server sends a set of challenges (however, |
| * most often just one challenge at a time), this callback function will be |
| * called to give your application a chance to talk to the user and to |
| * determine the response(s). |
| * <p> |
| * Some copy-paste information from the standard: a command line interface |
| * (CLI) client SHOULD print the name and instruction (if non-empty), adding |
| * newlines. Then for each prompt in turn, the client SHOULD display the |
| * prompt and read the user input. The name and instruction fields MAY be |
| * empty strings, the client MUST be prepared to handle this correctly. The |
| * prompt field(s) MUST NOT be empty strings. |
| * <p> |
| * Please refer to draft-ietf-secsh-auth-kbdinteract-XX.txt for the details. |
| * <p> |
| * Note: clients SHOULD use control character filtering as discussed in |
| * RFC4251 to avoid attacks by including |
| * terminal control characters in the fields to be displayed. |
| * |
| * @param name |
| * the name String sent by the server. |
| * @param instruction |
| * the instruction String sent by the server. |
| * @param numPrompts |
| * number of prompts - may be zero (in this case, you should just |
| * return a String array of length zero). |
| * @param prompt |
| * an array (length <code>numPrompts</code>) of Strings |
| * @param echo |
| * an array (length <code>numPrompts</code>) of booleans. For |
| * each prompt, the corresponding echo field indicates whether or |
| * not the user input should be echoed as characters are typed. |
| * @return an array of reponses - the array size must match the parameter |
| * <code>numPrompts</code>. |
| */ |
| public String[] replyToChallenge(String name, String instruction, int numPrompts, String[] prompt, boolean[] echo) |
| throws Exception; |
| } |