summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binaryninjaapi.h3
-rw-r--r--databuffer.cpp20
2 files changed, 23 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 50a67b3f..10ceda55 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -194,6 +194,9 @@ namespace BinaryNinja
static DataBuffer FromEscapedString(const std::string& src);
std::string ToBase64() const;
static DataBuffer FromBase64(const std::string& src);
+
+ bool ZlibCompress(DataBuffer& output) const;
+ bool ZlibDecompress(DataBuffer& output) const;
};
class TemporaryFile: public RefCountObject
diff --git a/databuffer.cpp b/databuffer.cpp
index 7814b14e..fff2a74f 100644
--- a/databuffer.cpp
+++ b/databuffer.cpp
@@ -151,6 +151,26 @@ DataBuffer DataBuffer::FromBase64(const string& src)
}
+bool DataBuffer::ZlibCompress(DataBuffer& output) const
+{
+ BNDataBuffer* result = BNZlibCompress(output.m_buffer);
+ if (!result)
+ return false;
+ output = DataBuffer(result);
+ return true;
+}
+
+
+bool DataBuffer::ZlibDecompress(DataBuffer& output) const
+{
+ BNDataBuffer* result = BNZlibDecompress(output.m_buffer);
+ if (!result)
+ return false;
+ output = DataBuffer(result);
+ return true;
+}
+
+
string BinaryNinja::EscapeString(const string& s)
{
DataBuffer buffer(s.c_str(), s.size());