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()