summaryrefslogtreecommitdiffstats
path: root/tdeioslave/sftp
Commit message (Collapse)AuthorAgeFilesLines
* Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORTMichele Calgaro2024-05-051-1/+1
| | | | Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
* tdeioslave/sftp: make source c++11-compatibleAlexander Golubev2024-03-041-6/+9
| | | | Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: get rid of goto in openConnection()Alexander Golubev2024-03-041-118/+119
| | | | Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: use unsigned to store auth method flags/bitsetsAlexander Golubev2024-03-042-11/+11
| | | | | | | The libssh defines those flags as unsigned. Technically ssh_auth_list() still returns int, but its guranteed to be bitset of those flags. Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: better erros for unsupported auth methodsAlexander Golubev2024-03-042-21/+44
| | | | | | | | | | Also: - do not translate auth methods names as the names appear in config files verbatim - libssh actually doesn't supports hostbased auth, so exclude it from bitset of supported Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: better cancelation handling in case of several publickeysAlexander Golubev2024-03-042-7/+13
| | | | | | | Consider publickey auth canceled only if user canceled it for each of the prompted keys. Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: save/restore seqNr for multi-factor authAlexander Golubev2024-03-042-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case the server is set up for multi-factor authentication we could be have to query several things from the user like password, a key passphrase, their mother's maiden name etc. It doesn't make a big difference during an initial connection, but it butchers the reconnection process: it can retrieve the answer of the user to the first question (e.g. their password), but it fails to retrieve the second one (e.g. the key passphrase). So the user would be forced to reenter the answer for the second question upon each reconnection. The reason for this is the passwdserver's desig (see DESIGN [1]): Each query for AuthInfo with the openPassDlg() has an secNr number associated with it. If it's smaller than the one of the one stored for the privious request, than the one from the cache will be returned automagically, if it's bigger the dialog will be prompted to the user. Each call to openPassDlg() advances s_seqNr to the last value reported by the passwdserver. So the first call will return the cached value and subsequent calls will actually display the dialog to the user (assuming authentication with the cached data failed). But in case of multi-factor auth we have to query user for several independent values. And we want to try to retrieve each one of those from the cache. So we have to get a bit hacky and manually manipulate the SlaveBase::s_seqNr value. [1]: https://mirror.git.trinitydesktop.org/gitea/TDE/tdelibs/src/branch/master/tdeio/kpasswdserver/DESIGN Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: imbue error messages with errors from libsshAlexander Golubev2024-03-042-15/+28
| | | | Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: cache passwords in case they were passed to setHost()Alexander Golubev2024-03-041-7/+23
| | | | Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: prevent infinite looping in kb-interactive authAlexander Golubev2024-03-041-0/+12
| | | | Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: purge password in the destructorAlexander Golubev2024-03-041-0/+2
| | | | | | | This could be useful in case the destructor will be called before openConnection() Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: enable changing user during kb-interactive authAlexander Golubev2024-03-041-3/+15
| | | | Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: pass correct username to openPassDlg()Alexander Golubev2024-03-042-12/+30
| | | | | | | | | | | | We should always pass to the openPassDlg() exactly the same username otherwise it may result in incorrect caching of passwords especially in case if the username is changed by the user. Also don't allow username change in case it was passed to setHost() (i.e. it was specified in the URL like e.g. sftp://username@host/). In such a case after changing it'd be impossible to properly cache it. Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: even bigger authentication overhaulAlexander Golubev2024-03-042-162/+326
| | | | | | | | | - Move authentication methods into separate functions so it would be easier to correctly handle error after those and select which should be called in which order. - A lot of minor improvements along the way Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: use realmValue to distinguish different promptsAlexander Golubev2024-03-042-24/+20
| | | | | | | | | | This will help kpasswdserver not to confuse different user's answers to different questions. Also avoid passing/returning TDE::AuthInfo for kb-interactive auth as it isn't really necessary when we don't manually caching passwords anymore. Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: avoid explicit password cachingAlexander Golubev2024-03-042-16/+5
| | | | | | | All password caching we need actually already autmagically done by openPassDlg(). Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: use a scope guards to close connectionAlexander Golubev2024-03-041-17/+14
| | | | | | | | There were a couple of missing closeConnection() calls after connection errors. The probably haven't caused any major bugs, but use scope guards to be on the safe side. Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: split off connection init to a dedicated functionAlexander Golubev2024-03-042-61/+75
| | | | Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: use free to destroy mCallbacksAlexander Golubev2024-03-041-1/+1
| | | | | | As it allocated via malloc() rather than new. Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: overhaul publickey authAlexander Golubev2024-03-042-78/+196
| | | | | | | | | | | | | | | | Several enhancements to public key authentication and some other stuff: - Fix passphrase entry for encrypted keys (was either hanging up or segfaulting) - Use scope guard idiom for cleanup calls for more reliable cleanup in case of errors - Add normal prompt for public key's passphrase entry dialog - Correctly differentiate passphrase to password when cached (yes they are getting cached regardless of keepPassword, at least for some duration of time) - Centrilize AuthInfo initialization and some rejig of it kbd-interactive authentification Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* tdeioslave/sftp: fix keyboard-interactive authenticationAlexander Golubev2024-03-041-43/+85
| | | | | | | | This is a partial fix to the sftp ioslave. Subsequent commits will fix other issues. Closes: https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/issues/443 Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
* Replace Q_WS_* defines with TQ_WS_* equivalentsMichele Calgaro2024-02-141-2/+2
| | | | Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
* SFTP: compatibility with older libssh versionsMavridis Philippe2022-07-152-6/+40
| | | | | Signed-off-by: Mavridis Philippe <mavridisf@gmail.com> Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
* SFTP: Various fixes and improvementsMavridis Philippe2022-07-155-92/+154
| | | | | | | | | | | For details see PR #279. Portions of code borrowed from KDE5 SFTP ioslave: Source: https://invent.kde.org/network/kio-extras/-/blob/master/sftp/kio_sftp.cpp Licence: LGPLv2 or later Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
* Replaced old sftp ioslave with backported versionMavridis Philippe2022-07-1520-5431/+1518
| | | | | | | | | Source: https://github.com/sandsmark/kde2-kio-sftp-kde4 Licence: GPLv2 or later This resolves issue #276. Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
* Removed code formatting modelines.Michele Calgaro2020-09-223-3/+2
| | | | Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
* Desktop file translations:Slávek Banko2020-06-282-67/+5
| | | | | | | + Creation of POT template for desktop files added to CMakeL10n rules. + Added creation of translated desktop files during build. Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
* Fix FTBFS due to missing linked libraries.Slávek Banko2020-06-121-1/+1
| | | | Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
* Add CMakeL10n rules.Slávek Banko2018-12-091-0/+3
| | | | | | Update TIMEZONES list. Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
* LIB_QT -> LIB_TQT conversion to align to updated admin moduleMichele Calgaro2018-09-171-1/+1
| | | | Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
* Fixed wrong DocPath strings. This relates to bug 2319Michele Calgaro2015-01-231-1/+1
| | | | Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
* Add new content to or update several protocol handbooks and branding cleanup.Darrell Anderson2014-03-031-3/+3
|
* Reorganize tdeioslave help handbooks, fix related protocol files and issues, ↵Darrell Anderson2014-02-061-1/+1
| | | | update and add handbooks.
* Rename kdebugdialog -> tdedebugdialogDarrell Anderson2014-01-061-1/+1
|
* Additional k => tde renaming and fixesSlávek Banko2013-09-034-139/+139
|
* Rename additional header files to avoid conflicts with KDE4Timothy Pearson2013-02-152-4/+4
|
* Rename common header files for consistency with class renamingTimothy Pearson2013-02-141-1/+1
|
* Rename KStandard for enhanced compatibility with KDE4Timothy Pearson2013-01-312-2/+2
|
* Rename kioslavesTimothy Pearson2013-01-276-19/+19
|
* Rename a number of libraries and executables to avoid conflicts with KDE4Timothy Pearson2013-01-2719-0/+5936