Ver código fonte

Add support for Tiger2

Signed-off-by: Steffen Jaeckel <[email protected]>
Steffen Jaeckel 1 ano atrás
pai
commit
d11758e700

+ 1 - 0
doc/crypt.tex

@@ -2798,6 +2798,7 @@ The following hashes are provided as of this release within the LibTomCrypt libr
       \hline SHA-224 & sha224\_desc & 28 & 10 \\
       \hline BLAKE2S-224 & blake2s\_224\_desc & 28 & 23 \\
       \hline TIGER-192 & tiger\_desc & 24 & 1 \\
+      \hline TIGER2-192 & tiger2\_desc & 24 & 33 \\
       \hline SHA-1 & sha1\_desc & 20 & 2 \\
       \hline RIPEMD-160 & rmd160\_desc & 20 & 9 \\
       \hline BLAKE2S-160 & blake2s\_160\_desc & 20 & 22 \\

+ 131 - 0
notes/hash_tv.txt

@@ -133,6 +133,137 @@ Hash: tiger
 127: DE39589DCC0C654867943801946B9888B347526279CA15BD
 128: 34FA7C74EE67C1F92C0BE1CFD4B2F46A14FFB999604925F6
 
+Hash: tiger2
+  0: 4441BE75F6018773C206C22745374B924AA8313FEF919F41
+  1: 860F73A57072EFACBBEA35F7DB67D97AA829C53463805093
+  2: FEF05EE7A34522E5D942D172E88CF1BE6733D9B51602C60E
+  3: 63A98123AEC6638FE54DAAC7D3B556BB3EA89C3161B8442C
+  4: FB74560B78925C828144FB81B3E3D606C93266FC50348A11
+  5: B3A2E70DE9AA8582AC5B1B9129072899C8129E62BFD20FB0
+  6: A423E667BDBB82418E5EEB2E09F642C648A0C4F7876FBE4A
+  7: 8AB2E536F8AFFA33A02C179D69CA3945DF1708645BF598C6
+  8: 89D39680FDA7CD9E4AEF74E1DAABB439C61A210179D1E11B
+  9: 7BF7D50D476571CCCE71EA422FBBE19C5732B4B4F0218480
+ 10: 54EC453EC5E0FD3D02BDA1F62ED5768AC2A6DCA773CDA4E1
+ 11: 5D18F5465C03C04A227A30E8047096E387E1E2F49F8689B0
+ 12: 5739942F95E90FAC91BD9C20FFB212F8D6857178B8629457
+ 13: FDD2E9977E006E9EFDD90E0B1C3148D11011490D5731F51A
+ 14: DB17D418A70D93F0E3AB066778A6E9FF6B0AEC0C0FCA732B
+ 15: D31F7BAC1783373D1663761380E000126CE062D29DA33DAD
+ 16: E2C8CAA79C623D67FE88ABAB5D75E1D6F0B162A5810CADD1
+ 17: E6D9E52386BE7C4FDF8CED788330EADA10EBD7B8DF63D74F
+ 18: 851EA0E80DE6D8464DCE43BCB54BEC652CC6440062E50164
+ 19: 84B18F2BD8709B09D28D9409198375985DE9659799DA0C9B
+ 20: 07400FB79F880FDC130B77C697BE5531EEA5FC521015E350
+ 21: F07D605809BF6424EA422F430385315974BDB0F546124E03
+ 22: 8E6DEE46C033BF9C066C3072BB77F31962E30FBD1B6D9906
+ 23: 341B583590A6278AD0EEB26F024D20DF4306C7B5E3E4791E
+ 24: 72CF22E8BB2068144AC98E697655373276C47E38DF3A2F19
+ 25: 14C5CE59C8DF7A665BB40101FC14DBB21E1373A18FA00427
+ 26: 555784C81E245996A5608AB20FC614F47A78B176F9BDC93B
+ 27: 87B3B8C1E2ECD0FF4CD5CD9FC6B665309CD215F9BDC22361
+ 28: ECBE5F713AED003663207FC995E25BECDE3879548811F208
+ 29: 11F1E981FED8EFA49F91F052374A69439037EE55CF27B2B9
+ 30: 80D3778CC24468A845BA184EDC79947ECFD37790F8E0E679
+ 31: 787A1E33A83839790D553EE73C877CA3A371866B616B6EF8
+ 32: 9E04376CB4C48AAE1179A13D1B1B7C5C5E3C8699C4096BCA
+ 33: 4701C1E0CB15AC6CABB7F08039D2567586DA3CCCEEC0B003
+ 34: 5FA5C3E177AA2EA0E9E601F6D1FE50BA788910380D77796A
+ 35: A64800E3357BA972E66F85D19D684C95B1827B82BDB9C8CF
+ 36: A7AA868C726868B0838714FA2BF6A560ADB5F8C11D1582A6
+ 37: EEE83496AFF5ADCB7F3538D223E8B3B4BB5B097052CF0481
+ 38: 690B6663CB1E19F272801A1A2250ED2D381983E816D1CEA6
+ 39: 4868E429D1C529048442E9B23CB4E4172677BEFF6492EB4B
+ 40: BC10A971426831EF4F004DA3F09240D819C4F11A7032F5E9
+ 41: 9796865C26FB65BA7FE0E2D744868BF26F8EC86FB707CDFB
+ 42: 5A5A41FB4FCA0EF18E53257B261D0222C4BEABA248C71D02
+ 43: 984E1670EBE09A9A1AEE3CD727EA3E8594E43E4AE38EAE99
+ 44: EC97A8461C7F1581F877FB0DD3EB405443C4E5BFEB7DE673
+ 45: 1C8ED2FC7E214BCF8F9CA064B1DEBAA5552930DB73957B38
+ 46: 5CE7109D6B3D6CE0CA50BD27099FA004C3A9CCAD27E9330D
+ 47: B8C5EA6760A1C651BB1240BCD0E15F46C7A1E75BFDF34AE5
+ 48: 9AB70134B530A75EC977692679A462B3F0921821DD8DD49D
+ 49: 273B2570A25EDBFC0DB586FA761856FEE187D978CF4FD4FE
+ 50: 6F90507126A74A0D03839921E745813F5951CF4D515FC7FE
+ 51: 0975E2F9838A8F3F1AD314AEC16243410002A73DA501DCC9
+ 52: 718448A178509134C808616CB497D77A07A0181E63801959
+ 53: 34EA51CD2AD992073D505F8337B5D076855C7835CD9B2E33
+ 54: 8C4E3D194750D0E33F09E97453EB9741DE2401BFEFC42B64
+ 55: EF719D2D5CEE1B3E2F9F0DACF510955E04D2518570F040B9
+ 56: 13456922151726148317D1B5EDB2B962DF0538B1EBFE4EEB
+ 57: 992D52B04602A6D4AE1FC0EA9D7CD26863CF3A5D470DE112
+ 58: D39DCE52A145C12795F8E83A39B381093F0C9B90505CD28D
+ 59: E88E13E7BF228D157DFC5D6A0DB85975E10C8B64F83E81D8
+ 60: FA43E5E7DA6211245E71D9A747E64097625E54E3423146D9
+ 61: 4AFC4D052B7A0F6B6EA88E2904C7C6E2210589124ABCB58B
+ 62: E976A40DD98F2E3CEBC342082B7142554156F338CB656EF3
+ 63: 1475C93BE7D1AB73752AAA750520542082E1CA4CB5350092
+ 64: A49A150130A2D9FBAEEDD3C0D2F1170DFE0F5FE842B52828
+ 65: FAA63B98298EC10DFD5F873F62DE6ED1F2316ED8BA419C2B
+ 66: 43BFE83A0D433D6B289465182CC6AACD1104CC5A2EC4C650
+ 67: 9786A1524038BE2AC5CB9A2DC1C82362329832928B5FBB5A
+ 68: 7077B3CD3CEAAF775E09AEAC2AE7351B77C6D37E5C4AF5CB
+ 69: EB2C1E64D78AC307FFD3DBDC6E1DE6FF6380BAA0147D65E7
+ 70: DEC0E1CD151DE382844D7A861E2BB5D68DD33C33509A76F9
+ 71: 8C5873FC0DACAB1E35078069031EFB94F3E02155BDFC8F85
+ 72: B662A70C5843F44A8888C8B7608A420DCBD3DCFB2471CCD1
+ 73: 04004F6AE3830F7BF22A111CC98600B60672A42554DE00C5
+ 74: AEC3D8E4DA2063DB0692276C16B2DC51B1D77C83437006EC
+ 75: 0D5A811F200DFC67B700A17FB6451F4FF3157C144E0E1141
+ 76: F5C48EBD4CBF06BC125794C9A96F09A50903D828A6FFCCE8
+ 77: CDAD316C9525CE81BC118372E8FAA58390C5BC8D04E22B92
+ 78: 6DD4B8CCBE14A41F72A605BC0506908397EAE3ACB937FDD0
+ 79: C334F5885E7B84CB453124564B0A4C14B39149009EE0E995
+ 80: C18ABB11F4CB63EBC79FFB17BDBCDEAC9987CCFEEF13AD63
+ 81: 5AE19250EF20FE72C14B4466EC582662CC3D2B63F5277204
+ 82: 957854273172C871583561F5250B9DAE205763E23AED255E
+ 83: 44821E05C7BE96BA383AA4E7D16FD7CB246E6A53D511FAD3
+ 84: F80EA3AEF38924AAE3A6B72663BC6A1DE6AF69E45646AFAB
+ 85: 310B66D0D148184D2C815272B49EB52EA72C17B0166724BC
+ 86: B0241C52269D2F0F1C3E9026EADE4F7E9F9DDE4540F6F24F
+ 87: 1BF01DDE44DE3418FE902534BA4D0A75483522A6DE7E0A23
+ 88: 2D4BC6A21A9EB4F82FCE3ABEE79073877D9AE31AE5A9708E
+ 89: E945E7E613F714ABDAD98649C7E7D285185C65EC092C7A4D
+ 90: 505C0F0646183CCE37C6BF9648892B2F5AE87A23ED444964
+ 91: E76DF21A37AFE6839C59C8E5BFFFEC421F8AABF69CE13889
+ 92: B99037CC4752EE2D0DB2D61092CC38FA8FEB16BF401BCBE2
+ 93: 6207ADE154AEA631D22DB915930F64F90306EC0AFB6CB6B6
+ 94: F9F4864E48581CD2CBC455EC56A3772726AF0A150E6CB622
+ 95: 6CC0666A35361103200D15F0B505B858797C51752B80DB1D
+ 96: 8CB75FFBE6F0D322696D667DA80E693F1259D1A9173ECE38
+ 97: A75D4E6E2BAC8DAE4283B38453F0743A2ED77F9887E92A9D
+ 98: 02C99F35D15FABAC88E54DF3E564A3A2F7DDC0E0D3959949
+ 99: A8B17BC390D28705D6FB127D6D0A53F4F3FA4BBF5EEBFD59
+100: 0DB12FA72375D187E89909CAB985D52F2FD89103DCE76DDD
+101: 6809BA1A8BB907231B81E28BDCE8F76E9F49452C3CFC6799
+102: F5315D6756C2984BE424FB48E06C3571832ADB1744223B06
+103: 97A128662540AFE0146FA5A215627E84FB4EABB35879B819
+104: E87066D1ECB771EB8A01597810C0F3AF9B7294E1539847EB
+105: B0A34B130C01AB564E95A2F1C691D05587D9B0724B3E7BA4
+106: A7EADC328FCE8977F4DB2EC3D5FC58A0AE0F5857F680AA3A
+107: 03967F6A6057EA5BB244F2EF2EFA67A661A7357651012410
+108: A6F0EF91F9FD4B037EBD82BF4E231D9006E689A6F57E0BBA
+109: 408FF16696B2BA751E58973C221095E3EE2FE8A276F6866E
+110: C33AAE6CA5D1C92EE1C35B8B88F5783906F069C3F8E59129
+111: 75ED40AF4E21951F600C393AF6BBD449DC390ECEC5369C93
+112: CAEAF77EA10DD6F0F41AB8BBFBC9899B4C2709F3A23120B7
+113: D780B68A9B62A9CC6B4A14F292ED355269C7C7EA38F6AF1E
+114: D064598A39EAC6BC49D38B8BC4C6FCA7B0DB6CEC323B848A
+115: DDF0C0F38C3E659470CA33616AE89775457FF7963F6256BA
+116: 1F1E9E0090011C55A59D3FDD59991CDC3B02ABE7750E2614
+117: DEE599A44ACAA54D3EB65CB43BA9BC4BFBC1664A46A89DBE
+118: 4E3A9D4C7416149D45FB9AE6249F8853069A3BE5FB5E3798
+119: B105BE5405C4BD50B675CAEC9B973A906A822807BBA1FA25
+120: C26609AA6FC7E149E3CD06A4AD95857839E50327EFEB5FBA
+121: 85A3A610ADE988C02A55BCDC9F7C908DDFFA7D96169838AF
+122: EBB1237CFF524C31E5E7D070507ED5C152F88B1D8E095911
+123: 2569B46F953DB353FC95FD8F7D31F3FDAB0439A5C340C35D
+124: 4114507E95B5EB844E1321F988F5ABCC58867D9EBB85929A
+125: 54DD5AE1A7D29ACB9F347BC552B16D9A1E2B90BE0936943E
+126: CD1A6920DED6BE4522698C1C7BB9046EFEE7D6CDB6A5F89B
+127: DE4D8FAABFCE06F91D1C7954491E8E695B7BCB4697A53F8F
+128: 8B5641298B698DB1D451575DDB47D89FA0405AA301B0B50C
+
 Hash: md2
   0: 8350E5A3E24C153DF2275C9F80692773
   1: EE8DBAE3BC62BDC94EA63F69C1BC26C9

