From 4b50414b80edcc212d1ec545b8bd047f91e7338b Mon Sep 17 00:00:00 2001 From: Christophe Oosterlynck Date: Thu, 23 Oct 2008 11:54:20 +0200 Subject: [PATCH] RadioGatun: added testvectors tests for radiogatun[32] and radiogatun[64] from http://radiogatun.noekeon.org/ --- src/CryptoPlus/Hash/python_RadioGatun.py | 66 +++++++++++++++++++++++++------- src/CryptoPlus/testvectors.py | 7 ++++ test/test.py | 25 +++++++++++- test/test_doctests.py | 9 ++++- 4 files changed, 91 insertions(+), 16 deletions(-) rewrite src/CryptoPlus/Hash/python_RadioGatun.py (94%) diff --git a/src/CryptoPlus/Hash/python_RadioGatun.py b/src/CryptoPlus/Hash/python_RadioGatun.py dissimilarity index 94% index ac9e8bb..d42857f 100644 --- a/src/CryptoPlus/Hash/python_RadioGatun.py +++ b/src/CryptoPlus/Hash/python_RadioGatun.py @@ -1,13 +1,53 @@ -from pyradiogatun import new - -__all__ = ['new'] - -#def new(wldata=""): -# """Return a new RadioGatun hash object -# -# wl = wordlength (in bits) of the RadioGatun hash method -# between 1 and 64 (default = 64) -# arg = if present, the method call update(arg) is made -# """ -# return pyradiogatun.new(data) - +from pyradiogatun import RadioGatunType + +__all__ = ['new'] + +def new(wl=64,arg=None): + """Return a new RadioGatun hash object + + wl = wordlength (in bits) of the RadioGatun hash method + between 1 and 64 (default = 64) + arg = if present, the method call update(arg) is made + + EXAMPLES: (testvectors from: http://radiogatun.noekeon.org/) + ========== + >>> import python_RadioGatun + + radiogatun[64] + --------------- + >>> hasher = python_RadioGatun.new() + >>> hasher.update('1234567890123456') + >>> hasher.hexdigest() + 'caaec14b5b4a7960d6854709770e3071d635d60224f58aa385867e549ef4cc42' + + >>> hasher = python_RadioGatun.new() + >>> hasher.update('Santa Barbara, California') + >>> hasher.hexdigest() + '0d08daf2354fa95aaa5b6a50f514384ecdd35940252e0631002e600e13cd285f' + + radiogatun[32] + --------------- + >>> hasher = python_RadioGatun.new(32) + >>> hasher.update('1234567890123456') + >>> hasher.hexdigest() + '59612324f3f42d3096e69125d2733b86143ae668ae9ed561ad785e0eac8dba25' + + >>> hasher = python_RadioGatun.new(32) + >>> hasher.update('Santa Barbara, California') + >>> hasher.hexdigest() + '041666388ef9655d48996a66dada1193d6646012a7b25a24fb10e6075cf0fc54' + """ + + crypto = RadioGatunType(wl) + if arg: + crypto.update(arg) + + return crypto + +def _test(): + import doctest + doctest.testmod() + +if __name__ == "__main__": + print "DOCTEST running... no messages = all good" + _test() diff --git a/src/CryptoPlus/testvectors.py b/src/CryptoPlus/testvectors.py index 3efe562..8620afd 100644 --- a/src/CryptoPlus/testvectors.py +++ b/src/CryptoPlus/testvectors.py @@ -207,3 +207,10 @@ dict_twofish_ecb_vk_k256 = {'cip10': '56BA650835E125201400380C4D2D5D99', 'cip11' # SHA-512 # all_zero_messages: each element of the the tuple is the SHA-256 hash of a message consist of an amount of zero bytes equal to the index of the hash in the tuple sha512_all_zero_messages = ('CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E', 'B8244D028981D693AF7B456AF8EFA4CAD63D282E19FF14942C246E50D9351D22704A802A71C3580B6370DE4CEB293C324A8423342557D4E5C38438F0E36910EE', '5EA71DC6D0B4F57BF39AADD07C208C35F06CD2BAC5FDE210397F70DE11D439C62EC1CDF3183758865FD387FCEA0BADA2F6C37A4A17851DD1D78FEFE6F204EE54', '6D518F8B31D1882FEACE10A9215F5D8CF5AFE037652A1D11D9C1408D988C2A4F71A5EDFC85D0712FA3F4E21B2C0A244C8C0D333BAB454311E24067D2A83E5E59', 'EC2D57691D9B2D40182AC565032054B7D784BA96B18BCB5BE0BB4E70E3FB041EFF582C8AF66EE50256539F2181D7F9E53627C0189DA7E75A4D5EF10EA93B20B3', '65FAA9D920E0E9CFF43FC3F30AB02BA2E8CF6F4643B58F7C1E64583FBEC8A268E677B0EC4D54406E748BECB53FDA210F5D4F39CF2A5014B1CA496B0805182649', 'C11D53B386F5EE0C042C9246D4A38B1E032A3BC9EA3F6827A9482D4F31B6E4A1973C97190BDC59D961D5B6F1D5B06C25C4B9E94CA04EAEF395A928FA851493D6', '76AFCA18A9B81FFB967FFCF0460ED221C3605D3820057214D785FA88259BB5CB729576178E6EDB0134F645D2E2E92CBABF1333462F3B9058692C950F51C64A92', '1B7409CCF0D5A34D3A77EAABFA9FE27427655BE9297127EE9522AA1BF4046D4F945983678169CB1A7348EDCAC47EF0D9E2C924130E5BCC5F0D94937852C42F1B', 'A85DE39409374651002C84CBA7C928EB96FB82F88ACC2AEAC392985DEF3E1389346122B82C9C47B743A5C2764BB0E3F5C309AF7202DBE723E69A5193E84FCBC4', '19BD3CBB62B1937957A11CABD0D39860582B6928E77D0E0EA5EE7F3B2F8CACB3DEA8EA0972651ADC3245FD10926F2F31E80377196E4E6C7EE2BD74051E58BCBA', '84BCD394CF4D2F2D59A04391726FE7CC0438664E13907418D69FDCCB0297ED79FA0C6BA2046CDD8F07E13D9C40D5C783F051260DE5FD2902890817E6F74D03FB', '666A9A1A7542E895A9F447D1C3E0FFD679BBF6346E0C43F5C7A733C46F5E56C2F65E69DFD4769A9CAD2B79B31D282F1CA2AA296EF41BD9833947ADA194F46940', 'B4286A45FED95442F6BDC6CA03D29687AED2D25F9AF548F099D05DCDDCCE291182BB900D2519B36A0B708A027204708E3959320A4AA3F4E79C6D94C6932018EB', '7CF95CDE6D8D85F13497DDBABC60A56BCA0ABEABD2BC3E723C0A4A8C0784B14C4EE3317620B79D260D42608C8B907571499187078D14304A5E7A84BC55193CE9', 'DA7852FB298E7456612A129EC356BFB6329720E795BE483F5F07ADAA146EAEC0DB2907902C087456F5F8C85B05995665380CC7E25CEFE1663F6D7158D1191419', '0B6CBAC838DFE7F47EA1BD0DF00EC282FDF45510C92161072CCFB84035390C4DA743D9C3B954EAA1B0F86FC9861B23CC6C8667AB232C11C686432EBB5C8C3F27', '1D1DDBA67C614373460ECDF0185069B4758286990E71266176F7483258D94EA404E3A65D7D8D7BC8516FBE2A9F8D9CE1BF27859EB779285199D69316F96453F3', 'B6814EB4BF32768B13C7A5DC04F7EFB18D5FBB48F561505511567F7EF183A03B776A097AFF26F098703766E1C97940C087E3E0A4F6E2AD60646EC9D3218C6AED', '2D6F4BCE07D729E2385A3B7F3643C4EE8EAA7AB88AEC3486F0DA1D49325047B143867043E2506C1531C96286528BA646EB081BB54C0E3DB403CA82C85340F1B3', 'D296B892B3A7964BD0CC882FC7C0BE948B6BBD8EB1EFF8C13942FCAABF1F38772DD56BA4D8ECD0B626FF5CEF1CD045A1B0A76910396F3C7430B215A85950E9C3', '8EDC8E22D78C7582525BF3A94AAF1EA0286A03DB90A0CB13E136AEF1BF8AA152AE4B8B72CE3940B7CFEE03AA6AB3CFEC42093D3081AD407DB4BDB2076BED7F30', 'A080CD443A054FEDEB357009663F325C075B3AB77182BC6B2369F3E7B03D3446A38DB84A7611FD5D35C4533DFA35F597DA1ADE685EBE94EB77D86A60C3602023', 'D92BA2A6F94BDCD17C2C18C8FD85B93D430F22615D152FDFC25CD58FE489D88036C09E0E664C5F57F9D7098B2818A65CD9260732D298FC3B6B017AB348235EB7', '11BB994B5D2EAB48B18667C7D8943E82C9011CB1D974304B8F2B6247A7E6B7F55CA2F7C62893644C3728D17DAFD74AE3BA46271CF6287BB9E751C779A26FEFC5', 'B7C0D359932E2CC0E85B731A285A66D57972B16893E0426D1605FA727AB698A25C54ABDFB06436885AF68DC5E2C85C0BFA997818EC3258068DEEE038470E249D', 'EB5A2D684D93699169F8243A966EFE83879F4D6434F7C90B4DB7599D123DC15FE92A46BE37BBC3417CBDA85BAB67AA924D75C7A235972C1953A96A78185A4CB1', '4F85061EF6C66BF0E030AF017AF8C7154ED3F7953594AE2CF6F663E8B95BA978A54C171B01F212880E2711C2FD745A12B959ED27E7F6B1847273F70A4010CCDE', '1A74152F13D085BC31C6B98C3A16C6F0C8DE26DBDC395CE8E0F96B2C099B4F2B418607435033D0471CFF047293F1068B4D238BB6BD467D8D82F2577F7A78FE78', '2B9F6D92EFA9E224F293D7004DEF25E45F0E2839277B28AD4CC68CCC67717BA2519B9A732740033B9EBBFA5793D4A94BE333CC6B64A3805610E6F2533E2B92AF', '6BA146A01B3AB7B81E81C9FFB30AC81B1BC891DB1AFCDD4386EB9A5F4A9B02B3FFA6042C914196B0E75EC344B0372CFFD3F73188721343BC458F063342EBB98B', '524A7BD2CB646A7ACFB6F62B4088839BB7697196CF820934061344CF70190A0BD691CB2E0E46B882D854C6C36946AF29B0F00C2ED7802E19424CD474C245E5DD', '5046ADC1DBA838867B2BBBFDD0C3423E58B57970B5267A90F57960924A87F1960A6A85EAA642DAC835424B5D7C8D637C00408C7A73DA672B7F498521420B6DD3', '3D4321D657903224B06051EB2FE69F0E1BD5B1E12F1976F09B39FA5ED2705228B2F384FD98EF1F221081730DA2CE1CB2FBBF4854260DEF49998B429FACECE3BA', 'F5C17634C4ABC78CD6DCE4B04D0E24BB8B7D5CF2D3A7702776B2B221B99AB0D760D119C2D2A7B95D5663A415435D3FABFE492FFEFD7388C8F47D9E160329B18F', '0543CF83E7B8BFB8E8E28515F02B4CFA8F07BE1283A125B06824D4AA9ACAF828F84E802CA41F7961FBFABBBA892F1FC19CE94AE1939CAF906C173347D4BF6396', '85531D8882578FCF9BCD90C2A24C5CA2FD6A49966F0D4A9B47E2017B21ACA0D2C2B66905BD56C7DD40A0014F44997698ED06F03EA247BE353FB1D12EC22CB658', '694A32501AF20C3A846F24207599151C629941747308CF69FC821646F3EEB975BF9D87A0946D8E28F5FEB39BE1255C5F2535AB13F69B49CE5BD44AD068D329D6', '4A2732D16513E4945E3BF846710A4D0F983F5856AD5469EAFA569811204EB8BED2057E4AF73E744EA2ECB1016912558DB129E5FC979A71E077B0E7F460FFDBCA', '986179B274230F2D5CC9F48679F50A0AB55F3D2A8EC9D3B6E78BEC32AA8D3D486F75F804F752768D016821EC933538350BA60895741E5D48F29E7D1B28C1BE29', '1080F871E39CC839E5BCC9F852F9A8F3DDC03CF7E72E9FD1D6E4A71D7E74936F58ADC646C9A9DC382FDE85C5D281C2A44A459CAF6AFA58272D7FA006152E4CB1', '5D8C1AA556FC17D6DC28D618F521AEE37FC0E1826FDBCF8D106E456FC3BCD3C76E712D23FEF3378BD2BE17B80EB5BFD884CCD89B67490B63C7BD118EAAC471D8', '8AC7790C0687F86D2D0CA82CFC9921C8CD6E6F5392594317D5EE6F3661500DE58EBD5EF6300A412C23ED1CD2748C5EADEEB9719F32758590BD4168A0259BBD70', '583B16C7F5D686420BAA33B90D6AF41B43A21ECC5B62B4F7B258FB9FEF4D0C8A1D0DE5B3B60642CD643AEC7266D4F589433B870D7F9E504373B6B8C24A6BE1D0', '63736DBB4E24DA288E552BDB3D8A68728C522DE7E77D06FC5BE87279E43FADFAC4321A2D935C4F9FFA496C901F64AC92FE8F4CA876F9126974E801983C0B1A7B', '4D6154EFBF78352538CDA06E64420FB4C99B4778E8111250F87A9B0C5E07F5FF36FEBCC52F4542C41C5F43B940052704BC825370FF3933D7925459C3FAD1A7AC', '26A4398BFFB0C0AEF9A6EC53CD3367A2D0ABF2F70097F711BBBF1E9E32FD9F1A72121691BB6A39EEB55D596EDD527934E541B4DEFB3B1426B1D1A6429804DC61', '6E6570A7CC802760730DB659A4EDE4221AC2CD944F4B0D97B0A5C8A9F2A072899E3C3FC5DAC336B53F8ACCDE81CBEECA6C5998A1471A2F91EB60E3E13620368D', 'ED68F5F49945DCD0D81DFEBE2F2FD1FCFE016807D5C64EE0377D046EFEB0A7FD9B4B9589B3DF8A14194D51DCFFBD89C8AAA072CEA2AD4E7976BDF53528EA90CC', '989A38778FC961EB2C79E70621EABFB4B22D6537F08A71359B27AF495646E304EE252A523769F66B75BC2FAF546ACB22A71B358B51221174AC0D964DA7A62821', 'E116D2D486BC802E99D5FFE83A666D5E324887A65965C7E0D90B238A4EE1DB97E28F59AED23E6F968868902D762DF06146833BE62064C4A74D7C9384DFB0C7F6', 'EF4F446491BD3788945DE1A8CE4291AB7C2A5013AB4A448C08C19E74F90949FEA8C9F25C59B37860BECFD3EF00F2E6713F15EC8AF9E6AECDF1F8E0214B87424D', 'C331A2A21695186C1EBD2C9FACDC5FA856BEDC757A50936B72577E76147373747D26BACFCE0E165F089E182CC227ADA737A0B42E51D9BDEC16FB5F8CA795B091', '49C014805DE283DDB14F9D15E359CD4A4002A54E9137997D5F22AA0D802E9C42BDCA7D56AE4E164B677E31D87D35884093D58F375D64D18693A00E1AA6E0D598', 'E72F5495AF804A0A93941422C9346AEE488463E1E17AE74E65E85F1BF5B0C40528BC27D15AD831B7B8CB371A84EA9309565536146223EDB0FCEFB65FC0C9122E', '2C2481278F62CD07726383B036775306AE6B693F199A6C700F735FE22507C9084BB91CE5F6458D3C3926514970226C563464723AA99C210B77518830576F8C0B', '2146AA8AB60C48ACFF43AE8C33C5DA4C2586F20A39F8F1308AEFB6F833B758AD7158BD5E9A386E45FEBA446F33855D393857B557FE8BA6FE52364E7A7AF3BE9B', '904F1892EC5C43C557199325FDA79CACAEE2E8F1B4A1D41B85C893D967C3209F0C58081C0C9A6083F85FD4866611DFEB490C11F3163C12F4F0579ADDA2C68100', 'D1ECFD1B7DD8E49BC005DD6549F73117DEC2E0008C3E81934B7B09C5BF922316B7B07F726B4AAA38780B00281AF470607F88B5AB67A17F23FC87E1FC860C011F', '7E0AC842735810E69B321F624906A6D6828AC65C292ED02CBAF60DD895D2CD7022CC8CACD6D4D18A6B589CBD90829E12C0194EAC3930A9F0B18DBEC2EBE419CF', '0A2CBDC97D1B676A5842DCA27A58404AF4AC09CE8BF0D4EE3C356082CA7EE203642B1502910FD30AFBCBB1EAA4264CC8EFF73F1350806A2B82660E3B1E4CB02C', '1D9BEA9A2A4C0C566C91D855CBB389C78AEC76105F79537A8CC9C7A8AC88A673757EA9F46370CA607235873EB2F43EF1C7578E9501F9908F5537055F2CE06528', '23AB3A7BA2CC3E9CBFEE0AC89AD27AD406C32A7F5BE639723BC79621D7782FA210A058FF6FB983EB61D1CF5E12095B6D669E8F852939B491A214F01A407DFB2A', 'A405DEC5087E201200212D9B99C62298C3B126681B5D607F39E9356BCFBF5FE618C53D5C31D31903D5A1D76F7EF8225D8C6DCA92DF040C6CC7CA3393F25131DC', '7BE9FDA48F4179E611C698A73CFF09FAF72869431EFEE6EAAD14DE0CB44BBF66503F752B7A8EB17083355F3CE6EB7D2806F236B25AF96A24E22B887405C20081', '19DC6AE12DE08B21B36C1EC7F353CE9E7CEF73FA4D1354C436234167F0847BC9E2B85E2F36208F773EF324E2D79E6AF1BECA4470E44B8672B47D077EFE33A1F8', '6C0E9557CF0FADF4DB740E203DF3D499F7247A472D9132B7E474420B142AE83E6CAB592F93AA096D51C04F732098FA7355622E955B459F1C6D87BAE8ABC73264', 'DD0A0B9213182C99444BB7FB2EBA5B28F521A768880BE2539706730693ED9EA462FEB4FD46B1DEB5E7D4F31A284F2803B476209B451C9DC4D6ED056D71736D64', '038EBCC2B60D7BEFE506172B841FE225D71849AF86F408EAEBB3B9D7C03D6CF0C6CC30203E7BB7B39BE6D5D0E6613689349C245B71C5F16FF8083DBE2EBF680D', 'E0841DE72B39EA1EBFA8C5FAC01AC64A1A48AF40423FABBBA9FC18BA31B8C412D73F882EF45BAA32ABD47C2E9F27A837FE72C95AFDDE0CA6754C987BD1D88918', '3A4AC70AEAA4C39FA67D80018EF7EB6509DF394B801A2B4B7421420DFA75CDA9746786391DEC6A9E7741394F65E400D92860E4195D8A6FA940F30AB962B75BDF', 'E1403027C2F55D2DC4972B35B16E9401D0A9B5E055839E650B242FB12051051F72EF760214BF436BA9DD2B0D67DAA2D55A783E782717D53966465B8C291ACBFC', '5EC97CC048A3CB5DA03093BC6D2B63CF5252ABAB6A72B24214FF885C062F58DC43C6CC05C0DC428A1A4E4B95EA84140A8883D81795416281B4AC4FD52290E0A1', 'E64C06BB828A1E41E494D4A153BA411D5B6F33B46DD0008C1E793EF0B6B12E9312CCCC321BC2161EC859BBCBB79B874DB8793DEA1B0EA1414E13185BFA7FF178', '6D55A0D1C6D689E702EC802DBA0388E19D898D9693A4CEBA31F000A4B447A50A2694C452991CC3B64F4C241518B66D6B0C70E2BE88075BC3C207CD88B5862BBF', 'EE5D694D66BB3EE0D55129C96C83116E7AF28B6838854D110CAFE9DCB530FC05EF8B97469D7FE0C864481298FBA5008C97EB2B503E90B58B1E33F8856CB132D2', '1E31651EDC2568B2FDCB50CFF0E8F2C53E0A9A76F32E5E38C023348C3733CC6D7DEA3E88DD2BA743CBBA9E133207DD57EBA95722A0197C3C23DD37E8D3BFFD1E', '6DB5955477A9BB5386C1AF03DF526496F9E64533E6C3071C8E5C44062541E91E9BB39096DA947A91BDFA5E7DE53C1E047DCF427C1DFDE94554D7458F8F0862EA', '05660148AFDDF48072B43854BDDB1D1C0571EDD3A4387262A487AD18D72E238725F8599D5B298DEC375FB463074A9F77AD93E7022B001C62DC94152E6DB3408F', 'DF452E0838104CB82540EFA412A70C507E1115EEACFE8A68D32B98D30CB396B25013F24376EC5324D9B12219AAD6FF931791E8AAF36E3B4074139053E53FD974', 'B6B4C190CCD537F7B879658FB3AB39A81347E1ECB68246DAB95648560587B8437ECB02B7825F46A9141059AE61887EC7B011C1314CBCC5741C9FAE953EAA02EC', '90C6DDA39740F839FB470F838C35D5F264A0A8664C57CBC66C431082710EE633CA4672B3B64902E7BBB7A61E9B9F4EEA251A7D8B6D5126DE6D73D3480FDEDE5D', '25581416BCC99A8C590FE9F215DEBEE0E172070961C7130EB9B3923E6D2F06FF2947657F678F0EE2F34A7E3C9F9E395D6CB0E7CE6EF235BA056F32F6815E3124', 'DF26CA83E1816B3283FE2412DBF69686EC221A1933FC15060AFAC985537CE79420AD1591CE18CF6FDE66B2295AABBDD2A87C31772E4E23299078D18D48C3FF16', '6B83E8FC9A2AD34694319EFF2972435D2FACFFB23F6E5D6B2EB7381BD9012A489912C56AB6DFCE07CA387B777496F612E63842AA294A208F5360077F37E87B1D', 'D4E72F43C75DE83DEB0526233423726503354D7112618B44C94E695D159A02B6DA4823A2C9A2BE8CF71D2C7E42108D0DB7EDBB54A640579F853E6D110E7599ED', '6A9746BEF52DCD5CBE2E455C808ED0025187E60BA58E2AB901EE5443323B652B45262AC7DFC37D0D21B81C15DFC5FA98F1C43BDC05F6AFFE70CEFF01EFFCFBA6', 'E74AFF12F2C3C6569C4BC031E6D65A3EA2E6857982E69AB07D81E46AFABB368B61F0C4262DB1AB445CD7D9C7B384E7561D29BFE729CBE6F3DB1FD5C04A1305D5', 'F58CC598FDEA5E45261B678570F64E75A64F9FAA7E268015A128EDEAF1B717EE583B3E2F6690AE31DCB515A95234D3D371148FBC14C26ECFA74E6A51F3D6E5F9', 'BF0772423BDC11A4029439ACEF8922C6C541519CE98BCE97681D1A1DA32BBF3A73F506138D494D9CC860B6AFB3584094565DB7683F6B2A2CB30E3E94430D1933', '6A7C465BC9531B9E1D75DF0E167CFA848D98EC994C43D68E651E6D782FC2C81DEC703033A44C267822BCB6A1EF31A1364AB57D29B99D1A3A3CA9E5E8D0CDFE5F', 'C4E61253D52C63B227943F42691201BF61321F7033C08888CA14D13C2587A3D97D40849F946E407DF3A569AEEE4F2AAA7EE44BB63B4D17694D31106E880F53FA', 'FC4A6C0BBF6E9F20FE5EBC966EC7B7A56102204F8CEE56799A220BB94A44DC51563F04E2975DD425F3637B8CF722743C7C907ACFDF38F95D7D36BA80C15E4917', 'BDD9BFE471648E8A116AB65D97E56F38B2D7516E0BA522DE25B284C7B29D089DC039BB653F1B08E6EA0792150CAD576ADC48890DD6956A6AA29E5175CC5E2F0A', '18EDFB05E5102DB1660D2CC6CE2078E8506BFE56BCDCAD81880D26C7F344ACE11EE77673E0415CF4EC00E14893D0447957D73F977E98CEB101A76EEF1C6565B4', '47E7E7C96BDA3D2385E50E15C6357D16C5872049F61EE62A033C341CDEE0DFAF905BD1F9FA24D1C53132159621D21D1774C2BBBF33F40E0386C4B80F3B12ED3D', 'E866B15DA9E5B18D4B3BDE250FC08A208399440F37471313C5B4006E4151B0F4464B2CD7246899935D58660C0749CD11570BB8240760A6E46BB175BE18CDAFFE', '3C01530D43156962F4A2305472EB5DC77464AE3BD88F932A2F55E72355C4C1DB1DF050C94951A1375ED6F69BBC4102EF6EA45574F4CA293123685564A1334596', '4A84147472604753A90ECB5CDC9614194FB947429B53EF773890B535E18223D04817F5E38C7064DE44F6DD0C84B4677A79B97F819CE111131BF816D11A92E18E', '6EDF7FF286DC9038E790E27B600ABADECCF74542CE91196B8EE6C4AC9308529CBD7DC65C82F82021F01863E2C08F846621E1930768E6F3590B2315C72298FBA1', 'F206F4F0EF09B90837F1D15A07C6CF4BD291D817663F9F85A0FC4341EC19910719AD571B6102A366AE848CD0F187D0DAEF912E05898B82C35213CD49A45EE8E0', '2DB5F3B0000212518614C74C73DCA3205CDA5751AA2504AD9BF9B98BE46E98143C064980DCE9A8A6372305840946717C38E244D9E1F2ECBDFF683FC1F0A8FBB5', '98E04E394B9BD572C13FCF46A965BEA43C2FC333E582AA57D5101587D194AD9AD68E43D6790A6AAE89DD9D32A68F699B9C6A0F20835CB78976D9961EA4DAFF05', '3EEABFB9888432E76A4AC77ABD24F85A65C6715B7C28880D8EBB2442B43CA10397533698450F2E4DC5A854880981E5609425C785E3B2BA14E2740DC600947857', 'FF61EBF3C2BCF802F3A3405E8BFC9CF78A41E45963CBD8A9CB65D1179DFBF7FB18F89C9F7A70A9BEEB88ADB3F9C122B0E8B7BE9E967B30807EF535D7C2830E65', 'A6AF7912278D814025FD2825A16943917461C881A8F2FF1972497A3A9F6998E349C5E375D69BC8697AE7197054083E0988198C4FC57CAB3184F98F82A07A1A1D', 'D9AD640884F40495B4255BD221F0902FF64F84E3136053D03ABEE7CA417D32A1D72F24A75CB67BC50629E102BDB2F81C0BB087E0EB5CB82FA3D67C4FA5D92450', '49EE1BFCDB996DA7444CC1EF41D1502790062E4CD54F0B22B88977ADA4476690E774B649794FE023B5DB35D6F8DC164215B946B2121912FF586A759463CB05F6', 'A3E171C1C71E0C8FB05DF6D783F5AC9C7CE0F9C3BBE653952EA048ADCE025192D5EBA4ED8CC7800BD52AFD265256ECEA887EA63725C49CF563455FF321D45E76', '169E21AD25319E522E1A1CDFE34F829B8CD9BCE19406B50ED22A1A75C388B432BDEBE050B155980E76D6B949786B2C89D1E2C5AB66D83D28EEBC14EE8F44A49D', '1C5C8D28E1B0088005604E2D0325A521449955F05F8544DA497C875377E9DC73E4550F04DBB8A2D370AF70036522B43FCEC2B78B5CD01875A384A40EAAD519FD', '77DDD3A542E530FD047B8977C657BA6CE72F1492E360B2B2212CD264E75EC03882E4FF0525517AB4207D14C70C2259BA88D4D335EE0E7E20543D22102AB1788C', '2BE2E788C8A8ADEAA9C89A7F78904CACEA6E39297D75E0573A73C756234534D6627AB4156B48A6657B29AB8BEB73334040AD39EAD81446BB09C70704EC707952', '0E67910BCF0F9CCDE5464C63B9C850A12A759227D16B040D98986D54253F9F34322318E56B8FEB86C5FB2270ED87F31252F7F68493EE759743909BD75E4BB544', 'E94480D20B6665599C4ED1BC3FC6949C9BE332FD91A14CEF14B3E263AB1000666E706B51869BC93B4F479BB6389351674E707E79562020510C1B6DFE4B90CC51', '39C8EF9B28A0A103843A97F402AE3C35EB25425147375B0D5461DD327EA3A7BF7131F1D0BC656E51C0DB203B111C63097DC5367F0647FAE10D729822F59AB80C', '48524FF46D1C5BF4C6A5560A2E13AAE75B8E096CB912A7A0AA2D5D59B8667C0889453E34070D74FA6CE6E8294E3E703C4AA3B58B351086449DE5FA7F1D07D8EF', '0BB9C76171FFA588DF5E07525C8CC0AFC532CEC39F97BB529AA07FCD3FA888D3533582FD5A2BA6F93925D90FAC300CE91ADCE0783B79CCEF2F52FD279626F482', '8488DEA55B0F962C4F16715AD3195FE4EF6ED61D4EC95BBDDC1F1A9ABBC3C1AEF167F960807BEF59DEC11C4CB498DF05440CEEB37174F0DDD43D567B504D55AD', 'C2E210F2674A648D9B58683E651F8FCA5CE4270C0489773D8E4FFAECD46B22B1D5273697F45275A7C441C9E4CA91A39BDB3E3B7EB74CBDB85266EEF8F30AC860', 'C106C47AD6EB79CD2290681CB04CB183EFFBD0B49402151385B2D07BE966E2D50BC9DB78E00BF30BB567CCDD3A1C7847260C94173BA215A0FEABB0EDEB643FF0', 'BEF13FA741340CB7C1174406F76F9C65445C76EC091E47DAA8537B5F769AD2231347C61144CE8F6E4CB16FD5CD27BB169930C3F8C3B5B9E24E6609491FBBD4E3', '4F3F095D015BE4A7A7CC0B8C04DA4AA09E74351E3A97651F744C23716EBD9B3E822E5077A01BAA5CC0ED45B9249E88AB343D4333539DF21ED229DA6F4A514E0F', 'BD0C9C169AFB486930933E393F0839380B97E5F0AC88892C7D36B2CCB2E0A31C9B7B8F09B2D9A664E9BD93785E0050959C54CB064050B8DAEB4D1DB1CBFEFDE2', 'BB78C9783303A24DBE8E5FCB112D9A4872D8521F30662770C6A4182CC6FD78BA865C467A5AE3D4D6348A5011AEB6DF95B46B6C99CF2BCED2BEEFEABA04EE458C', 'E46B5C1865B53513BB10BE9E3A2C2A54EE9E88F83E8802E85E728A2364AB649ECD4AF605B41D7583688F8A78D1B49E36F1EF5B8824AB89885578EED8EBDBFD15', 'D4BF12247A7396FFC0B16BD3B0094EB7CD3CD8558D961F77D9F1898DCF04E8559715F78CF6D80579C8DC2318631D1954A8A0599269AC5A4EA9B1331A3AB9A487', '876FEE26A8DC66D652341B4951D4A96F4F2652803231ED5EC625BBE0D5C49EA70941F5299D775A1ACE2291FC33B26016F73C81ACDE83B3C495BE55B6916890A1') + +# RadioGatun +# from: http://radiogatun.noekeon.org/ +# messages are raw string, hashes are in hex notation +radiogatun32 = {'hash34': '5DD047238DD574B45621DFEDAFADD6BCB4594B6E0551E78CA2B62BCBD975D429', 'msg35': 'August 24-25, 2006', 'hash33': '4884DACCBDA87F1E02814152F0224DAB291B49FFD86516A30EA6C9D546730ECF', 'msg14': '12345', 'msg31': '1234567890123456789012', 'hash18': 'D77629174F56D8451F73CBE80EC7A20EF2DD65C46A1480CD004CBAA96F3FA1FD', 'hash29': '8BD3D5953ED234F7A0051A993776630A9722978D06240EECC66E05A0B2CB60C7', 'msg19': '1234567890', 'hash21': '15EDA58156CA398AF49CBE9C9E62BF036A66B303ACB0043FB57ECADF9E9C8EDA', 'hash32': '4CAE588C3F3C08DF85564379332309EA5F73A51405CD4408C9DBFFF1615EF297', 'hash15': '862B75D2E8E7F08F93812168502AF97BCE530C66688D4372A08EEA0951B5024A', 'hash14': 'B333C8413087FA49882BBD4F76A9223C4AA633A252514852C3F7C0C5F8F4D87B', 'hash17': 'E69E29BA139C20846116D8AD406E6197F1701D8243CC53BB86F2B72C62320A39', 'hash16': '90B7061A244CE7FBA80F9813787CB90EC3FBB3398AEE740AF1C0D44BC5282B73', 'hash11': 'A7FDB34FD5D85D564A62C0B1B1B60CFA3D7A0C778231C95CDCD9BD293CCA16C6', 'hash10': 'D4D08F6612F8EB58A855B2F5AABFC504E2972BA829DA94EDD960193D18BAD8D1', 'hash13': '9EBDD24F469993796C4AAC6A821735A65A3CDEF8A359944CE71F34E7A08E1182', 'hash12': '57364D849286C7B3E98F3FC898094F7DC1675BA881A620B75D70F39631A4AA5B', 'hash37': '4311D3CDC46EFE38FDB5C3023A160C3069B26A2AF0CE0CCAAFFA3F3C61629AD6', 'hash36': '041666388EF9655D48996A66DADA1193D6646012A7B25A24FB10E6075CF0FC54', 'hash35': '277C1598E324185706F8F3EA72B7DC8FBE361EA02DBB0A35AFC7F0E088ACF2F5', 'msg30': '123456789012345678901', 'hash19': '4F88759143CD9D11F6DE8DA4D3724C36C745223A5CFB7AD0E74DA87C80A43326', 'msg15': '123456', 'hash31': 'F769558AF4FB0ACB6643B893D3595C2E5B110C60256D1CEB672EB33999EF0887', 'hash30': '381957046BEC1DFC08EAA0B2818D9FA07BCF78386C43AA41C069B5CF33E4F9AB', 'msg34': 'SECOND CRYPTOGRAPHIC HASH WORKSHOP', 'msg16': '1234567', 'msg28': '1234567890123456789', 'msg29': '12345678901234567890', 'msg24': '123456789012345', 'msg11': '12', 'msg26': '12345678901234567', 'msg27': '123456789012345678', 'msg20': '12345678901', 'msg21': '123456789012', 'msg22': '1234567890123', 'msg10': '9', 'msg5': '4', 'msg4': '3', 'msg7': '6', 'msg6': '5', 'msg1': '0', 'msg0': '', 'msg3': '2', 'msg2': '1', 'msg37': 'In response to the SHA-1 vulnerability that was announced in Feb. 2005, NIST held a Cryptographic Hash Workshop on Oct. 31-Nov. 1, 2005 to solicit public input on its cryptographic hash function policy and standards. NIST continues to recommend a transition from SHA-1 to the larger approved hash functions (SHA-224, SHA-256, SHA-384, and SHA-512). In response to the workshop, NIST has also decided that it would be prudent in the long-term to develop an additional hash function through a public competition, similar to the development process for the block cipher in the Advanced Encryption Standard (AES).', 'msg12': '123', 'msg9': '8', 'msg8': '7', 'msg32': '12345678901234567890123', 'msg33': '123456789012345678901234', 'msg25': '1234567890123456', 'hash20': '5FC6C16C29CDD2EF78EE4F3C864C1942A052C110FD5A9711FE9BCF953A2D2D5B', 'msg13': '1234', 'hash22': '99F13E01DBF89E6BBF60C87E99F4F18C851D3385D9B5A1678C705E8F31F70B84', 'hash23': '0AC434523B00F5C3D1D2AEEDBAE851D3EEAF3D76963CFD70A8B1D875638C8CD4', 'hash24': '0EC6EAE7879543772B64F320BC5056C81ACE91AEA20F360CEFA57272E2C07197', 'hash25': '59612324F3F42D3096E69125D2733B86143AE668AE9ED561AD785E0EAC8DBA25', 'hash26': 'D52161B6BB583955B1ABB5781D2044BE8F4174904241533973C66B87880EDB53', 'hash27': 'E42EA26B8B696541CFEA557C47886ED41440A04EF8CCC055CEB6583F6ACF6015', 'hash28': '687BDEC54F854303E48300A52C9099E3153F481CE34E12CDC178D841C0926B51', 'msg17': '12345678', 'msg36': 'Santa Barbara, California', 'msg18': '123456789', 'hash5': '2D438E83A3D99929F44A1B0AB5A994EB4ABDFE11F9E72D62DE925BF120CAFCCD', 'hash4': 'E1D20A1B67028A7C102CF77B444E0F4D8489F95506C76E4F27CE43D4958810AD', 'hash7': '904573304A5BC7BA040F8DEF9EECA4138F7DDD7DA30E4B8FB97B7F6E06076BED', 'hash6': '8C3C9529C6CC4D266760670F38C7470D6ABA5A0905170A3692AE87E4ABF291FB', 'hash1': 'AF0D3F51B98E90EEEBAE86DD0B304A4003AC5F755FA2CAC2B6866A0A91C5C752', 'hash0': 'F30028B54AFAB6B3E55355D277711109A19BEDA7091067E9A492FB5ED9F20117', 'hash3': '070182313AB302CFC82459786F4A30EC66260C6676495CE86E72B3BE7C60F7AD', 'hash2': '896C580EF77A68C36B040DCD5A650C09B8B5D915ECE298AD0210A21ED5811C95', 'msg23': '12345678901234', 'hash9': '54E7013E72D94B31324D4878F91AE19A7085F20EFE9DAAB96A1FE559C78AE825', 'hash8': 'E7195ED9189C0169C90AFFEEFCF8810627DB1607F394FB13C7B43D06C74B1D4B'} +radiogatun64 = {'hash34': '4B9A38E4A968A2096F70A896DCAD202BC1D2D29B4470227F739BEA973233B43F', 'msg35': 'August 24-25, 2006', 'hash33': 'EE7A689B4548FA98D83AB6B71432D4327AC172E3AD1302B0D5235D675B8D4952', 'msg14': '12345', 'msg31': '1234567890123456789012', 'hash18': '76A565017A42B258F5C8C9D2D9FD4C7347947A659ED142FF61C1BEA592F103C5', 'hash29': '073ED06E210785942E619BA6BE2C00D4E8A8C991AAD67FEA3ED5E75A3A1CA534', 'msg19': '1234567890', 'hash21': '54877BD9BA9DCC929B152EFD72F46AFC6A772A84FCEDA7ED85398932B185D5A4', 'hash32': '540D61172733EF9A691C487E3739B49DF4406861D0F0AA8C373A56D5A81CBAC9', 'hash15': '1A41026D8183CB13B39819ACD5281617A25BE557C9C09E939F07EEC72347CE34', 'hash14': 'CE8CEEA40E4FDA63EB2453E2CFFF0C9C68E969BFF13757987B0FF9B242394FC7', 'hash17': '4C92EE54656958C6017A7C780E569695F6C354510537AC87206EE887B1E8F258', 'hash16': '89C6A058B9E8A2C7176A429E941BBEE5F214A9B0603420562991CBF2751CB817', 'hash11': 'BA12168F91F5C124F8AE3908815DC7F3FBF6BCF6E3C66BB8507B16B9B269541E', 'hash10': 'E2F59B35CB58EFE2200D9544A0BA5FC0659F6019D3EDD4E94A1BB0363166AFD9', 'hash13': '733E2B49A53FB166B6F3BD341919578B8C931880F8B8BD7C0FBBEE1A538E7307', 'hash12': '9719B972D31893EA2B24BD4AC88ACBA598AEFE75DD596692BDA08414080778C4', 'hash37': '2C9EC1EFC5D2FEEFFC2817CD571F394328111DB8068FC79E2FB84A42416BF5D3', 'hash36': '0D08DAF2354FA95AAA5B6A50F514384ECDD35940252E0631002E600E13CD285F', 'hash35': '0950DF1B217D3079CAF7D2F5A7F91D3FEBF1A41C4887297B828E36FEB1998534', 'msg30': '123456789012345678901', 'hash19': '93B2D9E81645DDCD588EDCB8EB0E18160C2CBF891760CB831D88C3D81F218061', 'msg15': '123456', 'hash31': '20E64EC450D4FFE67138850E0F4AFE9C7805AB0F1E0B191DF6E57A5555DA6676', 'hash30': '4B71AF0C9D20CF9E827598592835B58235001D65BAA3779136BC45C8C7B26859', 'msg34': 'SECOND CRYPTOGRAPHIC HASH WORKSHOP', 'msg16': '1234567', 'msg28': '1234567890123456789', 'msg29': '12345678901234567890', 'msg24': '123456789012345', 'msg11': '12', 'msg26': '12345678901234567', 'msg27': '123456789012345678', 'msg20': '12345678901', 'msg21': '123456789012', 'msg22': '1234567890123', 'msg10': '9', 'msg5': '4', 'msg4': '3', 'msg7': '6', 'msg6': '5', 'msg1': '0', 'msg0': '', 'msg3': '2', 'msg2': '1', 'msg37': 'In response to the SHA-1 vulnerability that was announced in Feb. 2005, NIST held a Cryptographic Hash Workshop on Oct. 31-Nov. 1, 2005 to solicit public input on its cryptographic hash function policy and standards. NIST continues to recommend a transition from SHA-1 to the larger approved hash functions (SHA-224, SHA-256, SHA-384, and SHA-512). In response to the workshop, NIST has also decided that it would be prudent in the long-term to develop an additional hash function through a public competition, similar to the development process for the block cipher in the Advanced Encryption Standard (AES).', 'msg12': '123', 'msg9': '8', 'msg8': '7', 'msg32': '12345678901234567890123', 'msg33': '123456789012345678901234', 'msg25': '1234567890123456', 'hash20': '09C7288E06FC1040C330962737E95887DC6D8BC2985D04A5CAC122BE2689F26C', 'msg13': '1234', 'hash22': '8DA9DC13C922E28DE1D2AC136904B18B8CA5C9332C89982D9FAED2B00C1D0AF9', 'hash23': '64421D3084602E7388679364D5767AA5381F54ABD92CDBA4F05DAD06227F55AF', 'hash24': 'FDE56263C4A79F19A7EB663D1BB427243A6AD3522EC31FC00D81775EB6891978', 'hash25': 'CAAEC14B5B4A7960D6854709770E3071D635D60224F58AA385867E549EF4CC42', 'hash26': 'A0C5AC2493B71A5E9A4D41DD1854DAC0383193BAE0B5E7CA035F86AD052F46AA', 'hash27': '7898EE3F72838E94336E3DE2AFB4C9A7881D395B21ED74473186D919C78A8B88', 'hash28': 'F0D6C1B2EFC3D88C52B30DDF46920A22008F07FC4FFC9600FDDF1650FAF3FCB9', 'msg17': '12345678', 'msg36': 'Santa Barbara, California', 'msg18': '123456789', 'hash5': '05B7B2D2F2C0D48415E292325AD0901009F12EF1F9581A7A19C422795CF36459', 'hash4': '449B69EF4ACA0D081B6B2CE9C8BD22BE30BC1CAA130FB0714C8621E42FFA631D', 'hash7': 'ED37ECED317B65B676F72F88CEA918B9B878C3F245E79D0C2D35D86C4DEE5A8F', 'hash6': '95A02B2899296E69988B11D47B4B9FBA51AF22A09A854523924E8DFFE0EC8922', 'hash1': '5DB6B188AFEF88AD8D2E426105ACFFCD42EE439CC26275D11F87B530DE94D066', 'hash0': '64A9A7FA139905B57BDAB35D33AA216370D5EAE13E77BFCDD85513408311A584', 'hash3': '66E36CE1926EC1F7457B670D7B68BD819B2D546A75E5CDFD2691CB5F3DC2818A', 'hash2': '3A3D7A7B79D1EC5A4DB4DC032B685574F7CA7517105F1634B61A34AA2575FCD3', 'msg23': '12345678901234', 'hash9': '7338658BFD49605F1EBB186E7E1EC3E75CF672655BCCE499CB8B3952B448B0B4', 'hash8': '8862FC05C7E23677904020462809A1F2784E117C349AD1D0D8CB0F433021D75C'} + diff --git a/test/test.py b/test/test.py index d3a0977..40397c1 100644 --- a/test/test.py +++ b/test/test.py @@ -7,7 +7,9 @@ from CryptoPlus.testvectors import dict_cmac_aes128,dict_cmac_aes192,dict_cmac_a from CryptoPlus.testvectors import dict_des,dict_tdes2,dict_tdes3 from CryptoPlus.testvectors import dict_serpent128,dict_serpent192,dict_serpent256 from CryptoPlus.testvectors import dict_xts_aes -from CryptoPlus.testvectors import sha512_all_zero_messages +from CryptoPlus.testvectors import sha512_all_zero_messages, radiogatun32, radiogatun64 + +## HASHING # SHA-512 print "SHA-512" @@ -20,6 +22,27 @@ for i in range(0,len(sha512_all_zero_messages)): if hash <> hasher.hexdigest().upper(): print 'ERROR! SHA-512 in %i'%i +# RadioGatun +print "RadioGatun" + +from CryptoPlus.Hash import python_RadioGatun + +for i in range(0,len(radiogatun32)/2): + msg = radiogatun32["msg%i"%i] + hash = radiogatun32["hash%i"%i] + hasher = python_RadioGatun.new(32,msg) + if hash <> hasher.hexdigest().upper(): + print 'ERROR! RadioGatun[32] in %i'%i + +for i in range(0,len(radiogatun64)/2): + msg = radiogatun64["msg%i"%i] + hash = radiogatun64["hash%i"%i] + hasher = python_RadioGatun.new(64,msg) + if hash <> hasher.hexdigest().upper(): + print 'ERROR! RadioGatun[64] in %i'%i + +## CIPHERS + # PRESENT print "PRESENT" diff --git a/test/test_doctests.py b/test/test_doctests.py index e311921..ee1edee 100644 --- a/test/test_doctests.py +++ b/test/test_doctests.py @@ -5,8 +5,11 @@ import doctest from pkg_resources import require require("CryptoPlus>=1.0") #import CryptoPlus.Cipher.python_AES -from CryptoPlus.Cipher import python_AES, AES, python_DES, DES, python_DES3, DES3, python_Blowfish, Blowfish, python_Twofish, python_Serpent, python_Rijndael, CAST, ARC2, python_PRESENT +from CryptoPlus.Cipher import python_AES, AES, python_DES, DES, python_DES3,\ + DES3, python_Blowfish, Blowfish, python_Twofish, python_Serpent,\ + python_Rijndael, CAST, ARC2, python_PRESENT from CryptoPlus.Util import padding +from CryptoPlus.Hash import python_RadioGatun try: from CryptoPlus.Cipher import IDEA from CryptoPlus.Cipher import RC5 @@ -16,7 +19,9 @@ except ImportError: suite = unittest.TestSuite() #for mod in (CryptoPlus.Cipher.python_AES,CryptoPlus.Cipher.python_AES): -for mod in python_AES, AES, python_DES, DES, python_DES3, DES3, python_Blowfish, Blowfish, python_Twofish, python_Serpent, python_Rijndael, CAST, ARC2, python_PRESENT, padding: +for mod in python_AES, AES, python_DES, DES, python_DES3, DES3, python_Blowfish,\ + Blowfish, python_Twofish, python_Serpent, python_Rijndael, CAST, ARC2,\ + python_PRESENT, padding, python_RadioGatun: suite.addTest(doctest.DocTestSuite(mod)) if not import_error: suite.addTest(doctest.DocTestSuite(IDEA)) -- 2.11.4.GIT