Jakub Jelen
fffa66698f
Allow building without Group Exchange support
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-02-07 10:30:05 +01:00
Jakub Jelen
a170580147
kex: Disable diffie-hellman-group-exchange-sha1 by default
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-02-07 10:30:05 +01:00
Jakub Jelen
0833f07c53
options: Allow to configure cryptographic algorithms for server
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-02-07 10:30:05 +01:00
Jakub Jelen
805709dd36
docs: Missing documentation for SSH_OPTIONS_HMAC_*
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-02-07 10:30:05 +01:00
Jakub Jelen
82f4c6c607
buffer: Fix typo in a comment
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-02-07 10:30:05 +01:00
Andreas Schneider
9f9afab3e6
dh: Add function references to ssh_print_hash() doc
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-02-07 09:48:09 +01:00
Andreas Schneider
b84949b32c
include: Mark ssh_print_hexa as deprecated
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-02-07 09:46:13 +01:00
Jon Simons
c0102e6a59
pki_crypto: plug pki_signature_from_blob leaks
...
In 3341f49a49 , some direct assignments
to OpenSSL structures was replaced with usage of getter and setter
macros. Ensure to `bignum_safe_free` a couple of intermediate values
in error paths for `pki_signature_from_blob` DSS and ECDSA cases.
Signed-off-by: Jon Simons <jon@jonsimons.org >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 13:22:59 +01:00
Jon Simons
ccd73db90c
pki: NULL check pki_signature_from_rsa_blob result
...
Check for a potential NULL result from `pki_signature_from_rsa_blob`
in `pki_signature_from_blob`. Otherwise the following `sig->type_c`
will result in a segfault.
Introduced in 7f83a1efae .
Signed-off-by: Jon Simons <jon@jonsimons.org >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 13:22:59 +01:00
Jon Simons
3760e59c13
dh: harden error handling in 'ssh_dh_init_common'
...
Harden the error path in 'ssh_dh_init_common' such that
all potential allocations are free'd upon exit.
Signed-off-by: Jon Simons <jon@jonsimons.org >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 13:22:59 +01:00
Jon Simons
3334443089
dh: plug pubkey_blob leak in ssh_server_dh_process_init
...
Ensure to `SSH_STRING_FREE` the pubkey_blob local in
`ssh_server_dh_process_init`. The leak can be seen with
valgrind and the pkd tests with:
valgrind \
--leak-check=full \
--show-leak-kinds=definite \
./pkd_hello -i1 -t torture_pkd_openssh_rsa_rsa_diffie_hellman_group14_sha1
Signed-off-by: Jon Simons <jon@jonsimons.org >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 13:22:59 +01:00
Jon Simons
b44987a164
dh-gex: fix double-ssh_dh_init_common memory leak
...
Fix a memory leak whereby the x, y, and k bignum fields within
a session's next_crypto structure were being unintentionally
initialized twice.
The leak can be seen before the fix with valgrind and the pkd
tests with:
valgrind \
--leak-check=full \
--show-leak-kinds=definite \
./pkd_hello -i1 -t torture_pkd_openssh_rsa_rsa_diffie_hellman_group_exchange_sha256
Signed-off-by: Jon Simons <jon@jonsimons.org >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 13:22:59 +01:00
Jon Simons
886681a421
dh-gex: fix moduli file stream leak
...
Ensure to close the moduli file stream in `ssh_retrieve_dhgroup`.
The leak is observable with the pkd tests and valgrind with:
valgrind \
--track-fds=yes \
./pkd_hello -i1 \
-t torture_pkd_openssh_rsa_rsa_diffie_hellman_group_exchange_sha256
Signed-off-by: Jon Simons <jon@jonsimons.org >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 13:22:59 +01:00
Till Wimmer
04c97c0eaf
session: Repects timeout=0 for packets on blocking sessions
...
Signed-off-by: Till Wimmer <g4-lisz@tonarchiv.ch >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 09:24:29 +01:00
Till Wimmer
d27b817acc
options: Removed outdated param annotations of ssh_options_set()
...
Signed-off-by: Till Wimmer <g4-lisz@tonarchiv.ch >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 09:24:29 +01:00
Till Wimmer
16a52a8362
connector: Don't NULL connector (in|out) channels on event remove
...
Signed-off-by: Till Wimmer <g4-lisz@tonarchiv.ch >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-30 09:24:26 +01:00
Jakub Jelen
8c7b6bffff
bignum: Reformat ssh_make_string_bn and unbreak build with DEBUG_CRYPTO
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 16:40:14 +01:00
Jakub Jelen
42185fbf6e
dh: Reformat ssh_dh_debug, ssh_dh_build_k and unbreak build with DEBUG_CRYPTO
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 16:40:09 +01:00
Andreas Schneider
9b694f396c
packet: Add missing error check in packet_send2()
...
Found by csbuild.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 14:21:46 +01:00
Andreas Schneider
d41042f92d
pki: Avoid a possible segfaults in error paths
...
Found by csbuild.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 14:21:26 +01:00
Andreas Schneider
9b2eefe62c
dh-gex: Add error check for ssh_packet_send() in ssh_packet_server_dhgex_request
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 14:15:01 +01:00
Andreas Schneider
8ec80d1f5d
libcrypto: Use size_t for size calculations
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 14:09:44 +01:00
Anderson Toshiyuki Sasaki
8ddbe7bec6
sftp: Add NULL check in sftp_ext_free()
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 13:56:25 +01:00
Anderson Toshiyuki Sasaki
61ad276a87
sftp: Reformat sftp_ext_free()
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 13:56:22 +01:00
Anderson Toshiyuki Sasaki
89f58decb6
misc: Add NULL checks before accessing lists
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 13:56:22 +01:00
Anderson Toshiyuki Sasaki
5ed5e97114
messages: Fix NULL check, preventing SEGFAULT
...
The wrong conditional check for newly allocated memory would make the
function to fail when the allocation was successful and access invalid
memory when the allocation failed.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 13:56:15 +01:00
Andreas Schneider
d598e4e52a
packet_crypt: Make sure we always operate on initilized memory
...
Found by MemorySanitizer.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-25 16:07:50 +01:00
Andreas Schneider
932102bd13
session: Initialize allocated memory
...
Found by MemorySanitizer.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-25 14:13:10 +01:00
Baruch Siach
6c7eaa9e12
buffer: Convert argc to size_t in ssh_buffer_unpack() as well
...
Commit c306a693f3 ("buffer: Use size_t for argc argument in
ssh_buffer_(un)pack()") mentioned unpack in the commit log, but it only
touches the pack variants. Extend the conversion to unpack.
Pre-initialize the p pointer to avoid possible use before
initialization in case of early argc check failure.
This fixes build failure:
.../libssh-0.8.6/src/buffer.c: In function 'ssh_buffer_unpack_va':
.../libssh-0.8.6/src/buffer.c:1229:16: error: assuming signed overflow does not occur when simplifying conditional to constant [-Werror=strict-overflow]
if (argc == -1){
^
Signed-off-by: Baruch Siach <baruch@tkos.co.il >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 17:48:08 +01:00
Jakub Jelen
e989c4afff
config: Add new Match final keyword from OpenSSH 8.0
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 15:15:18 +01:00
Jakub Jelen
3ce31532eb
config: Fail if there is missing argument for some of the match keywords
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 15:13:30 +01:00
Aris Adamantiadis
53c88375fe
dh-gex: Add server implementation
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 13:06:33 +01:00
Aris Adamantiadis
40faa98c5e
wrapper: Move dh cleanup into dh.c
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 12:56:14 +01:00
Aris Adamantiadis
b36219369d
dh-gex: Add support for moduli file parsing
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 12:51:54 +01:00
Aris Adamantiadis
574bfb5459
dh-gex: Add client implementation
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 11:56:23 +01:00
Aris Adamantiadis
154eb91914
dh: move state changes inside DH code
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 11:56:23 +01:00
Aris Adamantiadis
9c88769707
dh: Do some basic refactoring
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 11:56:23 +01:00
Aris Adamantiadis
a6c47099b7
buffer: Support bignums in ssh_buffer_unpack()
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 11:53:22 +01:00
Aris Adamantiadis
2f8239ade3
mbedcrypto: fixed nasty RNG bugs
2019-01-24 11:53:22 +01:00
Aris Adamantiadis
afe2673cfa
bignum: harmonize gcrypt, libcrypto and libmcrypt bignum
...
Ensure most of the abstraction around the 3 libs are consistent.
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 11:04:44 +01:00
Aris Adamantiadis
43a4f86b6e
dh: move unrelated functions out of dh.c
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 09:34:18 +01:00
Aris Adamantiadis
e42a423a24
kex: use runtime callbacks (server)
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 09:19:59 +01:00
Aris Adamantiadis
602a1defea
kex: use runtime callbacks (client)
...
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-24 09:11:30 +01:00
Andreas Schneider
e91e221d02
pcap: Correctly initialize sockaddr_in in ssh_pcap_context_set_file()
...
Error: CLANG_WARNING:
src/pcap.c:329:22: warning: The left operand of '!=' is a garbage value
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-22 13:12:25 +01:00
Andreas Schneider
79fe88bfb8
pcap: Reformat ssh_pcap_context_connect()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-22 13:12:25 +01:00
Andreas Schneider
86849c0883
bind: Check for POLLRDHUP on the server if available
...
This is a feature on modern Linux.
Thanks to Ludovic Courtès <ludo@gnu.org > for the pointer.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-15 15:44:50 +01:00
Andreas Schneider
0e9add9a89
bind: Reformat ssh_bind_get_poll()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-15 15:44:48 +01:00
Marcin Szalowicz
4b4fb638f8
Fix cleaning up HMAC context for openssl < 1.1 remove old compatibility code for openssl < 0.9.7
...
Signed-off-by: Marcin Szalowicz <marcin.szalowicz@oracle.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-11 15:56:02 +01:00
Andreas Schneider
0170ed8883
socket: Set socket error to get better error messages
...
We do not want an error for ssh_socket_close() here.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-09 15:50:24 +01:00
Andreas Schneider
de54a88ee1
poll: Return early for timeout and count every revent
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-09 15:50:24 +01:00