+ 1 - 0
notes/hashsum_tv.txt

@@ -30,4 +30,5 @@ sha512: f90afe4d254716a9770fd2c4f29ca544f2975f961cbd7fa207117383e4e48f7a2e1ade4a
 sha512-224: 64ec566b5c2de736eab1b4e8542dc110f736819ea7f8f48e3712fbad *tests/test.key
 sha512-256: db880bce4beb7246510febb961c7595aab57a15de6f90cd079f145e476b5d773 *tests/test.key
 tiger: 97d713850e7affac30a642572c1ee7b18793d5b9e0ef5932 *tests/test.key
+tiger2: b2dfd53b3edba5b54e1f21a82cbf6a3475efbce33a8cae03 *tests/test.key
 whirlpool: d7d41c755e0f28313f254cb198e0bfa42f56670595d97b80dceec754825d69938a9c11e5bf16e9a3809a62a09bddf021f3dbff4302ceec7ba46c88b41772b711 *tests/test.key

+ 131 - 0
notes/hmac_tv.txt

@@ -133,6 +133,137 @@ HMAC-tiger
 127: C5B72BBE80917B55036A9AD6908D59293C49373F0BDD104B
 128: C0BD695F6B9B42DAB543C31BA73C9497A6AA6419A007A9F6
 
