Jakub Jelen
ef50a3c0f0
tests: Remove tests of operations on freed channels
...
These tests are flaky because even though the care was taken to guess if
the ssh_channel_free() really freed the channel, it might not always be correct
and call to operation on the freed channel results in use after free.
Generally, no operation should be called after the channel is freed by the user.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-08-06 11:18:45 +02:00
Jakub Jelen
e7cffe7e1b
pki: Simplify ed25519 private key duplication
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-08-06 11:18:20 +02:00
Jakub Jelen
d1bf9068a9
Use calloc instead of zeroizing structure after malloc
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-08-06 11:16:58 +02:00
Jakub Jelen
737f9ecc3c
agent: Reformat the rest of the file
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-08-06 11:16:58 +02:00
Praneeth Sarode
cc667021e5
tests(pki): add torture tests for security keys
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-08-01 15:28:58 +05:30
Praneeth Sarode
f9f8c939bc
tests(pki): add security key testing helper functions to torture library
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-08-01 15:28:54 +05:30
Praneeth Sarode
aab6ce364a
tests(pki): add sk type keys to the testing infrastructure
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-08-01 15:28:41 +05:30
Praneeth Sarode
0cec257077
pki: add security key file import/export functionality
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-08-01 15:28:36 +05:30
Praneeth Sarode
957efe51a2
format(pki): format the pki_import_privkey_buffer function
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-08-01 00:29:27 +05:30
Praneeth Sarode
bb85492d4f
feat(pki): add support for SK key types in signature handling
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 23:00:53 +05:30
Praneeth Sarode
22c1b6970c
pki: add security key fields to ssh_key_struct and update compare, copying and cleaning functions
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 22:47:59 +05:30
Praneeth Sarode
09155adb19
tests(string): add unit tests for ssh_string_cmp function
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 16:06:32 +02:00
Praneeth Sarode
95f8cbc7f0
feat(string): add ssh_string_cmp function for comparing ssh_strings
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 16:06:31 +02:00
Praneeth Sarode
3423399f98
fix(pki): remove redundant key type_c assignment in pki_import_pubkey_buffer
...
We already assign the correct key type_c using ssh_key_type_to_char before this point.
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 16:05:52 +02:00
Praneeth Sarode
ccbec9c275
fix(pki): remove redundant key type_c assignment in build pubkey and privkey functions
...
Whenever the pki_pubkey_build_ecdsa and pki_privkey_build_ecdsa functions are called, the key type assignment is already done. So, we don't need to assign it again. Moreover, because the pki_key_ecdsa_nid_to_name function was used, for key types like the SSH_KEYTYPE_SK_ECDSA, we assign the wrong type string to the key, based on the nid.
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 16:05:51 +02:00
Praneeth Sarode
ed52c88a03
feat(misc): add burn_free function and BURN_FREE macro for secure memory deallocation
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 12:35:12 +02:00
Till Wimmer
0f0ac314d2
session: add err messages for most common WSA error codes (+ applied clang-format to file)
...
Signed-off-by: Till Wimmer <github@tonarchiv.ch >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com >
2025-07-30 12:33:42 +02:00
Navid Fayezi
95e4c39e8a
Refactor: fix inconsistency in ssh_callback_struct
...
Signed-off-by: Navid Fayezi <navidfayezi.98@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-30 12:31:07 +02:00
Jakub Jelen
8c89633a45
pki: Avoid possible memory leak
...
Actually the condition was duplicated at the beginning of the function and this
one could not be hit (again), but it is an error to be fixed anyway.
Thanks Coverity!
CID 1618865
CID 1618864
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-29 15:39:37 +02:00
Rémi Coulom
8069679033
remove unused ssh_string in ssh_channel_open_forward_unix
...
Signed-off-by: Rémi Coulom <remi.coulom@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-25 19:52:37 +02:00
Jakub Jelen
c2e9d39dbe
tests: Fix build script to work also on MacOS correctly
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 16:40:56 +02:00
Jakub Jelen
ab44f606b2
tests: Add more valgrind supressions for krb5
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
444982b38a
tests: Avoid needless call to pthread_exit()
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
3df61a4e86
pkd: Cleanup OpenSSL context
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
961c79637c
options: Fix possible memory leaks on error conditions when setting keys for bind
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
7eefbbd478
tests: Cleanup OpenSSL in the forked server processes
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
c4c28c6473
tests: Skip test leaking handle under valgrind
...
This is leaking memory allocated in process_open(), which is stored in the
handles list in the sftpserver session. Given that the data is provided by the
use callbacks, we can not universally free them on our side, but we should, in
the long term, introduce some way for the implementers to free outstanding
handles that were not closed by misbehaving clients.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
08a32ac381
tests: Cleanup OpenSSL in tests when GSSAPI is built
...
also from the fuzzer tests
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
62762bbbc9
Cleanup the loaded pkcs11 provider
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
ab3e08c2b5
Finalize OpenSSL context from tests to make the valgrind output clean
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
809898b980
tests: Adjust valgrind supression to match new calls stack
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Jakub Jelen
51bd08027e
CentOS 9 and 10 were updated to OpenSSL 3.5
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-25 13:20:15 +02:00
Praneeth Sarode
0b4b71cc11
fix(callbacks): make is_callback_valid's behaviour consistent with its name
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-24 16:10:54 +02:00
Praneeth Sarode
5d3ef7261c
refactor(callbacks): reformat to improve readability
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-24 16:10:53 +02:00
Jakub Jelen
9817392e26
pkd: Run hmac-sha1 tests with OpenSSH
...
This was initially in hurry disabled in
ca4c874a9e because dropbear dropped support for
these HMACs. The follow-up commit enabled running these tests on old dropbear in
c17112f070 , but still did not run them on openssh,
when the new dropbear was installed.
This fixes up the above commit to run the HMAC-SHA1 tests with OpenSSH even if
the new dropbear is installed.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Sahana Prasad <sahana@redhat.com >
2025-07-24 16:09:55 +02:00
Nguyễn Thái Ngọc Duy
168302b9d6
Fix ssh_handle_key_exchange() timeout
...
See libssh-mirror#311 for background. But in some case, it's possible to
trigger the code in ssh_handle_key_exchange() to move session state
directly to SSH_SESSION_STATE_AUTHENTICATED. The exit condition for this
function is SSH_SESSION_STATE_AUTHENTICATING though, so when it happens,
ssh_handle_key_exchange() will time out eventually.
The fix is straightforward. Tested with the problematic
client (trilead-ssh2) and made sure the bad condition happened (and not
cause timeout)
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-24 13:08:46 +02:00
Jakub Jelen
82c8bbc504
tests: Add missing header file to unbreak build on freebsd
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Sahana Prasad <sahana@redhat.com >
2025-07-24 11:13:35 +02:00
Jakub Jelen
1ea1782036
Add simple sshsig fuzzer
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Sahana Prasad <sahana@redhat.com >
2025-07-24 11:13:34 +02:00
abdallah elhdad
c17112f070
Enable HMAC SHA1 tests for dropbear <2025.87
...
Signed-off-by: abdallah elhdad <abdallahselhdad@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-24 10:49:51 +02:00
Nicolas Graves
28c0056bca
Add logging for private API functions
...
Signed-off-by: Nicolas Graves <ngraves@ngraves.fr >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com >
2025-07-10 11:21:44 +02:00
Nicolas Graves
7e4f08e22a
Add logging to public API functions
...
Signed-off-by: Nicolas Graves <ngraves@ngraves.fr >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com >
2025-07-10 11:21:44 +02:00
Nicolas Graves
aeb0b2ec6f
Add unittests for sshsig functions
...
Signed-off-by: Nicolas Graves <ngraves@ngraves.fr >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com >
2025-07-10 11:21:44 +02:00
Nicolas Graves
67cf8e3702
Implement sshsig functions
...
Signed-off-by: Nicolas Graves <ngraves@ngraves.fr >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com >
2025-07-02 14:38:07 +02:00
Nicolas Graves
309f36fa83
pki: Add key_to_type_hash helper
...
Signed-off-by: Nicolas Graves <ngraves@ngraves.fr >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com >
2025-07-02 14:38:07 +02:00
Praneeth Sarode
7a2a743a39
fix(string): handle empty string case in ssh_string_copy
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-02 13:58:51 +02:00
Theo Buehler
ccb8cf88c8
Unbreak torture_config_make_absolute() on OpenBSD
...
The torture_config_make_absolute() and its _no_sshdir() version both
segfault on OpenBSD. The reason for this is that the storage returned
by getpwuid() is backed by mmap and is unapped by the getpwnam() call
in ssh_path_expand_tilde(), so a later access to home segfaults. The
possibility of this happening (getpwnam() overwriting values returned
by getpwuid()) is explicitly called out in POSIX.
A simple fix is to work with copies of username and homedir.
Signed-off-by: Theo Buehler <tb@openbsd.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-01 20:50:25 +02:00
Praneeth Sarode
b43392c31d
tests(string): add unit tests for ssh_string functions
...
Signed-off-by: Praneeth Sarode <praneethsarode@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-01 20:49:39 +02:00
Andreas Schneider
5fc65e7270
agent: Fix resource leak
...
CID 1611718
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-01 20:48:52 +02:00
Navid Fayezi
8310b8cc2b
Remove redundant line and change strlen(buffer) to sizeof(buffer) in examples/authentication.c
...
Signed-off-by: Navid Fayezi <navidfayezi.98@gmail.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2025-07-01 20:47:55 +02:00
Navid
b0063b52d8
Remove more redundant casts
...
Signed-off-by: Navid Fayezi navidfayezi.98@gmail.com
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2025-07-01 20:38:03 +02:00