/** * @param username * @param algorithm * @param encoded * @param service * @param sessionId * @param signature * @return * @throws IOException */ public boolean verifyKeySignature( String username, String algorithm, byte[] encoded, String service, byte[] sessionId, byte[] signature) throws IOException { try { SshPublicKey key = getAuthorizedKey(username, algorithm, encoded); ByteArrayWriter data = new ByteArrayWriter(); data.writeBinaryString(sessionId); data.write(SshMsgUserAuthRequest.SSH_MSG_USERAUTH_REQUEST); data.writeString(username); data.writeString(service); data.writeString("publickey"); data.write(1); data.writeString(key.getAlgorithmName()); data.writeBinaryString(key.getEncoded()); if (key.verifySignature(signature, data.toByteArray())) { return true; } } catch (IOException ex) { } return false; }