mardi 24 février 2015

How to set password on archive, using libarchive C++?

I started using libarchive library recently and I have a trouble. I can't set a password to my archive. I'm using following code, but password isn't sets:



void ArchiveFactory::OpenWrite(ArchiveWrite &archWrite,
std::unique_ptr<NativeStreamBase> &stream, OptionMap options)
{
int ret = 0;
auto hint = stream->GetFormatHint();
archWrite.Arch = ArchiveWriteUnique(archive_write_new());
archWrite.Writer = std::move(LibArchiveWriter(stream));

auto finded = ArchiveFactory::WriteFormatHelpers.find(hint);

if (finded != ArchiveFactory::WriteFormatHelpers.end())
{
auto &helper = finded->second;

ret = helper.WriteFmtInit(archWrite.Arch.get());

if (ret == ARCHIVE_OK && helper.CreateOptions != nullptr && helper.WriteFmtSetOpts != nullptr)
{
ret = helper.WriteFmtSetOpts(archWrite.Arch.get(), options);
}
}

ret = archive_write_set_option(archWrite.Arch.get(), nullptr, "hdrcharset", "UTF-8");

ret = archive_write_set_passphrase(archWrite.Arch.get(), "123456");

ret = archive_write_open(archWrite.Arch.get(), &archWrite.Writer, nullptr, LibArchiveWriter::WriteCallback, nullptr);

int stop = 423;
}

Aucun commentaire:

Enregistrer un commentaire