+HMAC-tiger2
+  0: 4B2654CC4D9D8E5CDF34DCF670279B0CAF5067BCA2B7D9A8
+  1: 6A4DE03B3A76A5776C69E307A20A5EB9A52C28E6CA09A108
+  2: DE423A47DF06D63D818572A39F7BDBE0E8CBD4821570705A
+  3: CCDD9C6BFBFE85DCE4667F79C8E59DBE6EB1CA17AC6FD2D8
+  4: 86940595125EB8DD8F382113BE6028D454E593002BD8E60D
+  5: A9F291F23B02781B5CF250867A6ADD1E77982A6328FC1A06
+  6: 38DE90FDAC4C1D54832F17602E36CF1EEC5F12B7ACA3DE54
+  7: B8C7EB0B8BC8FAE49798C2DAC86404172BF3892CDC1CCF89
+  8: D598E17D19BDAA6B89A3C3069813F0109C54C733D3A7DBF2
+  9: BBB1EE89364CD09FB1A1D435E67E66FBFB6DEC583483D03C
+ 10: 46CD01EB0BEEF872FF78A457EAF3D73B4CEC7D564EDADC5A
+ 11: B728CBF491A0F9694552A7DD2D11BE590F325D82CC8A3F78
+ 12: 8FF9F333A6F556BA4817A4C8F1105349D584FD1212F58AE9
+ 13: F5CB2A2758B32AC9F98E9DFFC180AA76DD4EF54EC4729215
+ 14: 0238F00B9B749F480CA06A5B00B33F17C0372DC17BD94FDC
+ 15: B0953C194702C3242850D141F9C84FC5D65C67D6DDF257B8
+ 16: A0C1EE78009DADD325ADD8D0DB34E20FE45C63BFB24A47B7
+ 17: FA135B67DB9B8787F59D4FB0DA89CCB3A0F672E06BE1B122
+ 18: 5D1D820FDB807A133C651426773F7C07E8762323402321B2
+ 19: 4C872518F9A291F26FB40ABA09A4F7A105DD741939644F50
+ 20: B168363ACBA1A14FCC5D8005314EB8E6881EE8F7F6C206CE
+ 21: 65639F063DC936CEA9F32BBDF84F3F22352E3A5780E9BCFF
+ 22: 1ED38E6A93A9AED1DDBF2A5624BAA97FBA5B9375E47088FD
+ 23: C9A8A38D29D4F3664FB425B73EAB2669BBA2DD6D67409E5C
+ 24: 86CF42CFF6B093580EAC3FF068537891330710589B7E2F5D
+ 25: 9B58623323AFAE5E57DB0A183BCFF0093D55A6252556E66A
+ 26: 1FFC82B7224B5BAD2859903B23387970DBD89E434D829057
+ 27: 617C19076821ED43D0EC17B4DED868977E5EF52532F7A1A5
+ 28: CED7CC6DBE3F6D6CB66AA31C6725DABD6F82C7A153C1306A
+ 29: D4F1096951A1B82B0C893122BC9B378DFC9CF6261569B036
+ 30: F5761E2048FEFA80E0A3DEBF064ADF91143EE8E494741D5E
+ 31: D57233CF1F35A3B64B6E2654B36EE4699D934F44E7259C8A
+ 32: 7FB35F882E8DE4153BBEDAF28C3A1AE9763C38EE7F726A66
+ 33: FF513C527AD10137987773862AC8328DAF99AFC4EDD3C326
+ 34: 2528CCAD54BA18D1E67C1C87F1A3122FD731D3D7A7605340
+ 35: 30D3AB0A8B2B291C1A99E8EC49172AC88A823B23617BA866
+ 36: 6D8C803B6A428274C7BC37DF713E4548D054B770A9B977AE
+ 37: 20372A49ABD3AB29DBE20726CFCD2FFFD2A9320EA300DD95
+ 38: F03368637D44B367CD9FA73298858CD6D4CE6826A0A52CBB
+ 39: 2E3E6C99B4F1570F02E27922C681166B4F71A129E8D03ADC
+ 40: 3518E8C1ACA94F7C1A251CAF5881653725C69154A307E13C
+ 41: E6BDE29863C0616BACF1B2429AB06F7E42630CA77334C7B0
+ 42: EB0D4F19028852C0B5DB21F1B0FF151F2A584D8039A9863B
+ 43: 1DE2E3A818FC0FEA8CF5D55F685661462AA0CABAF826570A
+ 44: D6C0FC83DC11504E47DC15AE8233C659205733AC4D0E67AE
+ 45: 937CD1B88CE1AA2E3E3D324BA4A3B4BC44D6B9143789363E
+ 46: 339970A774609B87A476FADB93764F3E99522CDEF0B2E09E
+ 47: 032E9074BF0146582175806D804AB611C552DFE1270751D0
+ 48: 9853B244C9AD49B62D4EEBF166F8239C093540CEFEAF8888
+ 49: 0F46C3C319B1A04AEB7E84D78E4B901213369968DAED38EB
+ 50: DD92FEBDB86136F1CEE80BB786B904B9022DF9ADD7BD76B0
+ 51: B08956B59160859B0773990AA5D355D56B630DD40973E5B7
+ 52: 02E060EDDDD670C9202B06EA431A974B625CA39969E9E939
+ 53: 4DAAD5AEF34982F889D405540C165E7447A5B3C995E98383
+ 54: ECEE8F8EBA4C7BBF2E2814F0D17BC9BEEE19E43AC9E2B342
+ 55: B8328156D9101787E5CC080877727D4B8407D690D8751C8E
+ 56: 8EE93333E0579C8DDEBACD6326F15DBA2F1AEACA49380938
+ 57: C333CB9031703F32C274CC488CA09B3DE60269D179F64DA6
+ 58: 79A215B6162CF63F4632D8F9D38730941F446BF594B17556
+ 59: 3A3D3F305F26D1D6696DBFB9A1004A681EB2F62FCB9CF6B2
+ 60: 2DD3CC48A7E2D35DD3F437DA1A8D72154DE3B1C75FFABBC8
+ 61: 29086C39A04D00BDE82C212A8E74A7759B00DDE352C3FADC
+ 62: CB1E788B784A6BE53AB2509A0315504E46D38753DC37A72F
+ 63: 5F7D94DE430CDF36C9CAF432F810787E1ED85E515F35423D
+ 64: 3F50DA41470989AA861511964AA075BECBEAD17870FAFABD
+ 65: 62CE5C9CD41D99B33FE074A0D879933DCF476418D8A409F4
+ 66: CEC4518F2423AE43E9964D2B3F0DF096BC5961150A1F627D
+ 67: A0585B6A79B338549BB80530DFEC07D8651BAC80193230B4
+ 68: 41EF4BBC67F666440A347DB5617DF591F5E8E050C7C68DC5
+ 69: 9519F5DEBD840FAAFD86CDC222A1704D432935E8ED81E2EE
+ 70: 316C82BC0E10E35BB5F6E0EF0454F1B255099B0E019E5DCA
+ 71: 733FBF4A10E247A0195D3141D843D5D22C534DD6FE2F5B96
+ 72: A05E3C456E22A2D16A0521A3043752C32906E1CF0FC39CEB
+ 73: 7640C03B8154E28126925A165FECDE1FCB7EBD62EE3E6249
+ 74: D08BDE42F0E296E510B1C05BF51EE3FC4E20B7715A5B8C0C
+ 75: A194063DA61C6DB770A7C5E85BE7E24699395E41DA87DBF4
+ 76: A99BC961193CEFA422AB1EBA6C4DFF29D05EAAC718AEE16C
+ 77: C46A18C6EC220C89C4918C61C5C21E4A7C511FC2AAB3B966
+ 78: 21E034CFB8528153AEEBBE45819515E6D045AF7AB29D05A2
+ 79: 1A2B135C10E7A86EC0093B98DF2457A34572093FE2F3B872
+ 80: 7EE6CF7EB06C8A95B05E0C780D4C50A47EBF41A4386E2A87
+ 81: D5FDD5BED43BA202CA01AC4D5FF13237078FA02A0C188BDE
+ 82: 435370F2F686CC6BEC2B1306FA414AA77D06F09A45A6AB9D
+ 83: 98AFE9D1722FA044DDA4C8C4308FFBE89588EDC60C02EEDF
+ 84: AD3F9927883D07140939E8C140DB4BFCD3EAFB5235829D3C
+ 85: 4E831237FA94ED333567AD16681ADDBA69BE215B09046014
+ 86: 1318B479683D8C321A7180654F61DDF5BD15D86CEE47621B
+ 87: 87C90A8A7534C412819216B2FFCAC2BF53F517D504A3527A
+ 88: DEFE3CC4F5D24972DA51C46037B245CFE8BC0CDCC7A84BB2
+ 89: CF23ABB3DB48C22C34DD91570C0912ACCE1661817E78AA4D
+ 90: 3A93480EE3330C348C66120AC8F25190902E7C00838C1299
+ 91: 5200537B57872B600C21E3724DE8B2139CD712C9674398D9
+ 92: 589D84622E8A1921179C68B8E6E6B89E484BE385AD63D166
+ 93: 89EBBD088BD4D517166C4DC2319C88C0ABC5F04B32EAF539
+ 94: 10A760CB415248FF2140762B285082D5008AAC08611540BA
+ 95: 4E83F77E0F0A98BE6AB6ADCEF416D94015B6DE7EBF57E659
+ 96: D8ABB13EBF7E2D9F91DB0F732ECCEE9DAB141F82B47FA256
+ 97: 5061DE8B61830573BCA2C4B87B078078918625B52BF439FA
+ 98: 596408C287BA0C1AAB8A31DEA77ED20D7604BAE6610B34EB
+ 99: 37D018DC7B83BFF2B0F72F72CE58D1EACD8B7F094A67E02F
+100: DB89119904ED7A9B756A98E6F2AB529C5B92B5B43C3A0677
+101: 712DF1C234694E6D120ABD1908B1325225C729AE100BDE78
+102: 32501D9D9FFD57D5490B14CDDCF0095EC94FC7894F2D1403
+103: C7804BF8F5B289D43578D5881E536FCE5DD1A17035FA8469
+104: EEA51C718E136459BE0440D8C87F6C973B5F6D1DE587358E
+105: 36B44080084A94DB6F2BDDC2D9144D178645C530CCA5D986
+106: 30418C50462422AD509D26DF8607A1BAFFE54AD6AB7D78D2
+107: BB2C01B4E739DAC6CF22F0971B32E07E438BC82470A6DB9B
+108: 2CBA4A4A771334892F9C12ECF0E86FAF22C4017711771D20
+109: 2CA9B5DC8F0D1F1F25C4C7C8A3B1E76BC5399AECE66011AC
+110: A5D48D3B930FE95D5B050FA6CD62BD02E27D6DA01AAB3DD7
+111: BA477FA5FAF019F6DAF6CB4833E59A689A37E8B24A275DD3
+112: 1F86A12C662C6309EF602B6FC014B3CB2C18B977D4E5725D
+113: AF4470A72EFAE66B1BDCFF1B8E31232C18A6E17D7F3F67B8
+114: EFE7704C17F7B268D9B226A55DA82F7D523DA5830D07BD09
+115: A84207033240FA7CEC68BFDD9A9CA4F8EF918B2FFF6E1B1F
+116: AE9C316E61DB29107ADF6D694CF49E2F603461BB49E2C71C
+117: 89361D5A122E68BE665640CA9C666649BB544C48B1EA9406
+118: 68CD95493256C3DA5A541132A2FD302804F45032574D6BE1
+119: D15621BD9BFFE8699AD40C99BBD4138271F3F013FA2C7CB7
+120: B78D1401112D4D17E24666248EEC0F4B4824FF4E4B52EB0F
+121: 76605587B0F2AEEE3E45501ABD5F374D62BBB63B3E5D21D9
+122: 6A234995E565921D056D114F01FD59E789302B580DEB6C5A
+123: 3A0C9801C7B7183D0D35ABEEB54C89DABE2322CBD6D8960B
+124: 4B07F61884D01AC9CFC615D51849723A13CDE2E4B7667F86
+125: BC2245620EDB653ECC0C2C84638ED6CCFFED0FC86D7851B8
+126: B427067F44858723D1A998FCF7C92FCCFBCBF3F736D3DBF8
+127: 1A75D81EB5E19084095E65006F97A0ACD1D0BDB8F69C7DDF
+128: C56A45AC44703A544F143432D9219506046668ADCBAB345D
+
 HMAC-md2
   0: D39AD9DDE006587A8BE949B11B9288F8
   1: FCB21B5348C95E8A8DCBEE50A80302CA

