ultimatepp/uppsrc/Core/SSH
oblivion b9bf45326e Core/SSH: ECDSA 256/384/521 and ED 25519 based host keys are now recognized.
Core/SSH: Docs are updated to reflect the elliptic curve KEX and PK methods.

git-svn-id: svn://ultimatepp.org/upp/trunk@15950 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2021-05-12 22:55:13 +00:00
..
libssh2 Core/SSH: Minor SFtpStream improvements, bug fixes, cleanup. 2020-11-17 14:53:29 +00:00
src.tpp Core/SSH: ECDSA 256/384/521 and ED 25519 based host keys are now recognized. 2021-05-12 22:55:13 +00:00
Channels.cpp Core/SSH: SetError internal method is renamed as ThrowError to better describe its function. 2020-11-23 22:24:35 +00:00
Channels.h Core/SSH: SshExec: Fixed a truncation issue with stdout/stderr buffers. 2020-07-21 18:31:06 +00:00
Copying Core/SSH: ECDSA 256/384/521 and ED 25519 based host keys are now recognized. 2021-05-12 22:55:13 +00:00
Core.cpp Core/SSH: SetError internal method is renamed as ThrowError to better describe its function. 2020-11-23 22:24:35 +00:00
Core.h Core/SSH: SetError internal method is renamed as ThrowError to better describe its function. 2020-11-23 22:24:35 +00:00
Exec.cpp Core/SSH: SshExec: Fixed a truncation issue with stdout/stderr buffers. 2020-07-21 18:31:06 +00:00
Hosts.cpp Core/SSH: ECDSA 256/384/521 and ED 25519 based host keys are now recognized. 2021-05-12 22:55:13 +00:00
Hosts.h Core/SSH: ECDSA 256/384/521 and ED 25519 based host keys are now recognized. 2021-05-12 22:55:13 +00:00
Issues SSH: SshShell: Console window resize notification workaround for MacOS. 2019-02-19 16:31:02 +00:00
libssh2upp.c Core/SSH: libssh2 is upgraded to v1.9.0 2020-11-17 14:41:50 +00:00
Malloc.cpp Core/SSH: Minor fixes & decprecated methods are marked with [[deprecated]] attribute. 2020-09-07 18:53:40 +00:00
ReadMe SSH: Docs updated. 2019-10-16 21:55:37 +00:00
Scp.cpp Core/SSH: SetError internal method is renamed as ThrowError to better describe its function. 2020-11-23 22:24:35 +00:00
Session.cpp Core/SSH: Cosmetics. 2020-11-24 12:37:03 +00:00
Session.h Core/SSH: Typos fixed. 2020-11-19 20:47:12 +00:00
SFtp.cpp Core/SSH: SetError internal method is renamed as ThrowError to better describe its function. 2020-11-23 22:24:35 +00:00
SFtp.h Core/SSH: Typos fixed. 2020-11-19 20:47:12 +00:00
SFtpStream.cpp Core/SSH: Minor SFtpStream improvements, bug fixes, cleanup. 2020-11-17 14:53:29 +00:00
Shell.cpp Core/SSH: SetError internal method is renamed as ThrowError to better describe its function. 2020-11-23 22:24:35 +00:00
SSH.h SSH: CLANG warning is fixed. 2019-10-22 12:18:24 +00:00
SSH.upp SSH: Package description is corrected. 2021-01-20 08:48:43 +00:00
Todo Core/SSH: libssh2 is upgraded to v1.9.0 2020-11-17 14:41:50 +00:00
Tunnel.cpp Core/SSH: SetError internal method is renamed as ThrowError to better describe its function. 2020-11-23 22:24:35 +00:00

SSH package for U++
--------------------
SSH package is a flexible, easy-to-use, yet powerful libssh2 wrapper for Ultimate++.
It supports both console and GUI-based applications on POSIX-compliant operating systems and
MS Windows (tm).

Classes:
--------------------

- Base (core) class  -> Ssh
  - Ssh session        -----> SshSession
  - Sftp subsystem     -----> SFtp
     -  SFtp Stream interface       -----> SFtpStream
     -  File system transparency    -----> SFtpFileSystemInfo 
  - Ssh channel        -----> SshChannel
      - Scp channel                 -----> Scp
      - Exec channel                -----> SshExec
      - Real-time interactive shell -----> SshShell
      - X11 forwarding              -----> SshShell (as operation mode)      
      - Tcp/IP and port forwarding  -----> SshTunnel
- Known hosts manager -> SshHosts

Features and Highlights:
--------------------

- Ssh-derived classes have pick semantics, based on RAII principle, support RTTI, and allow
  polymorphism (i.e. different classes can be stored in the same array, etc.) through a common
  interface. 
- Uses U++'s memory manager (Native manager (malloc) is also a compile-time option)
- Uses OpenSSL by default. 
- Supports multithreading.
- Supports 3rd-party network proxies.
- Supports known hosts verification mechanism.
- Supports password, public key, host-based, and keyboard-interactive authentication methods.
- Supports ssh-agents.
- Supports real-time interactive command line (shell) interface with both console and GUI integration
  (SshShell works on both Windows and Posix-compliant OSes)
- Supports X11 forwarding. 
  (A single SShShell instance is capable of handling multiple X11 requests simultaneously.)
- Supports Tcp/IP and port forwarding.
- Supports stream operations on SFTP objects.
- Supports access to sftp folder hiearcy in a file-system-agnostic (transparent) way.
- Supports detailed (full) debug logging.

Reference examples:
-------------------

- SshBasics:    Demonstrates basic capabilities of SSH package.
- SFtpFileSel:  Demonstrates FileSel integration of SFtp class, using FileSystemInfo interface.
- SFtpBrowser:  Demonstrates a basic sftp browser with GUI.