示例#1
0
    0x87e971759a1ce47a514d5c914c392c9018c7c46bc14465554afcdf54a5070c0e,
    0x649d3034751ea216776bf9a18acc81bc7896118a5197968782dd1fd97d8d5133,
    0x5740a408ac16b720b84424ae931cbb1fe363d1d0bf4017f1a89f7ea6de77a0b8,
    0x06fdcc7a409548aaf91368c06a6275b553e3f099bf0ea4edfd6778df89a890dd
]

hash160 = lambda x: Ripemd160().compute(x).digest()
hash128 = lambda x: Ripemd128().compute(x).digest()
hash320 = lambda x: Ripemd320().compute(x).digest()
hash256 = lambda x: Ripemd256().compute(x).digest()

assert Ripemd160_u.ks == k, "ripemd160 K"
assert Ripemd160_u.Ks == K, "ripemd160 K'"
assert r_values == r, "ripemd160 r"
assert R_values == R, "ripemd160 r'"
check_test_vectors(hash160, ripemd160_test_vectors, "RIPEMD-160")

assert ripemd320_IVs == Ripemd320_u.IVs, "ripemd320 IVs"
check_test_vectors(hash320, ripemd320_test_vectors, "RIPEMD-320")

assert Ripemd128_u.IVs == ripemd128_IVs, "ripemd128 IVs"
assert Ripemd128_u.ks == [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC], \
    "ripemd128 K"
assert Ripemd128_u.Ks == [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x00000000], \
    "ripemd128 K'"
check_test_vectors(hash128, ripemd128_test_vectors, "RIPEMD-128")

assert Ripemd256_u.IVs == ripemd256_IVs, "ripemd256 IVs"
check_test_vectors(hash256, ripemd256_test_vectors, "RIPEMD-256")

#for s, S, r, R, f, F, k, K in rounds_parameters():
示例#2
0
#Kabopan - Readable Algorithms. Public Domain, 2007-2009

from kbp.crypt.md2 import Md2, Md2_u
from kbp.test.common import check_test_vectors

test_vectors = [
    0x8350E5A3E24C153DF2275C9F80692773, 0x32EC01EC4A6DAC72C0AB96FB34C0B5D1,
    0xDA853B0D3F88D99B30283A69E6DED6BB, 0xAB4F496BFB2A530B219FF33031FE06B0,
    0x4E8DDFF3650292AB5A4108C3AA47940B, 0xDA33DEF2A42DF13975352846C30338CD,
    0xD5976F79D83D3A0DC9806C3C66F3EFD8
]

hash_ = lambda x: Md2().compute(x).digest()
check_test_vectors(hash_, test_vectors, "MD2")

# in typical MD2 source code, paddings are stored in octal
octal_paddings = [
    "20202020202020202020202020202020", "171717171717171717171717171717",
    "1616161616161616161616161616", "15151515151515151515151515",
    "141414141414141414141414", "1313131313131313131313",
    "12121212121212121212", "111111111111111111", "1010101010101010",
    "07070707070707", "060606060606", "0505050505", "04040404", "030303",
    "0202", "01"
]

for i in range(32):
    assert octal_paddings[i % 16] == str().join("%02o" % ord(c)
                                                for c in Md2_u.padpkcs7(i))
示例#3
0
hash0 = lambda x: Sha0().compute(x).digest()

IVs = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]

sha0_test_vectors = [
    0xf96cea198ad1dd5617ac084a3d92c6107708c0ef,
    0x37f297772fae4cb1ba39b6cf9cf0381180bd62f2,
    0x0164b8a914cd2a5e74c4f7ff082c4d97f1edf880,
    0xc1b0f222d150ebb9aa36a40cafdc8bcbed830b14,
    0xb40ce07a430cfd3c033039b9fe9afec95dc1bdcd,
    0x79e966f7a3a990df33e40e3d7f8f18d2caebadfa,
    0x4aa29d14d171522ece47bee8957e35a41f3e9cff]

