from KangarooTwelve import KT128, KT256
from Utils import hexStringSpecial, numberStringSpecial, printTestVectorOutput
def printKT128TestVectors():
print(" KT128(M=`00`^0, C=`00`^0, 32):")
printTestVectorOutput(KT128(b'', b'', 32))
print(" KT128(M=`00`^0, C=`00`^0, 64):")
printTestVectorOutput(KT128(b'', b'', 64))
print(" KT128(M=`00`^0, C=`00`^0, 10032), last 32 bytes:")
printTestVectorOutput(KT128(b'', b'', 10032)[10000:])
for i in range(7):
C = b''
M = bytearray([(j % 251) for j in range(17**i)])
print(" KT128(M=ptn({0:s} bytes), C=`00`^0, 32):".format(numberStringSpecial(17, i)))
printTestVectorOutput(KT128(M, C, 32))
for i in range(4):
M = bytearray([0xFF for j in range(2**i-1)])
C = bytearray([(j % 251) for j in range(41**i)])
print(" KT128({0:s}, C=ptn({1:s} bytes), 32):".format(hexStringSpecial(M), numberStringSpecial(41, i)))
printTestVectorOutput(KT128(M, C, 32))
print(" KT128(M=ptn(8191 bytes), C=`00`^0, 32):")
printTestVectorOutput(KT128(bytearray([(j % 251) for j in range(8191)]), b'', 32))
print(" KT128(M=ptn(8192 bytes), C=`00`^0, 32):")
printTestVectorOutput(KT128(bytearray([(j % 251) for j in range(8192)]), b'', 32))
for c in [8189, 8190]:
C = bytearray([(j % 251) for j in range(c)])
print(" KT128(M=ptn(8192 bytes), C=ptn({0:d} bytes), 32):".format(c))
printTestVectorOutput(KT128(bytearray([(j % 251) for j in range(8192)]), C, 32))
def printKT256TestVectors():
print(" KT256(M=`00`^0, C=`00`^0, 64):")
printTestVectorOutput(KT256(b'', b'', 64))
print(" KT256(M=`00`^0, C=`00`^0, 128):")
printTestVectorOutput(KT256(b'', b'', 128))
print(" KT256(M=`00`^0, C=`00`^0, 10064), last 64 bytes:")
printTestVectorOutput(KT256(b'', b'', 10064)[10000:])
for i in range(7):
C = b''
M = bytearray([(j % 251) for j in range(17**i)])
print(" KT256(M=ptn({0:s} bytes), C=`00`^0, 64):".format(numberStringSpecial(17, i)))
printTestVectorOutput(KT256(M, C, 64))
for i in range(4):
M = bytearray([0xFF for j in range(2**i-1)])
C = bytearray([(j % 251) for j in range(41**i)])
print(" KT256({0:s}, C=ptn({1:s} bytes), 64):".format(hexStringSpecial(M), numberStringSpecial(41, i)))
printTestVectorOutput(KT256(M, C, 64))
print(" KT256(M=ptn(8191 bytes), C=`00`^0, 64):")
printTestVectorOutput(KT256(bytearray([(j % 251) for j in range(8191)]), b'', 64))
print(" KT256(M=ptn(8192 bytes), C=`00`^0, 64):")
printTestVectorOutput(KT256(bytearray([(j % 251) for j in range(8192)]), b'', 64))
for c in [8189, 8190]:
C = bytearray([(j % 251) for j in range(c)])
print(" KT256(M=ptn(8192 bytes), C=ptn({0:d} bytes), 64):".format(c))
printTestVectorOutput(KT256(bytearray([(j % 251) for j in range(8192)]), C, 64))
printKT128TestVectors()
printKT256TestVectors()