+ 115 - 21
src/hashes/tiger.c

@@ -28,6 +28,24 @@ const struct ltc_hash_descriptor tiger_desc =
     NULL
 };
 
+const struct ltc_hash_descriptor tiger2_desc =
+{
+    "tiger2",
+    33,
+    24,
+    64,
+
+    /* OID ... does not exist */
+   { 0 },
+   0,
+
+    &tiger2_init,
+    &tiger_process,
+    &tiger_done,
+    &tiger2_test,
+    NULL
+};
+
 #define t1 (table)
 #define t2 (table+256)
 #define t3 (table+256*2)
@@ -655,6 +673,7 @@ int tiger_init(hash_state *md)
     md->tiger.curlen = 0;
     md->tiger.length = 0;
     md->tiger.passes = 3;
+    md->tiger.pad = 0x01u;
     return CRYPT_OK;
 }
 
@@ -673,6 +692,37 @@ int tiger_init_ex(hash_state *md, unsigned long passes)
     }
     md->tiger.passes = passes;
     return CRYPT_OK;
+}
+
+/**
+   Initialize the hash state (extended version)
+   @param md       The hash state you wish to initialize
+   @return CRYPT_OK if successful
+*/
+int tiger2_init(hash_state *md)
+{
+    int err;
+    if ((err = tiger_init(md) != CRYPT_OK)) {
+       return err;
+    }
+    md->tiger.pad = 0x80u;
+    return CRYPT_OK;
+}
+
+/**
+   Initialize the hash state (extended version)
+   @param md       The hash state you wish to initialize
+   @param passes   The number of passes that should be executed
+                   when the compress function is called.
+   @return CRYPT_OK if successful
+*/
+int tiger2_init_ex(hash_state *md, unsigned long passes)
+{
+    int err;
+    if ((err = tiger2_init(md) != CRYPT_OK)) {
+        return err;
+    }
+    md->tiger.passes = passes;
     return CRYPT_OK;
 }
 
