Commit Graph

40 Commits (f57f6dc9a89fcfab215e53f74792004b3cc4a9fa)

Author SHA1 Message Date
Michele Calgaro 026828840f
Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
10 months ago
Alexander Golubev 0e615e5c90 tdeioslave/sftp: make source c++11-compatible
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 3a4538b4c3 tdeioslave/sftp: get rid of goto in openConnection()
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 5b9585e429 tdeioslave/sftp: use unsigned to store auth method flags/bitsets
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>
12 months ago
Alexander Golubev 1597d5f384 tdeioslave/sftp: better erros for unsupported auth methods
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>
12 months ago
Alexander Golubev 4b4b72db8f tdeioslave/sftp: better cancelation handling in case of several publickeys
Consider publickey auth canceled only if user canceled it for each of
the prompted keys.

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 95b18e6338 tdeioslave/sftp: save/restore seqNr for multi-factor auth
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>
12 months ago
Alexander Golubev 4d88b3eddd tdeioslave/sftp: imbue error messages with errors from libssh
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev ee73349644 tdeioslave/sftp: cache passwords in case they were passed to setHost()
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev f8f0b8815c tdeioslave/sftp: prevent infinite looping in kb-interactive auth
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 21ce69f338 tdeioslave/sftp: purge password in the destructor
This could be useful in case the destructor will be called before
openConnection()

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 009382772d tdeioslave/sftp: enable changing user during kb-interactive auth
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 581d266ae6 tdeioslave/sftp: pass correct username to openPassDlg()
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>
12 months ago
Alexander Golubev 2756ae762f tdeioslave/sftp: even bigger authentication overhaul
- 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>
12 months ago
Alexander Golubev d316ff14bd tdeioslave/sftp: use realmValue to distinguish different prompts
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>
12 months ago
Alexander Golubev a19610bb73 tdeioslave/sftp: avoid explicit password caching
All password caching we need actually already autmagically
done by openPassDlg().

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 9c0a0ce976 tdeioslave/sftp: use a scope guards to close connection
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>
12 months ago
Alexander Golubev 75349be43e tdeioslave/sftp: split off connection init to a dedicated function
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev 688544193f tdeioslave/sftp: use free to destroy mCallbacks
As it allocated via malloc() rather than new.

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
12 months ago
Alexander Golubev b91e220389 tdeioslave/sftp: overhaul publickey auth
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>
12 months ago
Alexander Golubev a1fa8a79bb tdeioslave/sftp: fix keyboard-interactive authentication
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>
12 months ago
Michele Calgaro 2d7d2122cf
Replace Q_WS_* defines with TQ_WS_* equivalents
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
1 year ago
Mavridis Philippe d6db1a583c
SFTP: compatibility with older libssh versions
Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
3 years ago
Mavridis Philippe 7f277bc5e1
SFTP: Various fixes and improvements
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>
3 years ago
Mavridis Philippe fd94618b63
Replaced old sftp ioslave with backported version
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>
3 years ago
Michele Calgaro 08d0bb03c0
Removed code formatting modelines.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
4 years ago
Slávek Banko 2f706891f3
Desktop file translations:
+ 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>
5 years ago
Slávek Banko 6a194d1435
Fix FTBFS due to missing linked libraries.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
5 years ago
Slávek Banko b95b665c78
Add CMakeL10n rules.
Update TIMEZONES list.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
6 years ago
Michele Calgaro 887cea6320
LIB_QT -> LIB_TQT conversion to align to updated admin module
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
7 years ago
Michele Calgaro 2db89f3986 Fixed wrong DocPath strings. This relates to bug 2319
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
10 years ago
Darrell Anderson 6e5d4cdf63 Add new content to or update several protocol handbooks and branding cleanup. 11 years ago
Darrell Anderson cf14b1bd78 Reorganize tdeioslave help handbooks, fix related protocol files and issues, update and add handbooks. 11 years ago
Darrell Anderson f99c7f6c54 Rename kdebugdialog -> tdedebugdialog 11 years ago
Slávek Banko 3e88ddfbc3 Additional k => tde renaming and fixes 12 years ago
Timothy Pearson 77cbe84cb6 Rename additional header files to avoid conflicts with KDE4 12 years ago
Timothy Pearson 9286b9ebcc Rename common header files for consistency with class renaming 12 years ago
Timothy Pearson 01c60a2678 Rename KStandard for enhanced compatibility with KDE4 12 years ago
Timothy Pearson 472156a41b Rename kioslaves 12 years ago
Timothy Pearson de7e5867a6 Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago