package_part.py 870 B

12345678910111213141516171819202122232425262728293031323334
  1. class package_part:
  2. def __init__(self, content: bytes) -> None:
  3. self.__content = content
  4. self.__current_count = None
  5. self.__packages_count = None
  6. def set_counter(self, current: int, packages_count: int) -> object:
  7. self.__current_count = current
  8. self.__packages_count = packages_count
  9. return self
  10. @staticmethod
  11. def get_header_size() -> None:
  12. return self.__number_size() * 3 + self.__crc_size()
  13. @classmethod
  14. def __number_to_bytes(cls, target: int) -> bytes:
  15. return target.to_bytes(cls.__number_size(), "big")
  16. @staticmethod
  17. def __number_size() -> int:
  18. return 5
  19. @staticmethod
  20. def __crc_size() -> int:
  21. return 20
  22. @staticmethod
  23. def __calc_crt(target: bytes) -> bytes:
  24. return hashlib.sha1(target, usedforsecurity = False).digest()