Exemplo n.º 1
0
#Kabopan - Readable Algorithms. Public Domain, 2007-2009
"""tests for MD4 and MD5"""

from kbp._misc import rol, hex2bin
from kbp.crypt.md4 import Md4, Md4_u, Md5, Md5_u
from kbp.types import add_string
from kbp.test.common import check_test_vectors

hashmd4 = lambda x: Md4().compute(x).digest()

md4_IVs = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476]

md4_test_vectors = [
    0x31d6cfe0d16ae931b73c59d7e0c089c0, 0xbde52cb31de33e46245e05fbdbd6fb24,
    0xa448017aaf21d8525fc10ae87aa6729d, 0xd9130a8164549fe818874806e1c7014b,
    0xd79e1c308aa5bbcdeea8ed63df412da9, 0x043f8582f241db351ce627e153e7f0e4,
    0xe33b4ddc9c38f2199c3e7b164fcc0536
]

# collision, XiaoyunWang, Dengguo Feng, Xuejia Lai, Hongbo Yu, 2004

a4 = \
 "839c7a4d 7a92cb56 78a5d5b9 eea5a757 3c8a74de b366c3dc 20a083b6 9f5d2a3b"\
 "b3719dc6 9891e9f9 5e809fd7 e8b23ba6 318edd45 e51fe397 08bf9427 e9c3e8b9"

delta4 = \
 "_______________d________2______________________________________________"\
 "_________________________________________c_____________________________"

b4 = add_string(a4, delta4)
b4 = b4.replace(" ", "")