malwaredb-client-py 0.3.4

Python client for MalwareDB.
Documentation
# SPDX-License-Identifier: Apache-2.0

import malwaredb
import unittest
import hashlib

class MalwareDBClient(unittest.TestCase):
    def test_decode_cart(self):
        with open("../../crates/types/testdata/elf/elf_haiku_x86", "rb") as f:
            test_file = f.read()

        with open("../../crates/types/testdata/elf/elf_haiku_x86.cart", "rb") as f:
            test_file_cart = f.read()

        original_binary, header, footer = malwaredb.cart.decode_cart(test_file_cart)
        self.assertEqual(test_file, original_binary)

        sha1 = hashlib.sha1(test_file).hexdigest()
        self.assertEqual(footer["sha1"], sha1)
        self.assertEqual(len(test_file), int(footer["length"]))

    def test_decode_round_trip(self):
        test_data = b"abcdefghijklmnopqrstuvwxyz"
        encoded = malwaredb.cart.create_cart(test_data)
        decoded, header, footer = malwaredb.cart.decode_cart(encoded)
        self.assertEqual(len(test_data), len(decoded))
        self.assertEqual(test_data, decoded)


if __name__ == '__main__':
    unittest.main()