Add luks2::create method.
This commit is contained in:
parent
4773f49edc
commit
1802b7ad05
|
@ -126,6 +126,7 @@ bool luks::create(Report& report, const QString& deviceNode)
|
||||||
QStringLiteral("512"),
|
QStringLiteral("512"),
|
||||||
QStringLiteral("--batch-mode"),
|
QStringLiteral("--batch-mode"),
|
||||||
QStringLiteral("--force-password"),
|
QStringLiteral("--force-password"),
|
||||||
|
QStringLiteral("--type"), QStringLiteral("luks1"),
|
||||||
QStringLiteral("luksFormat"),
|
QStringLiteral("luksFormat"),
|
||||||
deviceNode });
|
deviceNode });
|
||||||
if (!( createCmd.start(-1) &&
|
if (!( createCmd.start(-1) &&
|
||||||
|
|
|
@ -43,6 +43,46 @@ FileSystem::Type luks2::type() const
|
||||||
return FileSystem::Luks2;
|
return FileSystem::Luks2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool luks2::create(Report& report, const QString& deviceNode)
|
||||||
|
{
|
||||||
|
Q_ASSERT(m_innerFs);
|
||||||
|
Q_ASSERT(!m_passphrase.isEmpty());
|
||||||
|
|
||||||
|
ExternalCommand createCmd(report, QStringLiteral("cryptsetup"),
|
||||||
|
{ QStringLiteral("-s"),
|
||||||
|
QStringLiteral("512"),
|
||||||
|
QStringLiteral("--batch-mode"),
|
||||||
|
QStringLiteral("--force-password"),
|
||||||
|
QStringLiteral("--type"), QStringLiteral("luks2"),
|
||||||
|
QStringLiteral("luksFormat"),
|
||||||
|
deviceNode });
|
||||||
|
if (!( createCmd.start(-1) &&
|
||||||
|
createCmd.write(m_passphrase.toLocal8Bit() + '\n') == m_passphrase.toLocal8Bit().length() + 1 &&
|
||||||
|
createCmd.waitFor() && createCmd.exitCode() == 0))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalCommand openCmd(report, QStringLiteral("cryptsetup"),
|
||||||
|
{ QStringLiteral("open"),
|
||||||
|
deviceNode,
|
||||||
|
suggestedMapperName(deviceNode) });
|
||||||
|
|
||||||
|
if (!( openCmd.start(-1) && openCmd.write(m_passphrase.toLocal8Bit() + '\n') == m_passphrase.toLocal8Bit().length() + 1 && openCmd.waitFor()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
setPayloadSize();
|
||||||
|
scan(deviceNode);
|
||||||
|
|
||||||
|
if (mapperName().isEmpty())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!m_innerFs->create(report, mapperName()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength) const
|
bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength) const
|
||||||
{
|
{
|
||||||
Q_ASSERT(m_innerFs);
|
Q_ASSERT(m_innerFs);
|
||||||
|
|
|
@ -38,6 +38,7 @@ public:
|
||||||
luks2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label);
|
luks2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label);
|
||||||
~luks2() override;
|
~luks2() override;
|
||||||
|
|
||||||
|
bool create(Report& report, const QString& deviceNode) override;
|
||||||
bool resize(Report& report, const QString& deviceNode, qint64 length) const override;
|
bool resize(Report& report, const QString& deviceNode, qint64 length) const override;
|
||||||
|
|
||||||
FileSystem::Type type() const override;
|
FileSystem::Type type() const override;
|
||||||
|
|
Loading…
Reference in New Issue