diff --git a/libssh2-vs-libssh.t b/libssh2-vs-libssh.t
index 21b3e3a..2de9f99 100644
--- a/libssh2-vs-libssh.t
+++ b/libssh2-vs-libssh.t
@@ -9,45 +9,58 @@ HEAD(libssh2 vs libssh)
TITLE(libssh2 vs libssh - A comparison)
BOXTOP
-
libssh2 and libssh both implement SSH and provide a library API for
- apps. Both support SSH, SFTP, auth, channels etc. Both are 25K-30K
- lines of code.
+
libssh2 and libssh both provide an API to develop SSH based applications.
-
Here's an attempt to put some light on the differences between them.
+
Here's an attempt to put some light on the differences between them.
-SUBTITLE(libssh2 1.5.x)
+SUBTITLE(libssh2 1.7.0)
- - BSD licensed
-
- Can set the API to either blocking or non-blocking
-
- client-side only
-
- stable API
-
- strict name space - everything is in libssh2_*
-
- C89 compatible
-
- SSH v2 only (not v1)
-
- all 100+ functions are documented in their own man pages
-
- autotools-based building
-
- supports Windows native, OpenSSL or gcrypt as backends
+
- License: 3-clause BSD License
+
- Developped in: C (30218 SLOC), sh (1102 SLOC), Perl (65 SLOC), Lisp (33 SLOC), AWK (23 SLOC)
+
- NUmber of functions: 170
+
- Key Exchange Methods: diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256
+
- Hostkey Types: ssh-rsa, ssh-dss
+
- Ciphers: aes256-ctr, aes192-ctr, aes128-ctr, aes256-cbc (rijndael-cbc@lysator.liu.se), aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, arcfour128, none
+
- Compression Schemes: zlib, zlib@openssh.com, none
+
- MAC hashes: hmac-sha2-256, hmac-sha2-512, hmac-sha1, hmac-sha1-96, hmac-md5, hmac-md5-96, hmac-ripemd160 (hmac-ripemd160@openssh.com), none
+
- Authentication: none, password, public-key, hostbased, keyboard-interactive
+
- Channels: shell, exec (incl. SCP wrapper), direct-tcpip, subsystem
+
- Global Requests: tcpip-forward
+
- Channel Requests: x11, pty, exit-signal, keepalive@openssh.com
+
- Subsystems: sftp(version 3), publickey(version 2)
+
- SFTP: statvfs@openssh.com, fstatvfs@openssh.com
+
- Thread-safe: just don't share handles simultaneously
+
- Non-blocking: it can be used both blocking and non-blocking
+
- Your sockets: the app hands over the socket, calls select() etc.
+
- OpenSSL, Libgcrypt or WinCNG (native since Windows Vista): builds with either
-
-SUBTITLE(libssh 0.6.x)
+SUBTITLE(libssh 0.7.x)
- - LGPL licensed
-
- Blocking and non-blocking API, callback based server implentation.
-
- client-side and server-side support
-
- Event model based on poll(2), or a poll(2)-emulation.
-
- API that still changes, but rarely
-
- C99 support required
-
- optional SSH version 1 support
-
- doxygen-generated docs
-
- CMake-based building
-
- Key exchange supports curve25519-sha256@libssh.org and ecdh-sha2-nistp256
-
- Hostkey Types support ecdsa-sha2-nistp256
-
- Channels support also keepalive@openssh.com and auth-agent-req@openssh.com
-
- Support for GSSAPI (Keberos authentication)
-
- Support for curve25519-sha256@libssh.org
-
- supports OpenSSL or gcrypt as backends
+
- License: GNU Lesser General Public License
+
- Developped in: C (46021 SLOC), C++ (1181 SLOC), sh (186 SLOC), Python (9 SLOC)
+
- NUmber of functions: 213
+
- Key Exchange Methods: curve25519-sha256@libssh.org, ecdh-sha2-nistp256, diffie-hellman-group1-sha1, diffie-hellman-group14-sha1
+
- Hostkey Types: ssh-ed25519, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-rsa, ssh-dss, ssh-rsa, ssh-dss
+
- Ciphers: aes256-ctr, aes192-ctr, aes128-ctr, aes256-cbc (rijndael-cbc@lysator.liu.se), aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, none
+
- Compression Schemes: zlib, zlib@openssh.com, none
+
- MAC hashes: hmac-sha1, none
+
- Authentication: none, password, public-key, hostbased, keyboard-interactive, gssapi-with-mic
+
- Channels: shell, exec (incl. SCP wrapper), direct-tcpip, subsystem, auth-agent-req@openssh.com
+
- Global Requests: tcpip-forward, forwarded-tcpip
+
- Channel Requests: x11, pty, exit-status, signal, exit-signal, keepalive@openssh.com, auth-agent-req@openssh.com
+
- Subsystems: sftp(version 3), OpenSSH Extensions
+
- SFTP: statvfs@openssh.com, fstatvfs@openssh.com
+
- Thread-safe: Just don't share sessions
+
- Non-blocking: it can be used both blocking and non-blocking
+
- Your sockets: the app hands over the socket, or uses libssh sockets
+
- OpenSSL or gcrypt: builds with either
+
- Client and server support
+
- SSHv2 and SSHv1 protocol support
+
- Supports Linux, UNIX, BSD, Solaris, OS/2 and Windows
+
- Automated test cases with nightly tests
+
- Event model based on poll(2), or a poll(2)-emulation.
SUBTITLE(Feature by feature)
@@ -55,95 +68,86 @@ SUBTITLE(Feature by feature)
The same data, in a table:
-item | libssh2 | libssh |
-
-
-Licence |
-BSD |
-LGPL |
-
-
-
-Server-side support |
-no |
-yes |
-
-
-
-GSSAPI authentication |
-no |
-yes |
-
-
-
-Eliptic Curve Key Exchange |
-no |
-yes |
-
-
-
-Eliptic Curve Hostkeys |
-no |
-yes |
-
-
-
-Automated test cases with nightly tests |
-no |
-yes |
-
-
-
-Stable API |
-yes |
-mostly |
-
-
-
-C compatibility |
-C89 |
-C99 |
-
-
-
-strict namespace |
-yes |
-no |
-
-
-
-man pages for all functions |
-yes |
-no |
-
-
-
-Doxygen documentation for all functions |
-no |
-yes |
-
-
-
-Tutorial |
-no |
-yes |
-
-
-
-SSHv1 support |
-no |
-yes |
-
-
-
-Build concept |
-Autotools |
-CMake |
-
-
+
+
+ item |
+ libssh2 |
+ libssh |
+
+
+
+
+ Licence |
+ BSD |
+ LGPL |
+
+
+ Server-side support |
+ no |
+ yes |
+
+
+ GSSAPI authentication |
+ no |
+ yes |
+
+
+ Eliptic Curve Key Exchange |
+ no |
+ yes |
+
+
+ Eliptic Curve Hostkeys |
+ no |
+ yes |
+
+
+ Automated test cases with nightly tests |
+ no (tests available) |
+ yes |
+
+
+ Stable API |
+ yes |
+ mostly |
+
+
+ C compatibility |
+ C89 |
+ C99 |
+
+
+ strict namespace |
+ yes |
+ yes |
+
+
+ man pages for all functions |
+ yes |
+ no |
+
+
+ Doxygen documentation for all functions |
+ no |
+ yes |
+
+
+ Tutorial |
+ no |
+ yes |
+
+
+ SSHv1 support |
+ no |
+ yes |
+
+
+ Build concept |
+ Autotools and CMake |
+ CMake |
+
+
-
-
BOXBOT
#include "footer.t"