assert IVs == Sha_u.IVs, "sha-0 IVs"
check_test_vectors(hash0, sha0_test_vectors, "SHA-0")

#full collision, by Antoine Joux, Patrick Carribault, Christophe Lemuet, William Jalby
a = \
 "a766a602 b65cffe7 73bcf258 26b322b3 d01b1a97 2684ef53 3e3b4b7f 53fe3762"\
 "24c08e47 e959b2bc 3b519880 b9286568 247d110f 70f5c5e2 b4590ca3 f55f52fe"\
 "effd4c8f e68de835 329e603c c51e7f02 545410d1 671d108d f5a4000d cf20a439"\
 "4949d72c d14fbb03 45cf3a29 5dcda89f 998f8755 2c9a58b1 bdc38483 5e477185"\
 "f96e68be bb0025d2 d2b69edf 21724198 f688b41d eb9b4913 fbe696b5 457ab399"\
 "21e1d759 1f89de84 57e8613c 6c9e3b24 2879d4d8 783b2d9c a9935ea5 26a729c0"\
 "6edfc501 37e69330 be976012 cc5dfe1c 14c4c68b d1db3ecb 24438a59 a09b5db4"\
 "35563e0d 8bdf572f 77b53065 cef31f32 dc9dbaa0 4146261e 9994bd5c d0758e3d"

delta = \
 "__________________________________1_______d_________1_b________d_______"\
 "a______5_______f___________3_____2__a______d________0_3_____e__7______c"\
示例#4
0
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(" ","")
a4, b4 = [hex2bin(s) for s in [a4, b4]]



assert Md4_u.IVs == md4_IVs, "md4 IVs"
check_test_vectors(hashmd4, md4_test_vectors, "MD4")

assert hashmd4(a4) == hashmd4(b4)

# MD5
hashmd5 = lambda x: Md5().compute(x).digest()

md5_test_vectors = [
    0xd41d8cd98f00b204e9800998ecf8427e,
    0x0cc175b9c0f1b6a831c399e269772661,
    0x900150983cd24fb0d6963f7d28e17f72,
    0xf96b697d7cb7938d525a2f31aaf161d0,
    0xc3fcd3d76192e4007dfb496cca67e13b,
    0xd174ab98d277d9f5a5611c2c9f419d9f,
    0x57edf4a22be3c955ac49da2e2107b67a]
示例#5
0
sha512_test_vectors = [
    0xcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e,
    0x1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75,
    0xddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f,
    0x107dbf389d9e9f71a3a95f6c055b9251bc5268c2be16d6c13492ea45b0199f3309e16455ab1e96118e8a905d5597b72038ddb372a89826046de66687bb420e7c,
    0x4dbff86cc2ca1bae1e16468a05cb9881c97f1753bce3619034898faa1aabe429955a1bf8ec483d7421fe3c1646613a59ed5441fb0f321389f77f48a879c7b1f1,
    0x1e07be23c26a86ea37ea810c8ec7809352515a970e9253c26f536cfc7a9996c45c8370583e0a78fa4a90041d71a4ceab7423f19c71b9d5a3e01249f0bebd5894,
    0x72ec1ef1124a45b047e8b7c75a932195135bb61de24ec0d1914042246e0aec3a2354e093d76f3048b456764346900cb130d2a4fd5dd16abb5e30bcb850dee843
]

assert sha512_IVs == Sha512_u.IVs, "sha-512 IVs"
assert sha512_K == Sha512_u.K, "sha-512 K"

hash512 = lambda x: Sha512().compute(x).digest()
check_test_vectors(hash512, sha512_test_vectors, "SHA-512")

sha256_IVs = [
    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c,
    0x1f83d9ab, 0x5be0cd19
]
sha256_K = [
    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
    0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
    0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
    0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
    0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
示例#6
0
    0x5fcb6fab3ad6faec, 0x6c44198c4a475817]

