From 3a32197cc377796220565d984287b774ac4457c2 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Wed, 5 Feb 2025 23:23:23 +0100 Subject: [PATCH] Add optional password for archive writer --- openVulkanoCpp/IO/Archive/ArchiveWriter.cpp | 4 +++- openVulkanoCpp/IO/Archive/ArchiveWriter.hpp | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/openVulkanoCpp/IO/Archive/ArchiveWriter.cpp b/openVulkanoCpp/IO/Archive/ArchiveWriter.cpp index f32e281..153f1ce 100644 --- a/openVulkanoCpp/IO/Archive/ArchiveWriter.cpp +++ b/openVulkanoCpp/IO/Archive/ArchiveWriter.cpp @@ -11,10 +11,11 @@ #include #include #include +#include namespace OpenVulkano { - ArchiveWriter::ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr& logger) + ArchiveWriter::ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr& logger, const char* password) : ArchiveBase(archive_write_new(), archive_entry_new(), logger) , m_archiveConfig(archiveConfiguration) , m_shouldCompress(&SimpleFileTypeShouldCompressChecker) @@ -30,6 +31,7 @@ namespace OpenVulkano std::string level = "compression-level=" + std::to_string(archiveConfiguration.compressionLevel); ChkErr(archive_write_set_options(m_archive, level.c_str())); } + if (password) ChkErr(archive_write_set_passphrase(m_archive, password)); ChkErr(archive_write_open_filename(m_archive, fileName)); } diff --git a/openVulkanoCpp/IO/Archive/ArchiveWriter.hpp b/openVulkanoCpp/IO/Archive/ArchiveWriter.hpp index f1540bc..d13afeb 100644 --- a/openVulkanoCpp/IO/Archive/ArchiveWriter.hpp +++ b/openVulkanoCpp/IO/Archive/ArchiveWriter.hpp @@ -26,11 +26,11 @@ namespace OpenVulkano std::function m_shouldCompress; public: - ArchiveWriter(const char* fileName, const std::shared_ptr& logger = nullptr) - : ArchiveWriter(fileName, ArchiveConfiguration::FromFileName(fileName), logger) + ArchiveWriter(const char* fileName, const std::shared_ptr& logger = nullptr, const char* password = nullptr) + : ArchiveWriter(fileName, ArchiveConfiguration::FromFileName(fileName), logger, password) {} - ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr& logger = nullptr); + ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr& logger = nullptr, const char* password = nullptr); ~ArchiveWriter() override;