Cache the passphrase in a LUKS open session.

This commit is contained in:
Teo Mrnjavac 2016-04-21 18:36:04 +02:00
parent d126f04886
commit 27d5ff82e6
1 changed files with 7 additions and 1 deletions

View File

@ -250,11 +250,12 @@ bool luks::cryptOpen(const QString& deviceNode)
return false;
}
QString passphrase = dlg->luksPassphrase().text();
std::vector<QString> commands;
commands.push_back(QStringLiteral("echo"));
commands.push_back(QStringLiteral("cryptsetup"));
std::vector<QStringList> args;
args.push_back({ dlg->luksPassphrase().text() });
args.push_back({ passphrase });
args.push_back({ QStringLiteral("luksOpen"),
deviceNode,
QStringLiteral("luks-") + readUUID(deviceNode) });
@ -278,7 +279,10 @@ bool luks::cryptOpen(const QString& deviceNode)
m_isCryptOpen = (m_innerFs != nullptr);
if (m_isCryptOpen)
{
m_passphrase = passphrase;
return true;
}
return false;
}
@ -306,6 +310,8 @@ bool luks::cryptClose(const QString& deviceNode)
delete m_innerFs;
m_innerFs = nullptr;
m_passphrase.clear();
m_isCryptOpen = (m_innerFs != nullptr);
if (!m_isCryptOpen)