Cache the passphrase in a LUKS open session.
This commit is contained in:
parent
d126f04886
commit
27d5ff82e6
|
@ -250,11 +250,12 @@ bool luks::cryptOpen(const QString& deviceNode)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString passphrase = dlg->luksPassphrase().text();
|
||||||
std::vector<QString> commands;
|
std::vector<QString> commands;
|
||||||
commands.push_back(QStringLiteral("echo"));
|
commands.push_back(QStringLiteral("echo"));
|
||||||
commands.push_back(QStringLiteral("cryptsetup"));
|
commands.push_back(QStringLiteral("cryptsetup"));
|
||||||
std::vector<QStringList> args;
|
std::vector<QStringList> args;
|
||||||
args.push_back({ dlg->luksPassphrase().text() });
|
args.push_back({ passphrase });
|
||||||
args.push_back({ QStringLiteral("luksOpen"),
|
args.push_back({ QStringLiteral("luksOpen"),
|
||||||
deviceNode,
|
deviceNode,
|
||||||
QStringLiteral("luks-") + readUUID(deviceNode) });
|
QStringLiteral("luks-") + readUUID(deviceNode) });
|
||||||
|
@ -278,7 +279,10 @@ bool luks::cryptOpen(const QString& deviceNode)
|
||||||
m_isCryptOpen = (m_innerFs != nullptr);
|
m_isCryptOpen = (m_innerFs != nullptr);
|
||||||
|
|
||||||
if (m_isCryptOpen)
|
if (m_isCryptOpen)
|
||||||
|
{
|
||||||
|
m_passphrase = passphrase;
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -306,6 +310,8 @@ bool luks::cryptClose(const QString& deviceNode)
|
||||||
delete m_innerFs;
|
delete m_innerFs;
|
||||||
m_innerFs = nullptr;
|
m_innerFs = nullptr;
|
||||||
|
|
||||||
|
m_passphrase.clear();
|
||||||
|
|
||||||
m_isCryptOpen = (m_innerFs != nullptr);
|
m_isCryptOpen = (m_innerFs != nullptr);
|
||||||
|
|
||||||
if (!m_isCryptOpen)
|
if (!m_isCryptOpen)
|
||||||
|
|
Loading…
Reference in New Issue