sha512_test_vectors = [
    0xcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e,
    0x1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75,
    0xddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f,
    0x107dbf389d9e9f71a3a95f6c055b9251bc5268c2be16d6c13492ea45b0199f3309e16455ab1e96118e8a905d5597b72038ddb372a89826046de66687bb420e7c,
    0x4dbff86cc2ca1bae1e16468a05cb9881c97f1753bce3619034898faa1aabe429955a1bf8ec483d7421fe3c1646613a59ed5441fb0f321389f77f48a879c7b1f1,
    0x1e07be23c26a86ea37ea810c8ec7809352515a970e9253c26f536cfc7a9996c45c8370583e0a78fa4a90041d71a4ceab7423f19c71b9d5a3e01249f0bebd5894,
    0x72ec1ef1124a45b047e8b7c75a932195135bb61de24ec0d1914042246e0aec3a2354e093d76f3048b456764346900cb130d2a4fd5dd16abb5e30bcb850dee843]

assert sha512_IVs == Sha512_u.IVs, "sha-512 IVs"
assert sha512_K == Sha512_u.K, "sha-512 K"

hash512 = lambda x: Sha512().compute(x).digest()
check_test_vectors(hash512, sha512_test_vectors, "SHA-512")



sha256_IVs = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]
sha256_K = [
    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]

sha256_test_vectors = [
示例#7
0
hash0 = lambda x: Sha0().compute(x).digest()

IVs = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]

sha0_test_vectors = [
    0xf96cea198ad1dd5617ac084a3d92c6107708c0ef,
    0x37f297772fae4cb1ba39b6cf9cf0381180bd62f2,
    0x0164b8a914cd2a5e74c4f7ff082c4d97f1edf880,
    0xc1b0f222d150ebb9aa36a40cafdc8bcbed830b14,
    0xb40ce07a430cfd3c033039b9fe9afec95dc1bdcd,
    0x79e966f7a3a990df33e40e3d7f8f18d2caebadfa,
    0x4aa29d14d171522ece47bee8957e35a41f3e9cff
]

assert IVs == Sha_u.IVs, "sha-0 IVs"
check_test_vectors(hash0, sha0_test_vectors, "SHA-0")

#full collision, by Antoine Joux, Patrick Carribault, Christophe Lemuet, William Jalby
a = \
 "a766a602 b65cffe7 73bcf258 26b322b3 d01b1a97 2684ef53 3e3b4b7f 53fe3762"\
 "24c08e47 e959b2bc 3b519880 b9286568 247d110f 70f5c5e2 b4590ca3 f55f52fe"\
 "effd4c8f e68de835 329e603c c51e7f02 545410d1 671d108d f5a4000d cf20a439"\
 "4949d72c d14fbb03 45cf3a29 5dcda89f 998f8755 2c9a58b1 bdc38483 5e477185"\
 "f96e68be bb0025d2 d2b69edf 21724198 f688b41d eb9b4913 fbe696b5 457ab399"\
 "21e1d759 1f89de84 57e8613c 6c9e3b24 2879d4d8 783b2d9c a9935ea5 26a729c0"\
 "6edfc501 37e69330 be976012 cc5dfe1c 14c4c68b d1db3ecb 24438a59 a09b5db4"\
 "35563e0d 8bdf572f 77b53065 cef31f32 dc9dbaa0 4146261e 9994bd5c d0758e3d"

delta = \
 "__________________________________1_______d_________1_b________d_______"\
 "a______5_______f___________3_____2__a______d________0_3_____e__7______c"\
示例#8
0
#Kabopan - Readable Algorithms. Public Domain, 2007-2009

from kbp.crypt.has import Has160
from kbp.test.common import check_test_vectors

test_vectors = \
[
    0x307964ef34151d37c8047adec7ab50f4ff89762d,
    0x4872bcbc4cd0f0a9dc7c2f7045e5b43b6c830db8,
    0x975e810488cf2a3d49838478124afce4b1c78804,
    0x2338dbc8638d31225f73086246ba529f96710bc6,
    0x596185c9ab6703d0d0dbb98702bc0f5729cd1d3c,
    0xcb5d7efbca2f02e0fb7167cabb123af5795764e5,
    0x07f05c8c0773c55ca3a5a695ce6aca4c438911b5,
]

