Go to file
Daniel Stenberg c3bcdd88a4 cleanups: better binary packet gen, size_t fixes and PACKET_* removal
I'll introduce a new internal function set named

 _libssh2_store_u32
 _libssh2_store_u64
 _libssh2_store_str

That can be used all through the library to build binary outgoing
packets.  Using these instead of the current approach removes
hundreds of lines from the library while at the same time greatly
enhances readability. I've not yet fully converted everything to
use these functions.

I've converted LOTS of 'unsigned long' to 'size_t' where
data/string lengths are dealt with internally. This is The Right
Thing and it will help us make the transition to our
size_t-polished API later on as well.

I'm removing the PACKET_* error codes. They were originally
introduced as a set of separate error codes from the transport
layer, but having its own set of errors turned out to be very
awkward and they were then converted into a set of #defines that
simply maps them to the global libssh2 error codes instead. Now,
I'l take the next logical step and simply replace the PACKET_*
defines with the actual LIBSSH2_ERROR_* defines. It will increase
readability and decrease confusion.

I also separated packet stuff into its own packet.h header file.
2010-04-17 13:18:15 +02:00
docs clarified the return code 2010-04-17 09:55:24 +02:00
example Fix build problem. 2010-03-19 09:40:50 +01:00
include version in header file now says 1.2.6-DEV 2010-04-13 23:39:39 +02:00
m4 Ignore libssh2_config.h.in and stamp-h2 in example/ and remove .cvsignore 2010-01-30 00:25:46 +01:00
nw Move examples from example/simple to example/. 2009-12-19 10:54:45 +01:00
src cleanups: better binary packet gen, size_t fixes and PACKET_* removal 2010-04-17 13:18:15 +02:00
tests make it C90 compliant 2010-04-12 22:09:38 +02:00
win32 ignore libssh2.dsp 2010-03-23 21:59:12 +01:00
.gitattribute Ensure that win32/libssh2.dsp will be generated with CRLF line endings 2009-10-17 02:58:53 +02:00
.gitignore ignore TAGS ("make tags" makes them) 2010-03-24 15:38:44 +01:00
acinclude.m4 Fix shell usage. 2009-09-23 09:39:47 +02:00
AUTHORS added contributors from the 1.2 release notes 2009-08-11 10:11:11 +02:00
buildconf Make it portable; test uses = for string comparison (not ==). Indent. 2010-02-23 15:27:18 +01:00
config.rpath Use Bruno's M4 macros to search for libgcrypt. 2007-04-05 10:23:54 +00:00
configure.ac Fix OpenSSL AES-128-CTR detection. 2010-04-14 14:04:45 +02:00
COPYING Support AES-Counter ciphers. 2009-11-16 16:04:00 +01:00
get_ver.awk fixed space detection 2007-06-13 22:20:13 +00:00
HACKING Mention libssh2-style.el. 2009-10-29 10:39:15 +01:00
libssh2-style.el helper script for emacs users to get the code style done libssh2-style 2008-12-20 12:36:50 +00:00
libssh2.pc.in first take at producing and installing a pkg-config file 2009-09-01 09:55:25 +02:00
Makefile.am Ensure that win32/libssh2.dsp will be generated with CRLF line endings 2009-10-17 02:58:53 +02:00
Makefile.inc cleanups: better binary packet gen, size_t fixes and PACKET_* removal 2010-04-17 13:18:15 +02:00
maketgz Added LIBSSH2_TIMESTAMP to the public header and it contains the timestamp of 2007-07-15 21:36:29 +00:00
NEWS NEWS: add the stuff from the version 1.2.5 RELEASE-NOTES 2010-04-13 23:37:47 +02:00
NMakefile Move examples from example/simple to example/. 2009-12-19 10:56:03 +01:00
README Update mailing list URL to new address 2009-07-10 20:11:29 +02:00
RELEASE-NOTES 1.2.6: clean the RELEASE-NOTES for next release round 2010-04-13 23:38:21 +02:00
TODO at next soname bump remove libssh2_knownhost_add() 2010-03-24 15:39:13 +01:00

libssh2 - SSH2 library
======================

libssh2 is a library implementing the SSH2 protocol, available under
the revised BSD license.

Web site: http://www.libssh2.org/

Mailing list: http://cool.haxx.se/mailman/listinfo/libssh2-devel

Generic installation instructions are in INSTALL.  Some ./configure
options deserve additional comments:

	* --enable-crypt-none

		The SSH2 Transport allows for unencrypted data
		transmission using the "none" cipher.  Because this is
		such a huge security hole, it is typically disabled on
		SSH2 implementations and is disabled in libssh2 by
		default as well.

		Enabling this option will allow for "none" as a
		negotiable method, however it still requires that the
		method be advertized by the remote end and that no
		more-preferable methods are available.

	* --enable-mac-none

		The SSH2 Transport also allows implementations to
		forego a message authentication code.  While this is
		less of a security risk than using a "none" cipher, it
		is still not recommended as disabling MAC hashes
		removes a layer of security.

		Enabling this option will allow for "none" as a
		negotiable method, however it still requires that the
		method be advertized by the remote end and that no
		more-preferable methods are available.

	* --disable-gex-new

		The diffie-hellman-group-exchange-sha1 (dh-gex) key
		exchange method originally defined an exchange
		negotiation using packet type 30 to request a
		generation pair based on a single target value.  Later
		refinement of dh-gex provided for range and target
		values.  By default libssh2 will use the newer range
		method.

		If you experience trouble connecting to an old SSH
		server using dh-gex, try this option to fallback on
		the older more reliable method.

  	* --with-libgcrypt
  	* --without-libgcrypt
	* --with-libgcrypt-prefix=DIR

		libssh2 can use the Libgcrypt library
		(http://www.gnupg.org/) for cryptographic operations.
		Either Libgcrypt or OpenSSL is required.

		Configure will attempt to locate Libgcrypt
		automatically.

 		If your installation of Libgcrypt is in another
		location, specify it using --with-libgcrypt-prefix.

	* --with-openssl
	* --without-openssl
	* --with-libssl-prefix=[DIR]

		libssh2 can use the OpenSSL library
		(http://www.openssl.org) for cryptographic operations.
		Either Libgcrypt or OpenSSL is required.

		Configure will attempt to locate OpenSSL in the
		default location.

		If your installation of OpenSSL is in another
		location, specify it using --with-libssl-prefix.

	* --with-libz
	* --without-libz
	* --with-libz-prefix=[DIR]

		If present, libssh2 will attempt to use the zlib
		(http://www.zlib.org) for payload compression, however
		zlib is not required.

		If your installation of Libz is in another location,
		specify it using --with-libz-prefix.

	* --enable-debug

		Will make the build use more pedantic and strict compiler
		options as well as enable the libssh2_trace() function (for
		showing debug traces).