code: public int authenticate(AuthenticationClient auth, String servicename)
  			throws SshException {
  		try {
  			auth.authenticate(this, servicename);
  			readMessage();
  			transport
  					.disconnect(TransportProtocol.PROTOCOL_ERROR,
  							"Unexpected response received from Authentication Protocol");
  			throw new SshException(
  					"Unexpected response received from Authentication Protocol",
  					SshException.PROTOCOL_VIOLATION);
  		} catch (AuthenticationResult result) {
  			state = result.getResult();
  			if (state == SshAuthentication.COMPLETE)
  				transport.completedAuthentication();
  			return state;
  		}
  	}
docs: Authenticate using the mechanism provided.
  
  @param auth
  @param servicename
  @return Any of the constants defined in <a
  href="AuthenticationResult.html">AuthenticationResult</a>
  @throws SshException