automountManager: Fix password not re-asked for TCRYPT devices
Since commit
f881092bbc
released in cryptsetup 2.5.0, cryptsetup returns EPERM instead of EINVAL
when the TCRYPT header can't be decrypted with the provided
password and parameters.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7631
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3300>
This commit is contained in:

committed by
Florian Müllner

parent
5eaafba505
commit
9e6552a20d
@ -199,8 +199,11 @@ class AutomountManager {
|
||||
e.message.includes('No key available to unlock device') || // udisks (no password)
|
||||
// libblockdev wrong password opening LUKS device
|
||||
e.message.includes('Failed to activate device: Incorrect passphrase') ||
|
||||
// cryptsetup returns EINVAL in many cases, including wrong TCRYPT password/parameters
|
||||
e.message.includes('Failed to load device\'s parameters: Invalid argument')) {
|
||||
// cryptsetup returns EINVAL (< v2.5.0) or EPERM (>= v2.5.0)
|
||||
// when the TCRYPT header can't be decrypted with the provided
|
||||
// password/parameters.
|
||||
e.message.includes('Failed to load device\'s parameters: Invalid argument') ||
|
||||
e.message.includes('Failed to load device\'s parameters: Operation not permitted')) {
|
||||
this._reaskPassword(volume);
|
||||
} else {
|
||||
if (e.message.includes('Compiled against a version of libcryptsetup that does not support the VeraCrypt PIM setting')) {
|
||||
|
Reference in New Issue
Block a user