TurboSHAKE256.py 757 B

12345678910111213141516171819202122
  1. from .TurboSHAKE128 import TurboSHAKE
  2. def new(**kwargs):
  3. """Create a new TurboSHAKE256 object.
  4. Args:
  5. domain (integer):
  6. Optional - A domain separation byte, between 0x01 and 0x7F.
  7. The default value is 0x1F.
  8. data (bytes/bytearray/memoryview):
  9. Optional - The very first chunk of the message to hash.
  10. It is equivalent to an early call to :meth:`update`.
  11. :Return: A :class:`TurboSHAKE` object
  12. """
  13. domain_separation = kwargs.get('domain', 0x1F)
  14. if not (0x01 <= domain_separation <= 0x7F):
  15. raise ValueError("Incorrect domain separation value (%d)" %
  16. domain_separation)
  17. data = kwargs.get('data')
  18. return TurboSHAKE(64, domain_separation, data=data)