private void sendToken(ClientSession session, byte[] receivedToken) throws IOException, GSSException { state = ProtocolState.TOKENS; byte[] token = context.initSecContext(receivedToken, 0, receivedToken.length); if (token != null) { Buffer buffer = session.createBuffer(SSH_MSG_USERAUTH_GSSAPI_TOKEN); buffer.putBytes(token); session.writePacket(buffer); } }
/** * Sends a heartbeat message * @return The {@link IoWriteFuture} that can be used to wait for the * message write completion */ protected IoWriteFuture sendHeartBeat() { ClientSession session = getClientSession(); String request = session.getStringProperty(ClientFactoryManager.HEARTBEAT_REQUEST, ClientFactoryManager.DEFAULT_KEEP_ALIVE_HEARTBEAT_STRING); try { Buffer buf = session.createBuffer(SshConstants.SSH_MSG_GLOBAL_REQUEST, request.length() + Byte.SIZE); buf.putString(request); buf.putBoolean(false); IoWriteFuture future = session.writePacket(buf); future.addListener(this::futureDone); return future; } catch (IOException e) { getSession().exceptionCaught(e); if (log.isDebugEnabled()) { log.debug("Error (" + e.getClass().getSimpleName() + ") sending keepalive message=" + request + ": " + e.getMessage()); } Throwable t = e; return new AbstractIoWriteFuture(request, null) { { setValue(t); } }; } }
buffer.putString(algo); buffer.putPublicKey(key); session.writePacket(buffer); return true;
buffer.putString(algo); buffer.putPublicKey(key); session.writePacket(buffer); return true;
/** * Sends a heartbeat message * @return The {@link IoWriteFuture} that can be used to wait for the * message write completion */ protected IoWriteFuture sendHeartBeat() { ClientSession session = getClientSession(); String request = session.getStringProperty(ClientFactoryManager.HEARTBEAT_REQUEST, ClientFactoryManager.DEFAULT_KEEP_ALIVE_HEARTBEAT_STRING); try { Buffer buf = session.createBuffer(SshConstants.SSH_MSG_GLOBAL_REQUEST, request.length() + Byte.SIZE); buf.putString(request); buf.putBoolean(false); IoWriteFuture future = session.writePacket(buf); future.addListener(this::futureDone); return future; } catch (IOException e) { getSession().exceptionCaught(e); if (log.isDebugEnabled()) { log.debug("Error (" + e.getClass().getSimpleName() + ") sending keepalive message=" + request + ": " + e.getMessage()); } Throwable t = e; return new AbstractIoWriteFuture(request, null) { { setValue(t); } }; } }
buffer.putString(subMethods); requestPending.set(true); session.writePacket(buffer); return true;
buffer.putString(subMethods); requestPending.set(true); session.writePacket(buffer); return true;
buffer.putString(service); buffer.putString("none"); session.writePacket(buffer);
buffer.putString(service); buffer.putString("none"); session.writePacket(buffer);
buffer.putInt(1); buffer.putBytes(currentMechanism.getDER()); session.writePacket(buffer); return true;
appendSignature(session, service, name, username, algo, key, buffer); session.writePacket(buffer); return true;
return session.writePacket(buffer);
return session.writePacket(buffer);
buffer.putBoolean(false); buffer.putString(password); session.writePacket(buffer); return Result.Continued; } else {
buffer.putBoolean(false); buffer.putString(password); session.writePacket(buffer); return Result.Continued; } else {
buffer.putBoolean(false); buffer.putString(password); session.writePacket(buffer); return Result.Continued; } else {
private void sendMic(ClientSession session, String service) throws IOException, GSSException { state = ProtocolState.MIC_SENT; // Produce MIC Buffer micBuffer = new ByteArrayBuffer(); micBuffer.putBytes(session.getSessionId()); micBuffer.putByte(SshConstants.SSH_MSG_USERAUTH_REQUEST); micBuffer.putString(session.getUsername()); micBuffer.putString(service); micBuffer.putString(getName()); byte[] micBytes = micBuffer.getCompactData(); byte[] mic = context.getMIC(micBytes, 0, micBytes.length, new MessageProp(0, true)); Buffer buffer = session .createBuffer(SshConstants.SSH_MSG_USERAUTH_GSSAPI_MIC); buffer.putBytes(mic); session.writePacket(buffer); }
buffer.putBytes(bs2.array(), bs2.rpos(), bs2.available()); session.writePacket(buffer); } catch (IOException e) { throw e;
buffer.putBytes(bs2.array(), bs2.rpos(), bs2.available()); session.writePacket(buffer); } catch (IOException e) { throw e;
buffer.putBytes(bs2.array(), bs2.rpos(), bs2.available()); session.writePacket(buffer); } catch (IOException e) { throw e;