Files
2026-05-06 16:15:54 +02:00

50 lines
1.3 KiB
Python

#!/bin/python
import sys, getopt, os
def main(argv):
comp1 = ''
comp2 = ''
comp3 = ''
try:
opts, args = getopt.getopt(argv,"h:1:2:3:",["comp1=","comp2=","comp3="])
except getopt.GetoptError:
print ('test.py -i <inputfile> -a <address> -p <port>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print ('test.py -i <inputfile> -a <address> -p <port>')
sys.exit()
elif opt in ("-1","--comp1"):
comp1 = str(arg)
elif opt in ("-2","--comp2"):
comp2 = str(arg)
elif opt in ("-3","--comp3"):
comp3 = str(arg)
if (len(comp1) != len(comp2)) or (len(comp1) != len(comp3)):
print("All components should be of the same length")
sys.exit(2)
if len(comp1) not in (16, 32, 64, 128, 256):
print("All components should be of byte length")
print(len(comp1))
print(len(comp2))
print(len(comp3))
sys.exit(2)
bytes1 = bytes.fromhex( comp1.encode("utf-8").hex())
bytes2 = bytes.fromhex( comp2.encode("utf-8").hex())
bytes3 = bytes.fromhex( comp3.encode("utf-8").hex())
e = bytearray()
for c,d,f in zip(bytes1,bytes2,bytes3):
e.append( ( c ^ d ^ f ) )
print(e.hex())
if __name__ == "__main__":
main(sys.argv[1:])