Commit Graph

3968 Commits

Author SHA1 Message Date
Jakub Jelen
f44994f1e6 tests: SHA2 extension signatures
This introduces a new test case for RSA unit tests, verifying that
libraries are able to provide and verify the RSA signatures with
SHA2 hash algorithms.

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 945469c9e0)
2018-08-31 14:30:53 +02:00
Jakub Jelen
97d6eb84a4 auth: Support SHA2 extension for pubkey authentication (RFC 8332)
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 82da0c3361)
2018-08-31 14:30:53 +02:00
Jakub Jelen
33f2211cae pki: RSA signatures with SHA2 hash algorithms (RFC 8332)
* This change introduces a new API to request signature using
   one key and different hash algorithms. This is used only with
   RSA keys, that used to have SHA1 hardcoded, but the new
   algorithsms allow to use the SHA2 hashes, if the extension
   is negotiated.

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 1f08aabe43)
2018-08-31 14:30:53 +02:00
Jakub Jelen
03aff19b80 kex: Offer SHA2 extension signature algorithms by default
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 3ca7e1eea9)
2018-08-31 14:30:53 +02:00
Jakub Jelen
cf660fe27c pki: Support RSA verification using different hash algorithms
This changes the private API by adding one more argument to function

  pki_signature_from_blob()

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit fa60827840)
2018-08-31 14:30:53 +02:00
Jakub Jelen
f9d60e1360 client: Handle the MSG_EXT_INFO packet signalling supported extensions
RFC 8308: The extension negotiation in Secure Shell (SSH) Protocol

RFC 8332: Use of RSA Keys with SHA-256 and SHA-512
          in the Secure Shell (SSH) Protocol

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 761225712a)
2018-08-31 14:30:53 +02:00
Jakub Jelen
1098280e43 kex: Signalize support for the extension negotiation in client (RFC 8308)
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit df13d8c61f)
2018-08-31 14:30:53 +02:00
Jakub Jelen
62301834f4 pkd: Produce more useful logs
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit cbccae795d)
2018-08-31 14:30:53 +02:00
Jakub Jelen
3e0ac84001 pkd: Generate host keys in old format
This is required to work against OpenSSH 7.8, which is now
writing keys in new openssh format by default

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 100c9c98ce)
2018-08-31 14:30:53 +02:00
Andreas Schneider
4d26e08789 tests: Ignore SIGPIPE in pkd
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit d7a64b9519)
2018-08-31 14:30:53 +02:00
Andreas Schneider
3c4403c400 cmake: Use -fstack-protector-strong if possible
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit fc212d73ed)
2018-08-31 14:30:53 +02:00
Andreas Schneider
8dcde7a74f examples: Reformat ssh_client
The example should be clean code if possible.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 2b05e46b62)
2018-08-31 14:30:53 +02:00
Andreas Schneider
bb7cd8e22b doc: Update that_style
We don't need the source css files.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 8d8b64cc3f)
2018-08-31 08:05:07 +02:00
Andreas Schneider
7458e95ee5 poll: Fix size types in ssh_event_free()
src/poll.c:1024:9: error: assuming signed overflow does not occur when
    simplifying conditional to constant [-Werror=strict-overflow]

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 11d87238b8)
2018-08-30 08:59:56 +02:00
Andreas Schneider
2f69c5f022 poll: Reformat ssh_event_free()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 8243030c55)
2018-08-30 08:59:53 +02:00
Andreas Schneider
efdd567a1b Bump version to 0.8.2
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
libssh-0.8.2
2018-08-30 07:54:10 +02:00
Andreas Schneider
cff8f7c0b5 cmake: VERSION_GREATER_EQUAL is not suppored by cmake 3.3
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 20ca6e09dd)
2018-08-30 07:35:45 +02:00
Andreas Schneider
fe4a4b1b79 cmake: Only support building docs the on cmake >= 3.9
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 66a0f14a0c)
2018-08-29 21:52:33 +02:00
Andreas Schneider
8caf653e97 cmake: Fix SSP compiler flag check
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit aba6e34b63)
2018-08-29 21:52:31 +02:00
Andreas Schneider
88c4d532ab Bump library version to 4.6.0
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 4fcc0bd407)
2018-08-29 19:17:00 +02:00
Andreas Schneider
e69d063252 cmake: Fix final map generation
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 7960b8ed1b)
2018-08-29 19:16:58 +02:00
Anderson Toshiyuki Sasaki
a35218da74 cmake: Fix target to make sure copy runs in the end
The target created to copy the file must be the one make dist is
depending on.  Otherwise it will not copy the generated files to the
desired path.

Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 2aeee5194c)
2018-08-29 19:16:57 +02:00
Anderson Toshiyuki Sasaki
4d8e2cdc8b cmake: Fix extract_symbols COPY_TO
Moved the symbols list formatting to the ExtractSymbols.cmake.  The
resulting list of symbols is sorted and printed in a more readable way
(one symbol per line).  Fixed the script to copy the generated symbols.

Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit ca925588b0)
2018-08-29 19:16:55 +02:00
Andreas Schneider
3d0f2977bf examples: Use ssh_print_hash()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 5b07c1aa2c)
2018-08-29 19:16:53 +02:00
Jan-Niklas Burfeind
230929a4b2 tests: Add torture_hashes for pubkey hashes
Signed-off-by: Jan-Niklas Burfeind <libssh@aiyionpri.me>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 9510a538c2)
2018-08-29 19:16:52 +02:00
Jan-Niklas Burfeind
c847216ca4 dh: Add ssh_print_hash() function which can deal with sha256
Signed-off-by: Jan-Niklas Burfeind <libssh@aiyionpri.me>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit f32cb70675)
2018-08-29 19:16:50 +02:00
Jan-Niklas Burfeind
cacd2fa999 dh: Add SSH_PUBLICKEY_HASH_SHA256 to ssh_get_publickey_hash()
Signed-off-by: Jan-Niklas Burfeind <libssh@aiyionpri.me>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 1499b38aef)
2018-08-29 19:16:49 +02:00
Andreas Schneider
0b688e4829 sftp: Use strndup()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 509331ec81)
2018-08-29 19:16:48 +02:00
Andreas Schneider
27cf0ea06b misc: Add strndup implementation if not provides by the OS
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 247983e982)
2018-08-29 19:16:46 +02:00
Andreas Schneider
e473108e1b cmake: Require at least abimap-0.3.1
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit f0e99961b6)
2018-08-29 19:16:45 +02:00
Andreas Schneider
c74cc9a606 cmake: Detect abimap version
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 2291c75ab0)
2018-08-29 19:16:44 +02:00
Andreas Schneider
619e60cf0e cmake: Fix typo in doc file
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 77b4801e11)
2018-08-29 19:16:42 +02:00
Andreas Schneider
37b3657481 tests: Fix size types in pkd
tests/pkd/pkd_hello.c:743:12: error: assuming signed overflow does not
    occur when simplifying conditional to constant [-Werror=strict-overflow]

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit a3c8dac6b6)
2018-08-29 11:13:05 +02:00
Andreas Schneider
c1211a4e1a doc: Update doxygen documentation
This fixes some issues with the new docs and uses a new modern style.

