From 5c41155a46f93ead2b1d7feda8e6bc6f5b4f9549 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Fri, 10 Oct 2025 09:34:08 -0400 Subject: Add password prompting for encrypted containers in Container Browser. --- transformcontext.cpp | 71 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 8 deletions(-) (limited to 'transformcontext.cpp') diff --git a/transformcontext.cpp b/transformcontext.cpp index 5bddda80..181d3c79 100644 --- a/transformcontext.cpp +++ b/transformcontext.cpp @@ -15,27 +15,82 @@ TransformContext::~TransformContext() } -string TransformContext::GetTransformName() const +Ref TransformContext::GetInput() const { - char* name = BNTransformContextGetTransformName(m_object); + return new BinaryView(BNTransformContextGetInput(m_object)); +} + + +string TransformContext::GetFileName() const +{ + char* name = BNTransformContextGetFileName(m_object); string result = name; BNFreeString(name); return result; } -string TransformContext::GetFileName() const +string TransformContext::GetTransformName() const { - char* name = BNTransformContextGetFileName(m_object); + char* name = BNTransformContextGetTransformName(m_object); string result = name; BNFreeString(name); return result; } -Ref TransformContext::GetInput() const +void TransformContext::SetTransformParameters(const map& params) { - return new BinaryView(BNTransformContextGetInput(m_object)); + BNTransformParameter* list = new BNTransformParameter[params.size()]; + size_t idx = 0; + for (const auto& param : params) + { + list[idx].name = param.first.c_str(); + list[idx].value = param.second.GetBufferObject(); + idx++; + } + + BNTransformContextSetTransformParameters(m_object, list, params.size()); + delete[] list; +} + + +void TransformContext::SetTransformParameter(const string& name, const DataBuffer& data) +{ + BNTransformContextSetTransformParameter(m_object, name.c_str(), data.GetBufferObject()); +} + + +bool TransformContext::HasTransformParameter(const string& name) const +{ + return BNTransformContextHasTransformParameter(m_object, name.c_str()); +} + + +void TransformContext::ClearTransformParameter(const string& name) +{ + BNTransformContextClearTransformParameter(m_object, name.c_str()); +} + + +string TransformContext::GetExtractionMessage() const +{ + char* message = BNTransformContextGetExtractionMessage(m_object); + string result = message; + BNFreeString(message); + return result; +} + + +BNTransformResult TransformContext::GetExtractionResult() const +{ + return BNTransformContextGetExtractionResult(m_object); +} + + +BNTransformResult TransformContext::GetTransformResult() const +{ + return BNTransformContextGetTransformResult(m_object); } @@ -85,9 +140,9 @@ Ref TransformContext::GetChild(const string& filename) const } -Ref TransformContext::CreateChild(const DataBuffer& data, const string& filename) +Ref TransformContext::SetChild(const DataBuffer& data, const string& filename, BNTransformResult result, const std::string& message) { - BNTransformContext* child = BNTransformContextCreateChild(m_object, data.GetBufferObject(), filename.c_str()); + BNTransformContext* child = BNTransformContextSetChild(m_object, data.GetBufferObject(), filename.c_str(), result, message.c_str()); if (!child) return nullptr; return new TransformContext(child); -- cgit v1.3.1