1
1

1882 Коммитов

Автор SHA1 Сообщение Дата
Peter Stuge
ab8f0bc0bf acinclude.m4: Add CPPFLAGS=-I$prefix-dir/include in LIBSSH2_LIB_HAVE_LINKFLAGS
This is absolutely neccessary for header files to be found when
AC_LIB_HAVE_LINKFLAGS searches for libraries.
2016-11-16 22:25:16 +01:00
Peter Stuge
5621a97e38 acinclude.m4: Make saved variables in LIBSSH2_LIB_HAVE_LINKFLAGS uniform 2016-11-16 22:23:53 +01:00
Peter Stuge
ddb0c65856 docs/HACKING.CRYPTO: Improve documentation for autoconf build system 2016-11-16 22:20:02 +01:00
Alex Arslan
8dc9f4c156 Check for netinet/in.h in the tests cmake file (#148) 2016-11-16 08:45:38 +00:00
Patrick Monnerat
028a0ba4ed Define new Diffie-Hellman context for mbedTLS 2016-11-13 18:14:50 +00:00
monnerat
c8c1b4a050 Make libssh2 work again on os400. (#118)
* os400: minimum supported OS version is now V6R1.
Do not log compiler informational messages.

* Implement crypto backend specific Diffie-Hellman computation.

This feature is now needed on os400 because the QC3 library does not
implement bn_mod_exp() natively. Up to now, this function was emulated using
an RSA encryption, but commits ca5222ea819cc5ed797860070b4c6c1aeeb28420 and
7934c9ce2a029c43e3642a492d3b9e494d1542be (CVE-2016-0787) broke the emulation
because QC3 only supports RSA exponents up to 512 bits.

Happily, QC3 supports a native API for Diffie-Hellman computation, with
opaque random value: this commit implements the use of this API and, as a
side effect, enables support of this feature for any other crypto backend that
would use it.

A "generic" Diffie-Hellman computation internal API supports crypto backends
not implementing their own: this generic API uses the same functions as before.

* Fix typos in docs/HACKING.CRYPTO.
2016-11-12 18:15:49 +00:00
Peter Stuge
c81b2384ac acinclude.m4: Fixup OpenSSL EVP_aes_128_ctr() detection 2016-11-12 10:46:06 +00:00
Peter Stuge
e70e71a3b1 configure.ac: Add --with-crypto= instead of many different --with-$backend
The new --with-crypto option replaces the previous backend-specific
--with-{openssl,libgcrypt,mbedtls,wincng} options and fixes some issues.

* libgcrypt or mbedtls would previously be used whenever found, even
  if configure was passed --without-libgcrypt or --without-mbedtls.

* If --with-$backend was specified then configure would not fail even
  if that library could not be found, and would instead use whichever
  crypto library was found first.

The new option defaults to `auto`, which makes configure check for all
supported crypto libraries in turn, choosing the first one found, or
exiting with an error if none can be found.
2016-11-12 10:46:06 +00:00
Tony Kelman
e83bbc48ab Build mbedtls from source on Travis (#133)
* Revert "Revert "travis: Test mbedtls too""

This reverts commit c4c60eac5ca756333034b07dd9e0b97741493ed3.

* travis: Build mbedtls from source on Travis

Use TOOLCHAIN_OPTION when calling cmake on mbedtls

* tests: only run DSA tests for non-mbedtls

crypto backends
2016-11-12 10:41:48 +00:00
Peter Stuge
a68356418d configure.ac src/Makefile.am: Remove dead AM_CONDITIONAL(OS400QC3)
According to os400/README400 this backend can not be built
with configure+make, and the conditional is hard coded to false.
2016-11-05 22:18:04 +00:00
Peter Stuge
6b0a09bc11 configure.ac: Add -DNDEBUG to CPPFLAGS in non-debug builds
There are a few uses of assert() in channel.c, sftp.c and transport.c.
2016-11-05 22:18:04 +00:00
Peter Stuge
b3636eaad5 src/global.c: Fix conditional AES-CTR support
Most of libssh2 already has conditional support for AES-CTR according to
the LIBSSH2_AES_CTR crypto backend #define, but global.c needed fixing.
2016-11-05 22:18:04 +00:00
Peter Stuge
3806115d3d src/crypto.h src/userauth.c: Fix conditional RSA support
Most of libssh2 already has conditional support for RSA according to
the LIBSSH2_RSA crypto backend #define, but crypto.h and userauth.c
needed a few small fixes.
2016-11-05 22:18:04 +00:00
Peter Stuge
8a7232be61 src/kex.c: Cast libssh2_sha{1,256}_update data arguments properly
The update functions take a const unsigned char * but were called
with (const) char * in some places, causing unneccessary warnings.
2016-11-05 22:17:02 +00:00
Peter Stuge
ef60f292d2 docs/HACKING.CRYPTO: Fix two type typos 2016-11-05 22:17:02 +00:00
Sergei Trofimovich
ced924b78a acinclude.m4: fix ./configure --with-libgcrypt
The change fixes passing of bogus gcrypt prefix.
Reproducible as:

    $ ./configure --with-libgcrypt
    $ make V=1
    ...
    /bin/sh ../libtool  --tag=CC   --mode=link gcc  -g -O2 -Iyes/include -version-info 1:1:0 -no-undefined -export-symbols-regex '^libssh2_.*' -lgcrypt  -lz -Lyes/lib -o libssh2.la -rpath /usr/local/lib channel.lo comp.lo crypt.lo hostkey.lo kex.lo mac.lo misc.lo packet.lo publickey.lo scp.lo session.lo sftp.lo userauth.lo transport.lo version.lo knownhost.lo agent.lo libgcrypt.lo pem.lo keepalive.lo global.lo   -lgcrypt
    ../libtool: line 7475: cd: yes/lib: No such file or directory
    libtool:   error: cannot determine absolute directory name of 'yes/lib'

These
    -Iyes/include
    -Lyes/lib
come from libgcrypt code autodetection:
  if test -n "$use_libgcrypt" && test "$use_libgcrypt" != "no"; then
     LDFLAGS="$LDFLAGS -L$use_libgcrypt/lib"
     CFLAGS="$CFLAGS -I$use_libgcrypt/include"

I assume it's a typo to use yes/no flag as a prefix and changed
it to '$with_libgcrypt_prefix'.

Reported-by: Mikhail Pukhlikov <cynede@gentoo.org>
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
2016-11-05 21:58:07 +00:00
Zenju
1d8db1d854 libssh2_sftp_init hang: last error not set
The problem is that the original if statement simply returns NULL, but does not set the session last error code. The consequence is that libssh2_sftp_init() also returns NULL and libssh2_session_last_errno(sshSession) == LIBSSH2_ERROR_NONE.

In my test the LIBSSH2_ERROR_EAGAIN is coming from sftp.c row 337:
            if(4 != sftp->partial_size_len)
                /* we got a short read for the length part */
                return LIBSSH2_ERROR_EAGAIN;

with "partial_size_len == 0". Not sure if this is expected.
2016-11-05 21:50:24 +00:00
Aidan Hobson Sayers
18fd7a0894 docs: correctly describe channel_wait_eof
channel_wait_eof waits for channel->remote.eof, which is set on
receiving a `SSH_MSG_CHANNEL_EOF` message. This message is sent
when a party has no more data to send on a channel.
2016-11-05 21:05:20 +00:00
Zenju
33637f136e Fix MSVC 14 compilation warning (#92)
1>  sftp.c
1>libssh2-files\src\sftp.c(3393): warning C4456: declaration of 'retcode' hides previous local declaration
1>  libssh2-files\src\sftp.c(3315): note: see declaration of 'retcode'
2016-11-05 21:04:03 +00:00
Salvador Fandino
84172e5188 LIBSSH2_ERROR_CHANNEL_WINDOW_FULL: add new error code
In order to signal that the requested operation can not succeed
because the receiving window had been exhausted, the error code
LIBSSH2_ERROR_BUFFER_TOO_SMALL has been reused but I have found
that in certain context it may be ambigous.

This patch introduces a new error code,
LIBSSH2_ERROR_CHANNEL_WINDOW_FULL, exclusive to signal that condition.
2016-11-05 19:45:33 +00:00
Salvador Fandino
fdfcb2f9e6 channel_wait_eof: handle receive window exhaustion
Until now, in blocking mode, if the remote receiving window is
exhausted this function hangs forever as data is not read and the
remote side just keeps waiting for the window to grow before sending
more data.

This patch, makes this function check for that condition and abort
with an error when it happens.
2016-11-05 19:45:33 +00:00
Salvador Fandino
d013a6b070 channel_wait_closed: don't fail when unread data is queued
This function was calling channel_wait_eof to ensure that the EOF
packet has already been received, but that function also checks that
the read data queue is empty before reporting the EOF. That caused
channel_wait_closed to fail with a LIBSSH2_ERROR_INVAL when some data
was queued even after a successful call to libssh2_channel_wait_eof.

This patch changes libssh2_channel_wait_closed to look directly into
channel->remote.eof so that both libssh2_channel_wait_eof and
libssh2_channel_wait_closed bahave consistently.
2016-11-05 19:45:33 +00:00
Salvador Fandino
56dffb0262 channel_wait_eof: fix debug message 2016-11-05 19:45:33 +00:00
Daniel Stenberg
d75e9c5c0d libssh2.h: start working on 1.8.1 2016-10-25 08:50:06 +02:00
Daniel Stenberg
30e9c1347e RELEASE-NOTES: adjusted for 1.8.0 2016-10-25 08:43:39 +02:00
Kamil Dudka
e9207ee2d1 Revert "aes: the init function fails when OpenSSL has AES support"
This partially reverts commit f4f2298ef3635acd031cc2ee0e71026cdcda5864
because it caused the compatibility code to call initialization routines
redundantly, leading to memory leakage with OpenSSL 1.1 and broken curl
test-suite in Fedora:

88 bytes in 1 blocks are definitely lost in loss record 5 of 8
   at 0x4C2DB8D: malloc (vg_replace_malloc.c:299)
   by 0x72C607D: CRYPTO_zalloc (mem.c:100)
   by 0x72A2480: EVP_CIPHER_meth_new (cmeth_lib.c:18)
   by 0x4E5A550: make_ctr_evp.isra.0 (openssl.c:407)
   by 0x4E5A8E8: _libssh2_init_aes_ctr (openssl.c:471)
   by 0x4E5BB5A: libssh2_init (global.c:49)
2016-10-20 17:32:27 +02:00
Charles Collicutt
29bcf75fb1 libssh2_wait_socket: Fix comparison with api_timeout to use milliseconds (#134)
Fixes #74
2016-10-19 09:49:37 +02:00
Charles Collicutt
15851ba78e Set err_msg on _libssh2_wait_socket errors (#135) 2016-10-19 09:46:41 +02:00
Daniel Stenberg
c4c60eac5c Revert "travis: Test mbedtls too"
This reverts commit 3e6de50a24815e72ec5597947f1831f6083b7da8.

Travis doesn't seem to support the mbedtls-dev package
2016-10-17 10:15:16 +02:00
Daniel Stenberg
e46b4f9448 maketgz: support "only" to only update version number locally
and fix the date output locale
2016-10-17 09:46:18 +02:00
Daniel Stenberg
42941b44f8 configure: make the --with-* options override the OpenSSL default
... previously it would default to OpenSSL even with the --with-[crypto]
options used unless you specificly disabled OpenSSL. Now, enabling another
backend will automatically disable OpenSSL if the other one is found.
2016-09-27 08:06:35 +02:00
Keno Fischer
1b808234e3 docs: Add documentation on new cmake/configure options 2016-09-27 08:06:35 +02:00
Keno Fischer
dc8f7ca3ab configure: Add support for building with mbedtls 2016-09-27 08:06:35 +02:00
wildart
3e6de50a24 travis: Test mbedtls too 2016-09-27 08:06:34 +02:00
wildart
186f1a2d75 crypto: add support for the mbedTLS backend
Closes #132
2016-09-27 08:06:29 +02:00
wildart
289e9482e4 cmake: Add CLEAR_MEMORY option, analogously to that for autoconf 2016-09-27 08:02:55 +02:00
Daniel Stenberg
aa2ae0c359 README.md: fix link typo 2016-09-27 00:17:29 +02:00
Daniel Stenberg
7b2c445349 README: markdown version to look nicer on github 2016-09-27 00:16:45 +02:00
Taylor Holberton
64ebfd8182 openssl: add OpenSSL 1.1.0 compatibility 2016-09-05 12:28:51 +02:00
Antenore Gatta
32d0965ca4 tests: HAVE_NETINET_IN_H was not defined correctly (#127)
Fixes #125
2016-09-04 00:44:24 +02:00
Daniel Stenberg
daf2cc1470 SECURITY: fix web site typo 2016-08-21 10:41:23 +02:00
Daniel Stenberg
ef8063b924 SECURITY: security process 2016-08-20 17:37:25 +02:00
Alexander Lamaison
cf80f2f4b5 Basic dockerised test suite.
This introduces a test suite for libssh2. It runs OpenSSH in a Docker
container because that works well on Windows (via docker-machine) as
well as Linux. Presumably it works on Mac too with docker-machine, but
I've not tested that.

Because the test suite is docker-machine aware, you can also run it
against a cloud provider, for more realistic network testing, by setting
your cloud provider as your active docker machine. The Appveyor CI setup
in this commit does that because Appveyor doesn't support docker
locally.
2016-08-14 16:03:25 +01:00
Viktor Szakats
1fc7c8571e misc.c: Delete unused static variables
Closes #114
2016-08-03 10:15:59 +02:00
Will Cosgrove
7934c9ce2a Merge pull request #103 from willco007/patch-2
Fix for security issue CVE-2016-0787
2016-04-09 00:54:03 +02:00
Zenju
ded55537ac Fix MSVC 14 compilation errors
For _MSC_VER == 1900 these macros are not needed and create problems:



1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h(1925): warning C4005: 'snprintf': macro redefinition (compiling source file libssh2-files\src\mac.c)

1> \win32\libssh2_config.h(27): note: see previous definition of 'snprintf' (compiling source file libssh2-files\src\mac.c)

1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h(1927): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration (compiling source file libssh2-files\src\mac.c)
2016-04-02 11:19:04 +01:00
Brad Harder
4138f1e412 _libssh2_channel_open: speeling error fixed in channel error message 2016-03-26 23:57:14 +01:00
Alexander Lamaison
7b9a9a782d Link with crypt32.lib on Windows.
Makes linking with static OpenSSL work again.  Although it's not
required for dynamic OpenSSL, it does no harm.

Fixes #98.
2016-03-15 22:09:13 +00:00
Craig A. Berry
e6278aa2a6 Tweak VMS help file building.
Primarily this is handling cases where top-level files moved into
the docs/ directory.  I also corrected a typo and removed the
claim that libssh2 is public domain.
2016-03-15 21:58:26 +00:00
Craig A. Berry
a239e637c9 Build with standard stat structure on VMS.
This gets us large file support, is available on any VMS release
in the last decade and more, and gives stat other modern features
such as 64-bit ino_t.
2016-03-15 21:57:45 +00:00