@@ -703,8 +753,8 @@ int tiger_done(hash_state * md, unsigned char *out)
     /* increase the length of the message */
     md->tiger.length += md->tiger.curlen * 8;
 
-    /* append the '1' bit */
-    md->tiger.buf[md->tiger.curlen++] = (unsigned char)0x01;
+    /* append the padding bit */
+    md->tiger.buf[md->tiger.curlen++] = md->tiger.pad;
 
     /* if the length is currently above 56 bytes we append zeros
      * then compress.  Then we can fall back to padding zeros and length
@@ -741,51 +791,77 @@ int tiger_done(hash_state * md, unsigned char *out)
   Self-test the hash
   @return CRYPT_OK if successful, CRYPT_NOP if self-tests have been disabled
 */
-int  tiger_test(void)
+int s_tiger_test(unsigned int idx)
 {
  #ifndef LTC_TEST
     return CRYPT_NOP;
  #else
   static const struct {
       const char *msg;
-      unsigned char hash[24];
+      unsigned char hash[2][24];
   } tests[] = {
     { "",
-     { 0x32, 0x93, 0xac, 0x63, 0x0c, 0x13, 0xf0, 0x24,
-       0x5f, 0x92, 0xbb, 0xb1, 0x76, 0x6e, 0x16, 0x16,
-       0x7a, 0x4e, 0x58, 0x49, 0x2d, 0xde, 0x73, 0xf3 }
+      {
+        { 0x32, 0x93, 0xac, 0x63, 0x0c, 0x13, 0xf0, 0x24,
+          0x5f, 0x92, 0xbb, 0xb1, 0x76, 0x6e, 0x16, 0x16,
+          0x7a, 0x4e, 0x58, 0x49, 0x2d, 0xde, 0x73, 0xf3 },
+        { 0x44, 0x41, 0xbe, 0x75, 0xf6, 0x01, 0x87, 0x73,
+          0xc2, 0x06, 0xc2, 0x27, 0x45, 0x37, 0x4b, 0x92,
+          0x4a, 0xa8, 0x31, 0x3f, 0xef, 0x91, 0x9f, 0x41 },
+      },
     },
     { "abc",
-     { 0x2a, 0xab, 0x14, 0x84, 0xe8, 0xc1, 0x58, 0xf2,
-       0xbf, 0xb8, 0xc5, 0xff, 0x41, 0xb5, 0x7a, 0x52,
-       0x51, 0x29, 0x13, 0x1c, 0x95, 0x7b, 0x5f, 0x93 }
+      {
+        { 0x2a, 0xab, 0x14, 0x84, 0xe8, 0xc1, 0x58, 0xf2,
+          0xbf, 0xb8, 0xc5, 0xff, 0x41, 0xb5, 0x7a, 0x52,
+          0x51, 0x29, 0x13, 0x1c, 0x95, 0x7b, 0x5f, 0x93 },
+        { 0xf6, 0x8d, 0x7b, 0xc5, 0xaf, 0x4b, 0x43, 0xa0,
+          0x6e, 0x04, 0x8d, 0x78, 0x29, 0x56, 0x0d, 0x4a,
+          0x94, 0x15, 0x65, 0x8b, 0xb0, 0xb1, 0xf3, 0xbf },
+      },
     },
     { "Tiger",
-     { 0xdd, 0x00, 0x23, 0x07, 0x99, 0xf5, 0x00, 0x9f,
-       0xec, 0x6d, 0xeb, 0xc8, 0x38, 0xbb, 0x6a, 0x27,
-       0xdf, 0x2b, 0x9d, 0x6f, 0x11, 0x0c, 0x79, 0x37 }
+      {
+        { 0xdd, 0x00, 0x23, 0x07, 0x99, 0xf5, 0x00, 0x9f,
+          0xec, 0x6d, 0xeb, 0xc8, 0x38, 0xbb, 0x6a, 0x27,
+          0xdf, 0x2b, 0x9d, 0x6f, 0x11, 0x0c, 0x79, 0x37 },
+        { 0xfe, 0x40, 0x79, 0x8b, 0x8e, 0xb9, 0x37, 0xfd,
+          0x97, 0x76, 0x08, 0x93, 0x05, 0x48, 0xd6, 0xa8,
+          0x94, 0xc2, 0x0b, 0x04, 0xcb, 0xef, 0x7a, 0x42 },
+      },
     },
     { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-",
-     { 0xf7, 0x1c, 0x85, 0x83, 0x90, 0x2a, 0xfb, 0x87,
-       0x9e, 0xdf, 0xe6, 0x10, 0xf8, 0x2c, 0x0d, 0x47,
-       0x86, 0xa3, 0xa5, 0x34, 0x50, 0x44, 0x86, 0xb5 }
+      {
+        { 0xf7, 0x1c, 0x85, 0x83, 0x90, 0x2a, 0xfb, 0x87,
+          0x9e, 0xdf, 0xe6, 0x10, 0xf8, 0x2c, 0x0d, 0x47,
+          0x86, 0xa3, 0xa5, 0x34, 0x50, 0x44, 0x86, 0xb5 },
+        { 0x15, 0x9b, 0x38, 0x0a, 0xb7, 0x92, 0x94, 0xe0,
+          0xda, 0x19, 0xf1, 0x62, 0x82, 0xce, 0x6d, 0xce,
+          0x0f, 0x84, 0xd3, 0x4f, 0x72, 0x9d, 0xbe, 0xa3 },
+      },
     },
     { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-",
-     { 0xc5, 0x40, 0x34, 0xe5, 0xb4, 0x3e, 0xb8, 0x00,
-       0x58, 0x48, 0xa7, 0xe0, 0xae, 0x6a, 0xac, 0x76,
-       0xe4, 0xff, 0x59, 0x0a, 0xe7, 0x15, 0xfd, 0x25 }
+      {
+        { 0xc5, 0x40, 0x34, 0xe5, 0xb4, 0x3e, 0xb8, 0x00,
+          0x58, 0x48, 0xa7, 0xe0, 0xae, 0x6a, 0xac, 0x76,
+          0xe4, 0xff, 0x59, 0x0a, 0xe7, 0x15, 0xfd, 0x25 },
+        { 0x01, 0xef, 0x91, 0x0b, 0x9b, 0xb2, 0xcb, 0x4c,
+          0x6c, 0x47, 0x49, 0x5c, 0x86, 0xb3, 0x64, 0x1a,
+          0xff, 0x14, 0xfb, 0xf7, 0x79, 0x40, 0x9c, 0x0e },
+      },
     },
   };
+  int (*init[2])(hash_state *hash) = { tiger_init, tiger2_init };
 
   int i;
   unsigned char tmp[24];
   hash_state md;
 
   for (i = 0; i < (int)(sizeof(tests) / sizeof(tests[0])); i++) {
-      tiger_init(&md);
+      init[idx](&md);
       tiger_process(&md, (unsigned char *)tests[i].msg, (unsigned long)XSTRLEN(tests[i].msg));
       tiger_done(&md, tmp);
-      if (compare_testvector(tmp, sizeof(tmp), tests[i].hash, sizeof(tests[i].hash), "TIGER", i)) {
+      if (compare_testvector(tmp, sizeof(tmp), tests[i].hash[idx], sizeof(tests[i].hash[idx]), !idx ? "TIGER": "TIGER2", i)) {
           return CRYPT_FAIL_TESTVECTOR;
       }
   }
@@ -793,6 +869,24 @@ int  tiger_test(void)
   #endif
 }
 
+/**
+  Self-test the hash
+  @return CRYPT_OK if successful, CRYPT_NOP if self-tests have been disabled
+*/
+int tiger_test(void)
+{
+   return s_tiger_test(0);
+}
+
+/**
+  Self-test the hash
+  @return CRYPT_OK if successful, CRYPT_NOP if self-tests have been disabled
+*/
+int tiger2_test(void)
+{
+   return s_tiger_test(1);
+}
+
 #endif
 
 /*

+ 1 - 1
src/headers/tomcrypt.h

@@ -28,7 +28,7 @@ extern "C" {
 
 #ifndef TAB_SIZE
 /* descriptor table size */
-#define TAB_SIZE      34
+#define TAB_SIZE      48
 #endif
 
 /* error codes [will be expanded in future releases] */

+ 7 - 2
src/headers/tomcrypt_hash.h

@@ -58,7 +58,7 @@ struct md4_state {
 struct tiger_state {
     ulong64 state[3], length;
     unsigned long curlen, passes;
-    unsigned char buf[64];
+    unsigned char buf[64], pad;
 };
 #endif
 
@@ -444,7 +444,12 @@ int tiger_init_ex(hash_state *md, unsigned long passes);
 int tiger_process(hash_state * md, const unsigned char *in, unsigned long inlen);
 int tiger_done(hash_state * md, unsigned char *out);
 int tiger_test(void);
-extern const struct ltc_hash_descriptor tiger_desc;
+int tiger2_init(hash_state *md);
+int tiger2_init_ex(hash_state *md, unsigned long passes);
+#define tiger2_process(m, i, l) tiger_process(m, i, l)
+#define tiger2_done(m, o)       tiger_done(m, o)
+int tiger2_test(void);
+extern const struct ltc_hash_descriptor tiger_desc, tiger2_desc;
 #endif
 
 #ifdef LTC_RIPEMD128

+ 1 - 0
src/misc/crypt/crypt_register_all_hashes.c

@@ -17,6 +17,7 @@ int register_all_hashes(void)
 {
 #ifdef LTC_TIGER
    REGISTER_HASH(&tiger_desc);
+   REGISTER_HASH(&tiger2_desc);
 #endif
 #ifdef LTC_MD2
    REGISTER_HASH(&md2_desc);

+ 1 - 0
tests/test.c

@@ -185,6 +185,7 @@ static void s_unregister_all(void)
 #endif
 
 #ifdef LTC_TIGER
+  unregister_hash(&tiger2_desc);
   unregister_hash(&tiger_desc);
 #endif
 #ifdef LTC_MD2