hash_ = lambda x: Has160().compute(x).digest()
check_test_vectors(hash_, test_vectors, "HAS-160")
示例#9
0

tiger_test_vectors = [
    0x3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3,
    0x77befbef2e7ef8ab2ec8f93bf587a7fc613e247f5f247809,
    0x2aab1484e8c158f2bfb8c5ff41b57a525129131c957b5f93,
    0xd981f8cb78201a950dcf3048751e441c517fca1aa55a29f6,
    0x1714a472eee57d30040412bfcc55032a0b11602ff37beee9,
    0x8dcea680a17583ee502ba38a3c368651890ffbccdc49a8cc,
    0x1c14795529fd9f207a958f84c52f11e887fa0cabdfd91bfd]

#TODO:didn't make a friendly class for tiger yet. fix constant generation first
#ass(IVs, tiger_.IVs, "tiger IVs")
#ass(Ss_test, tiger_.S, "tiger s-boxes")
hash_ = lambda x:Tiger().compute(x).digest()
check_test_vectors(hash_, tiger_test_vectors, "Tiger")

tiger160_test_vectors = [
    0x3293ac630c13f0245f92bbb1766e16167a4e5849,
    0x77befbef2e7ef8ab2ec8f93bf587a7fc613e247f,
    0x2aab1484e8c158f2bfb8c5ff41b57a525129131c,
    0xd981f8cb78201a950dcf3048751e441c517fca1a,
    0x1714a472eee57d30040412bfcc55032a0b11602f,
    0x8dcea680a17583ee502ba38a3c368651890ffbcc,
    0x1c14795529fd9f207a958f84c52f11e887fa0cab]

hash160 = lambda x:Tiger160().compute(x).digest()
check_test_vectors(hash160, tiger160_test_vectors, "Tiger-160")

tiger128_test_vectors = [
    0x3293ac630c13f0245f92bbb1766e1616,
示例#10
0
    0xafbd6e228b9d8cbbcef5ca2d03e6dba10ac0bc7dcbe4680e1e42d2e975459b65,
    0x87e971759a1ce47a514d5c914c392c9018c7c46bc14465554afcdf54a5070c0e,
    0x649d3034751ea216776bf9a18acc81bc7896118a5197968782dd1fd97d8d5133,
    0x5740a408ac16b720b84424ae931cbb1fe363d1d0bf4017f1a89f7ea6de77a0b8,
    0x06fdcc7a409548aaf91368c06a6275b553e3f099bf0ea4edfd6778df89a890dd]

hash160 = lambda x:Ripemd160().compute(x).digest()
hash128 = lambda x:Ripemd128().compute(x).digest()
hash320 = lambda x:Ripemd320().compute(x).digest()
hash256 = lambda x:Ripemd256().compute(x).digest()

assert Ripemd160_u.ks == k , "ripemd160 K"
assert Ripemd160_u.Ks == K, "ripemd160 K'"
assert r_values == r, "ripemd160 r"
assert R_values == R, "ripemd160 r'"
check_test_vectors(hash160, ripemd160_test_vectors, "RIPEMD-160")

assert ripemd320_IVs == Ripemd320_u.IVs, "ripemd320 IVs"
check_test_vectors(hash320, ripemd320_test_vectors, "RIPEMD-320")

assert Ripemd128_u.IVs == ripemd128_IVs, "ripemd128 IVs"
assert Ripemd128_u.ks == [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC], \
    "ripemd128 K"
assert Ripemd128_u.Ks == [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x00000000], \
    "ripemd128 K'"
check_test_vectors(hash128, ripemd128_test_vectors, "RIPEMD-128")

assert Ripemd256_u.IVs == ripemd256_IVs, "ripemd256 IVs"
check_test_vectors(hash256, ripemd256_test_vectors, "RIPEMD-256")