https://github.com/jl-wynen/that_style

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 5334cb9d55)
2018-08-29 11:13:03 +02:00
Andreas Schneider
95d34b5937 doc: Remove obsolete Doxyfile.in
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 9a73fa885a)
2018-08-29 11:13:01 +02:00
Alex Hermann
6dc3f666c5 misc: Set default port to 22 in ssh_path_expand_escape()
Fixes, among others, ProxyCommand with %p when no port is used on
commandline or config file, thus using the default port.

Fixes T94

Signed-off-by: Alex Hermann <alex@hexla.nl>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 23f60a56f3)
2018-08-28 15:45:07 +02:00
Andreas Schneider
8e4491a532 cmake: Fix doxygen generation
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 648f5cf400)
2018-08-27 16:47:02 +02:00
Anderson Toshiyuki Sasaki
492095b2a7 cmake: Fix FindABIMap targets
Fix the targets and output files handling to make the symbols to be
updated correctly when a symbol is added or removed.

Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit f49bb1b6a3)
2018-08-27 16:46:59 +02:00
Jakub Jelen
d516642980 doc: There is no hostbased authentication implemented
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit f0a4c1e888)
2018-08-27 12:25:12 +02:00
Andreas Schneider
193845ecdd auth: Reset errors on successful authentication
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit a0fec81221)
2018-08-27 12:25:10 +02:00
Andreas Schneider
598d04d5d9 error: Add ssh_reset_error() function
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 0aad4de5f4)
2018-08-27 12:25:09 +02:00
Andreas Schneider
06c5dd9c84 auth: Also log the current auth method
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 280519af29)
2018-08-27 12:25:07 +02:00
Andreas Schneider
6632659907 auth: Fix the pending_call_state of ssh_userauth_password()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 0ae376f133)
2018-08-27 12:25:05 +02:00
Andreas Schneider
86bf835d50 session: Group auth variables in a struct
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 73c9d60e5a)
2018-08-27 12:25:03 +02:00
Jakub Jelen
c9d0362a6b sftp: Avoid race condition reading incomplete data messages
This changes amends f561e6bcb3 which
introduces same check in one place, but miss it in other two places.

We encountered this issue with qemu using SFTP to transfer large
data chunks and in some cases, the file transfer was interrupted
without any reason. From the debug messages, it showed up that
last part of data message/packet was not handled in the time
of the sftp_read() call, therefore the ssh_channel_read() returned
zero (there was no more data to read yet), which made the whole
transfer fail hard instead of retrying later.

The proposed change is reusing the code from previously referenced
commit also in the other places.

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit ae3825dfb2)
2018-08-27 09:30:14 +02:00
Andreas Schneider
d2989f28db auth: Fix possible NULL pointer dereference
explicit_bzero() doesn't handle NULL.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 8f1e995cec)
2018-08-27 09:30:12 +02:00
Andreas Schneider
0bab6013d0 cmake: Check if the linker supports version scripts
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 4de8ed684b)
2018-08-27 09:30:10 +02:00
Anderson Toshiyuki Sasaki
361d93586c docs: Update threading documentation
Updated threading documentation mentioning changes in the requirements
to use libssh in multithread scenarios.

Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit d0f3cdfa10)
2018-08-24 14:59:12 +02:00
Andreas Schneider
0db13661b4 cmake: Improve compiler flag detection
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit a97e227a9d)
2018-08-24 07:53:20 +02:00
Andreas Schneider
c866592d7d options: Fix size types
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 119a457357)
2018-08-24 07:53:18 +02:00