The SSH library (BSD license)
https://www.libssh2.org
f11c657a10
alloc and free calls. Since the cipher and mac layers aren't runtime extensible (yet) and we know neither of these works in sizes greater than 32, we can safely set aside a 64 byte block of data on the stack for crypting and hashing. This will make a big difference during quasi-non-blocking reads where libssh2_packet_read() is polled repeatedly. |
||
---|---|---|
include | ||
src | ||
configure.in | ||
INSTALL | ||
install-sh | ||
LICENSE | ||
Makefile.in | ||
mkinstalldirs | ||
README | ||
ssh2_sample.c | ||
TODO |
libssh2 - SSH2 library ====================== Version 0.3 ----------- Fixed libssh2_channel_read_ex(). Packet loop initialized BEFORE transport polled for new packets (should have been after). Fixed blocking issues in scp_send()/scp_recv(). Fixed degree of indirection in macerror callback. Changed packet read mechanism to use a fixed buffer and avoid unnecessary alloc/free calls. (especially while non-block looping) Added channel close callback. Added SFTP support (Using its own header file: libssh2_sftp.h) Version 0.2 ----------- Changed extended data ignorance mechanism: libssh2_channel_ignore_extended_data() changed to libssh2_channel_handle_extended_data() Macro introduced for backward compatability during beta phase. *** THE LIBSSH2_CHANNEL_IGNORE_EXTENDED_DATA() MACRO WILL BE REMOVED PRIOR TO 1.0 RELEASE *** libssh2_channel_handle_extended_data() may be passed one of three "ignore_mode" constants LIBSSH2_CHANNEL_EXTENDED_DATA_NONE Default behavior, queue ED packets and return them with read_ex LIBSSH2_CHANNEL_EXTENDED_DATA_IGNORE Equivalent to libssh2_channel_ignore_extended_data() IGNORE will implicitly flush the extended data stream(s) LIBSSH2_CHANNEL_EXTENDED_DATA_MERGE Calls to channel_read() will check both the standard data stream and the extended data stream(s) for the first available packet Changed libssh2_session_disconnect_ex() to return an error code when alloc fails Added libssh2_channel_flush_ex() and basic macros: ..._flush() ..._flush_stderr() flush_ex accepts either the streamid (0 for standard data, 1 for stderr) or one of the two following constants: LIBSSH2_CHANNEL_FLUSH_ALL Flush all streams LIBSSH2_CHANNEL_FLUSH_EXTENDED_DATA Flush all streams EXCEPT the standard data stream Added libssh2_session_callback_set() for setting ignore/debug/disconnect/macerror callbacks Added libssh2_session_method_pref() to selectively set methods and method preferences. Added libssh2_session_methods() to determine what methods were negotiated. Added libssh2_session_abstract() for retreiving &session->abstract Added libssh2_session_last_error() for retreiving error codes/messages Version 0.1 ----------- Initial Release: KEX methods: diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1, diffie-hellman-group1-sha1 Hostkey methods: ssh-rsa, ssh-dss Cipher methods: aes256-cbc, rijndael-cbc@lysator.liu.se, aes192-cbc, aes128-cbc, blowfish-cbc, arcfour, cast128-cbc, 3des-cbc, none* Compression methods: zlib, none MAC methods: hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com none* *Cipher/MAC "none" is disabled by default for security purposes, Use --enable-crypt-none and/or --enable-mac-none with ./configure to enable