Source code for pylablib.core.fileio.bin_transform
[docs]
class MaskTransformer:
"""XOR mask transformer"""
def __init__(self, mask):
self.mask=mask.encode() if isinstance(mask,str) else bytes(mask)
[docs]
def f2d(self, fbytes):
if not fbytes:
return fbytes
mrep=(len(fbytes)-1)//len(self.mask)+1
rmask=(self.mask*mrep)[:len(fbytes)]
return bytes([cm^cb for cm,cb in zip(rmask,fbytes)])