#for s, S, r, R, f, F, k, K in rounds_parameters():
示例#11
0
# 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(" ", "")
a4, b4 = [hex2bin(s) for s in [a4, b4]]

assert Md4_u.IVs == md4_IVs, "md4 IVs"
check_test_vectors(hashmd4, md4_test_vectors, "MD4")

assert hashmd4(a4) == hashmd4(b4)

# MD5
hashmd5 = lambda x: Md5().compute(x).digest()

md5_test_vectors = [
    0xd41d8cd98f00b204e9800998ecf8427e, 0x0cc175b9c0f1b6a831c399e269772661,
    0x900150983cd24fb0d6963f7d28e17f72, 0xf96b697d7cb7938d525a2f31aaf161d0,
    0xc3fcd3d76192e4007dfb496cca67e13b, 0xd174ab98d277d9f5a5611c2c9f419d9f,
    0x57edf4a22be3c955ac49da2e2107b67a
]

# collision, XiaoyunWang, Dengguo Feng, Xuejia Lai, Hongbo Yu, 2004
a5 = \
示例#12
0
#Kabopan - Readable Algorithms. Public Domain, 2007-2009

from kbp.crypt.md2 import Md2, Md2_u
from kbp.test.common import check_test_vectors

test_vectors = [
    0x8350E5A3E24C153DF2275C9F80692773,
    0x32EC01EC4A6DAC72C0AB96FB34C0B5D1,
    0xDA853B0D3F88D99B30283A69E6DED6BB,
    0xAB4F496BFB2A530B219FF33031FE06B0,
    0x4E8DDFF3650292AB5A4108C3AA47940B,
    0xDA33DEF2A42DF13975352846C30338CD,
    0xD5976F79D83D3A0DC9806C3C66F3EFD8]

hash_ = lambda x: Md2().compute(x).digest()
check_test_vectors(hash_, test_vectors, "MD2")

# in typical MD2 source code, paddings are stored in octal
octal_paddings = [
    "20202020202020202020202020202020",
    "171717171717171717171717171717",
    "1616161616161616161616161616",
    "15151515151515151515151515",
    "141414141414141414141414",
    "1313131313131313131313",
    "12121212121212121212",
    "111111111111111111",
    "1010101010101010",
    "07070707070707",
    "060606060606",
    "0505050505",
示例#13
0
tiger_test_vectors = [
    0x3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3,
    0x77befbef2e7ef8ab2ec8f93bf587a7fc613e247f5f247809,
    0x2aab1484e8c158f2bfb8c5ff41b57a525129131c957b5f93,
    0xd981f8cb78201a950dcf3048751e441c517fca1aa55a29f6,
    0x1714a472eee57d30040412bfcc55032a0b11602ff37beee9,
    0x8dcea680a17583ee502ba38a3c368651890ffbccdc49a8cc,
    0x1c14795529fd9f207a958f84c52f11e887fa0cabdfd91bfd
]

#TODO:didn't make a friendly class for tiger yet. fix constant generation first
#ass(IVs, tiger_.IVs, "tiger IVs")
#ass(Ss_test, tiger_.S, "tiger s-boxes")
hash_ = lambda x: Tiger().compute(x).digest()
check_test_vectors(hash_, tiger_test_vectors, "Tiger")

tiger160_test_vectors = [
    0x3293ac630c13f0245f92bbb1766e16167a4e5849,
    0x77befbef2e7ef8ab2ec8f93bf587a7fc613e247f,
    0x2aab1484e8c158f2bfb8c5ff41b57a525129131c,
    0xd981f8cb78201a950dcf3048751e441c517fca1a,
    0x1714a472eee57d30040412bfcc55032a0b11602f,
    0x8dcea680a17583ee502ba38a3c368651890ffbcc,
    0x1c14795529fd9f207a958f84c52f11e887fa0cab
]

hash160 = lambda x: Tiger160().compute(x).digest()
check_test_vectors(hash160, tiger160_test_vectors, "Tiger-160")

tiger128_test_vectors = [