This project is mirrored from https://git.libssh.org/projects/libssh.git.
Pull mirroring updated .
- 15 Feb, 2021 1 commit
-
-
DDoSolitary authored
Signed-off-by:
DDoSolitary <DDoSolitary@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
- 04 Feb, 2021 1 commit
-
-
DDoSolitary authored
Calling set_target_properties directly overrides previously set flags, so replace them with target_compile_definitions and target_link_options. Signed-off-by:
DDoSolitary <DDoSolitary@gmail.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
- 28 Jan, 2021 3 commits
-
-
Jakub Jelen authored
Thanks coverity CID 1445481 Signed-off-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Jakub Jelen authored
Signed-off-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Jakub Jelen authored
Signed-off-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
- 15 Jan, 2021 1 commit
-
-
Jakub Jelen authored
Thanks oss-fuzz https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29611Signed-off-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
- 12 Jan, 2021 7 commits
-
-
Anderson Sasaki authored
This adds a test to check if the internal implementation is not used when it is not supposed to be used. To be able to override functions using LD_PRELOAD, a shared version of the torture library was added, as well as a shared library for each of the algorithms implemented internally (ChaCha20, Poly1305, curve25519, and ed25519). Signed-off-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Anderson Sasaki authored
Previously, the mbed TLS implementation wouldn't be use at all when available, being the internal implementation always used instead. This corrects few bugs and makes the mbed TLS implementation to be used when ChaCha20 and Poly1305 are available. This also makes the constant time comparison to be used when checking the authentication tag. Signed-off-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Anderson Sasaki authored
When checking the authentication tag, use secure_memcmp() instead of memcmp(). Signed-off-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Anderson Sasaki authored
When comparing the authentication tag for chacha20-poly1305, use the constant time CRYPTO_memcmp() instead of memcmp(). Signed-off-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Anderson Sasaki authored
Move the secure_memcmp() function to a shared source to make it available internally for other crypto implementations. Signed-off-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Jakub Jelen authored
Thanks oss-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28490Signed-off-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Jakub Jelen authored
Signed-off-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
- 11 Jan, 2021 16 commits
-
-
Anderson Sasaki authored
The test for delayed close asks for the execution of a command that generates big output (larger than the default window) to make data to remain in buffers while the close message arrives, triggering the delayed channel closure. Signed-off-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
-
Tom Deseyn authored
Signed-off-by:
Tom Deseyn <tom.deseyn@gmail.com> Reviewed-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
-
Tom Deseyn authored
If the SSH2_MSG_CHANNEL_CLOSE was previously received, change the channel state to SSH_STATE_CHANNEL_CLOSED in ssh_channel_read_timeout() after reading all data available. Fixes T31 Signed-off-by:
Tom Deseyn <tom.deseyn@gmail.com> Reviewed-by:
Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
-
Dirkjan Bussink authored
OpenSSL 1.0.1 has support for CTR & GCM modes so the checks here are no longer needed. This allows for a bunch of additional cleanup of the old code. As for old MacOS versions etc, LibreSSL is a kind of compatibility layer there but things already don't work anyway with that, so it doesn't break anything that isn't already broken. OpenSSL is needed on MacOS separately anyway (like installed with Homebrew). Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
CRYPTO_THREADID_set_callback is available since 1.0.1 which is the oldest supported version. This means the check and compatibility code can be removed. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
Since OpenSSL 1.0.1 is the minimum version, this function is always available so no compatibility check is needed anymore. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
This can be implemented with the init directly when the context is reused. When a new cipher context is allocated, no initialization call is needed either so this moves the logic to one place as well. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
Now that the minimum OpenSSL version is 1.0.1, we know that the EVP HMAC API is always available. This switches to this API. The existing API is deprecated for OpenSSL 3.0. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
This fixes the formatting for src/libcrypto.c for the last bits where it is not correct. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
The HMAC_CTX_free function in the compat layer already handles this so there's no need to add conditional logic to the code here. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
This specific cleanup function describes better what happens here and is available for older OpenSSL releases. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
This isn't referenced anywhere outside of the compatibility layer so it is unneeded. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
The EVP_MD_CTX_reset function is not used anywhere outside of the compat layer and is not needed there. The only usage in the compat layer is for cleanup, but EVP_MD_CTX_cleanup can be used for that which is availble at least since OpenSSL 0.9.8. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
Older OpenSSL version have a cleanup function that can be used here. This removes a whole bunch of now no longer needed logic and custom conditionals. These functions have existed since 0.9.8 and can be used here. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
This function is not needed, because in each case it is used, we follow it up immediately with an initialization function call. This means that the zeroing here is unneeded, since the initialization already guarantees things end up in the right state. It also swaps the reset call with a simpler init call, also because reset is implemented as init with a return value that is always 1. That means the more complex logic is not needed at all. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
Dirkjan Bussink authored
EVP_MD_CTX_new / EVP_MD_CTX_free is the current recommended / documented API. The other names are defined as aliases for backwards compatibility. The other part here is that EVP_MD_CTX_init is not needed for a context allocated with EVP_MD_CTX_new. Only for the compatibility path for older OpenSSL is the init needed if the structure is allocated directly. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com>
-
- 01 Jan, 2021 1 commit
-
-
Andreas Schneider authored
Signed-off-by:
Andreas Schneider <asn@cryptomilk.org>
-
- 22 Dec, 2020 3 commits
-
-
Dirkjan Bussink authored
This is now the minimum version, so check it in the CMake configuration. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Dirkjan Bussink authored
OpenSSL 0.9.7 is already not supported, so clean up the old legacy bits for that as well. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Dirkjan Bussink authored
This updates the minimum version requirement for OpenSSL in the documentation to 1.0.1 and also updates the practical minimum CMake version. Why pick 1.0.1 as the minimum? Main reason is whatever is still out there with long term support contracts etc. One of the oldest I could find is Ubuntu 14.04 which still has paid extended support and is on 1.0.1. Another reason that 1.0.1 is probably a good minimum is a bit more involved. 1.0.1 is the first version to add TLS 1.2. Large parts of the internet have TLS 1.2 as a minimum requirement. This means that systems with OpenSSL older than 1.0.1 already can't access large parts of the internet anyway, so not supporting the latest libssh there either is ok I think. Bumping minimum support also means things like the HMAC API can be moved to the more recent EVP style APIs and things can be more easily made compatible with the deprecated APIs in OpenSSL 3.0. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
- 14 Dec, 2020 1 commit
-
-
Kevin Kane authored
Signed-off-by:
Kevin Kane <kkane@microsoft.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
- 11 Dec, 2020 3 commits
-
-
Dirkjan Bussink authored
Another item identified during code review was cases where the return value of ssh_list_new() was not properly checked and handled. This updates all cases that were missing this to handle failure to allocate a new list. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Dirkjan Bussink authored
These calls can fail and the return code should always be checked. These issues were identified when code review called it out on new code. The updates here are to existing code with no behavior changes to make review simpler. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Dirkjan Bussink authored
In !145 (comment 463232084) behavior in libssh was identified where it diverges from how for example OpenSSH behaves. In OpenSSH if a request success of failure message is received, apart from it being treated as a keepalive message, it is ignored otherwise. Libssh does handle the unexpected message and triggers an error condition internally. This means that with the Dropbear behavior where it replies to a hostkeys-00@openssh.com message even with a want_reply = 0 (arguably a bug), libssh enters an error state. This change makes the libssh behavior match OpenSSH to ignore these messages. The spec is a bit unclear on whether Dropbear is buggy here or not, but let's be liberal with the input accepted here in libssh. Signed-off-by:
Dirkjan Bussink <d.bussink@gmail.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
- 10 Dec, 2020 3 commits
-
-
Kevin Kane authored
FindOpenSSL.cmake usually defines this synonym, but it doesn't on CMake < 3.16 when building on Windows outside of Cygwin. Signed-off-by:
Kevin Kane <kkane@microsoft.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Kevin Kane authored
The build currently breaks when attempting to link libssh.so using a statically-linked OpenSSL. -ldl and -lpthread are required when linking a binary with the static libcrypto.a. The OPENSSL_CRYPTO_LIBRARY does not include these dependencies when linking against static OpenSSL. OPENSSL_CRYPTO_LIBRARIES contains the correct dependencies in both static and shared configurations; -ldl and -lpthread are not required when linking against shared libcrypto.so. This change changes all uses of OPENSSL_CRYPTO_LIBRARY to OPENSSL_CRYPTO_LIBRARIES to let the FindOpenSSL CMake module always provide the correct libraries at link time. Signed-off-by:
Kevin Kane <kkane@microsoft.com> Reviewed-by:
Jakub Jelen <jjelen@redhat.com> Reviewed-by:
Andreas Schneider <asn@cryptomilk.org>
-
Andreas Schneider authored
This reverts commit 026879e9.
-