aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/data/mac
diff options
context:
space:
mode:
authorlloyd <[email protected]>2014-01-10 00:08:13 +0000
committerlloyd <[email protected]>2014-01-10 00:08:13 +0000
commit57789bdfc55061002b2727d0b32587612829a37c (patch)
tree99f36631b4ec50c5187a1b0a7c256b99182373ad /src/tests/data/mac
parent94968c917407a63d888fd3eb4d02491f60de6ebc (diff)
Split up test vectors into per-algo files and app into botan-test for
the tests and botan for everything else.
Diffstat (limited to 'src/tests/data/mac')
-rw-r--r--src/tests/data/mac/cbcmac.vec326
-rw-r--r--src/tests/data/mac/cmac.vec147
-rw-r--r--src/tests/data/mac/hmac.vec122
-rw-r--r--src/tests/data/mac/ssl3mac.vec26
-rw-r--r--src/tests/data/mac/x919_mac.vec24
5 files changed, 645 insertions, 0 deletions
diff --git a/src/tests/data/mac/cbcmac.vec b/src/tests/data/mac/cbcmac.vec
new file mode 100644
index 000000000..688cac1a5
--- /dev/null
+++ b/src/tests/data/mac/cbcmac.vec
@@ -0,0 +1,326 @@
+
+[CBC-MAC(DES)]
+Key = 0123456789ABCDEF
+In = 37363534333231204E6F77206973207468652074696D6520666F7220
+Out = F1D30F6849312CA4
+
+Key = 67C6697351FF4AEC
+In =
+Out = 0000000000000000
+
+Key = CDBAABF2FBE3467C
+In = 29
+Out = 616FE88F809D55FE
+
+Key = F81BE8E78D765A2E
+In = C254
+Out = AED0202A4D19E0E1
+
+Key = C99A66320DB73158
+In = 63339F
+Out = 69E2BBE362FFA373
+
+Key = 051758E95ED4ABB2
+In = A35A255D
+Out = 99AF085AE0872883
+
+Key = 110E827441213DDC
+In = CDC69BB454
+Out = 346750C009F85AE7
+
+Key = E1FC673E017E97EA
+In = 8770E93EA141
+Out = 457FA6D39A704CDB
+
+Key = ECB03BFB32AF3C54
+In = DC6B968F385C2A
+Out = 725FFF0F41477E42
+
+Key = FBFAAA3AFB29D1E6
+In = EC18DB5C021AFE43
+Out = 1D119FAEB0BB44C3
+
+Key = F95CBBA8990F95B1
+In = 053C7C9475D8BE6189
+Out = E4DD5474534FE9DA
+
+Key = E5CA0BCBD0484764
+In = EBF1B305EFF700E9A13A
+Out = BEE63E65CAEFA450
+
+Key = 5AC55E4B79633B70
+In = BD1F231EA81C7B64C51473
+Out = 495FF947F6665F45
+
+Key = AF3B33CDE3504847
+In = 6424119E09DCAAD4ACF21B10
+Out = 53C806C8B69CF03C
+
+Key = 1C7F23F829F8A41B
+In = 155CBB6F2219BA9B7DF50BE11A
+Out = 2CFD97F2BD38C7A0
+
+Key = 5F4E77FACB6C05AC
+In = 13B5CA4EE8983238E0794D3D34BC
+Out = A83C88744DF51267
+
+Key = 3694B3AFE2F0E49E
+In = 86212BAA1A55A2BE70B5733B045CD3
+Out = 112C46B74BD7D1EC
+
+Key = 9A0ABCD50E18A844
+In = 4F321549FD824EA90870D4B28A295448
+Out = F12831C24A551F5C
+
+Key = 847F2DADD47647DE
+In = AC5BF38E4CD72D9B0942E506C433AFCDA3
+Out = 0AB4EC81A81F5C6C
+
+Key = B920BA86C33E05F1
+In = 321CEC4AC430F62023856CFBB20704F4EC0B
+Out = B2D3297BE75E9505
+
+Key = F6059401BEB4BC44
+In = ECD96733B79950A3E314D3D934F75EA0F210A8
+Out = 0AA5F1B82E138AB3
+
+Key = 3A94FB3199903257
+In = 78FA4969E623D01ADA696A7E4C7E5125B3488453
+Out = 7143592230891CC9
+
+Key = 54D835E8D4668264
+In = 44EE9BBCE9E525CF08F5E9E25E5360AAD2B2D085FA
+Out = 90E6F543EDA1AC82
+
+Key = 51ADAC869580EC17
+In = 98D9A8877565705A8A3F62802944DE7CA5894E5759D3
+Out = 491310A9E2B8B18C
+
+Key = B4692F3AFFAF2716
+In = E485F18C0C66F17CC07CBB22FCE466DA610B63AF62BC83
+Out = 302E436ABB2B6193
+
+Key = ED9612EC453902D8
+In = 93AC071FB86D11342D8DEF4F89D4B66335C1C7E4248367D8
+Out = 1ED636A10A187609
+
+Key = 7AA6F2B4A8CA99B2
+In = E50AF89D7709D1A596C1F41F95AA82CA6C49AE90CD1668BAAC
+Out = 2A02740B45449296
+
+Key = 0022569AD418D1FE
+In = C2372ACB08CF61C9C3805E6E0328DA4CD76A19EDD2D3994C798B
+Out = CEA8016EAE33A92B
+
+Key = 7281CD7165A63EAB
+In = E4D9CD45A391C601FFC92AD91501432FEE150287617C13629E69FC
+Out = E584507E7606DD42
+
+Key = 32BDF97C8C6AC75B
+In = 49CF714BCE3A75A74F76EA7E64FF81EB61FDFEC39B67BF0DE98C7E4E
+Out = 5A09D5EF7B21251E
+
+Key = D1BCA70DBE9BBFAB
+In = A43C02F4B2ED7216ECF3014DF000108B67CF99505B179F8ED4980A6103
+Out = 3AA4E5750CA579D9
+
+Key = 891A2B211B01070D
+In = 0ED59801D6E5F2D6F67D3EC5168E212E2DAF02C6B963C98A1F7097DE0C56
+Out = FAC262455D9691C6
+
+Key = C7E2ABDDA44D8188
+In = D8FD8B16C2A1A4E3CFD292D2984B3561D555D16C33DDC2BCF7EDDE13EFE520
+Out = 32127540A949B873
+
+[CBC-MAC(AES-128)]
+Key = 00000000000000000000000000000000
+In = 00000000000000000000000000000000
+Out = 66E94BD4EF8A2C3B884CFA59CA342B2E
+
+Key = 67C6697351FF4AEC29CDBAABF2FBE346
+In =
+Out = 00000000000000000000000000000000
+
+Key = C254F81BE8E78D765A2E63339FC99A66
+In = 7C
+Out = A2F5C113EBEE0F124B649287C7F7986F
+
+Key = B73158A35A255D051758E95ED4ABB2CD
+In = 320D
+Out = 5C787D4CDAF3B4D106A7AA09F41BCFCA
+
+Key = 54110E827441213DDC8770E93EA141E1
+In = C69BB4
+Out = B32F25C34E061A972C49E4B0A0678AA5
+
+Key = 7E97EADC6B968F385C2AECB03BFB32AF
+In = FC673E01
+Out = B5D6A0E8F3202BFF37796DB5EB920B7E
+
+Key = 5C021AFE43FBFAAA3AFB29D1E6053C7C
+In = 3C54EC18DB
+Out = F3896484B179F90BE3B62DCE3F748C52
+
+Key = F95CBBA8990F95B1EBF1B305EFF700E9
+In = 9475D8BE6189
+Out = 100D2CDA97B85428D785D9EECC8D51E2
+
+Key = 484764BD1F231EA81C7B64C514735AC5
+In = A13AE5CA0BCBD0
+Out = 92A7A024C4F6D8C82C53030545C23C10
+
+Key = 119E09DCAAD4ACF21B10AF3B33CDE350
+In = 5E4B79633B706424
+Out = E235CFD4C307E2B3D44199E83E5D83C6
+
+Key = 9B7DF50BE11A1C7F23F829F8A41B13B5
+In = 4847155CBB6F2219BA
+Out = 2379D24A48EF60E46807E92C1A602AA6
+
+Key = 34BC5F4E77FACB6C05AC86212BAA1A55
+In = CA4EE8983238E0794D3D
+Out = D6DA42CAE5C664F3C4D597CF6CE1DDD7
+
+Key = B3AFE2F0E49E4F321549FD824EA90870
+In = A2BE70B5733B045CD33694
+Out = 93990491923BF761B3220C1E45ACD359
+
+Key = A844AC5BF38E4CD72D9B0942E506C433
+In = D4B28A2954489A0ABCD50E18
+Out = 9B14531370EE1EFFCF5A3BBC2161D25C
+
+Key = EC4AC430F62023856CFBB20704F4EC0B
+In = AFCDA3847F2DADD47647DE321C
+Out = EB597AD53F1B208B4FEB5C20D78545AB
+
+Key = 50A3E314D3D934F75EA0F210A8F60594
+In = B920BA86C33E05F1ECD96733B799
+Out = 91C3626B64EA3B16E15C2F9B32189C68
+
+Key = 6A7E4C7E5125B34884533A94FB319990
+In = 01BEB4BC4478FA4969E623D01ADA69
+Out = F6251F1A89FE388121DED78B8CA9FD7C
+
+Key = 60AAD2B2D085FA54D835E8D466826498
+In = 325744EE9BBCE9E525CF08F5E9E25E53
+Out = E55A004723589CAA843140BA5AC52119
+
+Key = 4E5759D351ADAC869580EC17E485F18C
+In = D9A8877565705A8A3F62802944DE7CA589
+Out = 53A217151AA961BBF0C7AD4AFDCB9B5F
+
+Key = 83B4692F3AFFAF271693AC071FB86D11
+In = 0C66F17CC07CBB22FCE466DA610B63AF62BC
+Out = CE21D27F4D455511CD327D205853EE85
+
+Key = 12EC453902D8E50AF89D7709D1A596C1
+In = 342D8DEF4F89D4B66335C1C7E4248367D8ED96
+Out = 4DC9B5ED541B7382F0FCC7CFAB5AAFE0
+
+Key = CA99B2C2372ACB08CF61C9C3805E6E03
+In = F41F95AA82CA6C49AE90CD1668BAAC7AA6F2B4A8
+Out = 2FB0B595042C8D7AD592583D7E6C76F7
+
+Key = E4D9CD45A391C601FFC92AD91501432F
+In = 28DA4CD76A19EDD2D3994C798B0022569AD418D1FE
+Out = AC464531064DA66A2F8591AFAB2931D0
+
+Key = F466C626BC51E907F0BDAE188D092EF1
+In = D4A628D05B1663A1BABEA82646DE1005197A63C1EB5C
+Out = A16EADA7B6D32D01FE75759FB6DE2E1D
+
+Key = C3CC5CDB5A660A4B11F2FA6401F09621
+In = ABE8AF530FF6311FFB4B995F0C84BB00EA8226A7D30FAE
+Out = 7D980A5E6DA633CE4FED22E815A1C5AD
+
+Key = F68FB7F87F4D196B2ED3B61B12BD083C
+In = ECE1BA4BED3F06ED298813D05B237F1EEFDBFA4941049452
+Out = 425497C221479FC5696D3078D062E725
+
+Key = 3C48ABF950E73F6BF3E0AA7F9FD8E659
+In = 451B0CA13E8BBF2E67B977A8BD0CFBB49BB2AC1AFFC5862D98
+Out = 90029A6EE195A0665D02997A844BE499
+
+Key = D88BEDBEE43C4DFB98D6C58E123C9F4C
+In = 4F8E165B89CAF63B76113A3B9767D4D3AF7FCDFF660C6B59EC15
+Out = BCA39FFF3C95AB00DACF2B2A9A37C7FE
+
+Key = 563BD2A3B30957FE13BAC9EA1DF9CDEB
+In = 7736B44B0A63CAD76330E3CE8ACFE3625AD0213F0C6E3AA444FF33
+Out = D55DC707BA4568B0642E3D70116308D1
+
+Key = 1E28CDA2C49C88BA3A8FF0E5045F35BD
+In = 839CCEE6F69E0735AB756F4FB96F8210AA55B35D5E0A5C71C4255BE2
+Out = 295F3F2DC91B300874147AADBF2132FE
+
+Key = EFF0FBA7BE74B33E4A1EC97DF918D430
+In = CEB7CD790C80D66A8A32DB4F573631765EFE18229AA0DDD52FCDBA332C
+Out = 049AE1796CE825B2ABB88AA1EBE8D7D2
+
+Key = 037BDD91C33F42A542D05C732BCDD8B3
+In = 494A8E4762B1E2028EB7315B7164876155820813F6BB5141D91ABED33292
+Out = AD921BBF28C028B76D9E1B4F92D36DCC
+
+Key = 1A945A50D4864266F30E121EACF0DB4E
+In = 2E2D3536402CF2916DCBAC2B9EDEBDA15A9A331DDA75C21C461E8F71EB6724
+Out = 952D487FE1B8A1F63B26B2027217AC14
+
+Key = 1569E6656010D19C57CC4A8A2F1DD727
+In = 4A76816750F6296C3C47FBAE3363D24DF72C9DCCB2E032A5EE44C39A349FE87F
+Out = ED1B41F593FF135A1E6DC7C85A2F1A2B
+
+Key = 65D9968A7AD9F3DFB790E37DADFCACB0
+In = 4975F3FC5525A1436965DD9D04C61C192F037E8F134F2C6A1B76F54B93CC72DD41
+Out = 29326E91479F46720D9D1B067B10E617
+
+Key = A625628B0384BB75735DC4A464EC6BF5
+In = 7A3CC3C9682DE5DE223072EFA24F300728C791A2A08482571465D4C1628171DCBD34
+Out = 440A055C9D93DE336B725E0FAE8BCB3D
+
+Key = CC5DDB04ACB3BC6D683262C3CCB9A96A
+In = 8F0B7911638D76374FD8B8C0B575F55B9A57E69EDBA1134FFED8F362C45E575369D064
+Out = 345B392931218A9395F08BD1A45A9B43
+
+Key = 68B27482E675F08447C3EF76705D51D1
+In = 944A7EE34856D6AA1A34016E9ED1D26A2FAD6EDB612B48C95DAA8D29633694F88112DBC9
+Out = 2D49E335B07A2519287CDA50D482FC48
+
+Key = 6227B605C796BA433FD7705C7684EE06
+In = 889A9BE544280FA85EA3A0DFB57BA91D2D1D9F14929098D953874FC3E5A1956D3B30537F58
+Out = 900A6FB8FD5661FF12B7F391279DB085
+
+Key = A8E7DC9BC9260E03D2A9F4830B7AEEB0
+In = 1DC859A4171D89B8B2F7F3E24A733AAC9AF0B162866BA5C5421521B89A10BFB7D8185BEF35E5
+Out = 096DCD92F3919145B298201BC3820612
+
+Key = 2A751C9CAE11F38FEE260B957F963FAA
+In = 4030C561E85F71A71649C07239F557E1DD337CA6598BAA2B349EAE3F189CEF58CCB4BAB4142B5C
+Out = 2E8B2AF6CFF3FD6AF55898BC1374609D
+
+Key = 01E94EC21D1FADC50C351C0BB101F853
+In = CADD5809F5F4F84EC0AD0875C133D1EBA8ED8856FE7BE5EDA2F1822187C1CC529E245B931954E1D9
+Out = 351E0741D63B5CCED0131A483C3B89F0
+
+Key = CFBD131D158F55BBCEA980BAC352DBF9
+In = F27A747A3B40CCD965276C7E7B4E577C37A63E54C5EC1AD22136DDD237D5252A4F9AA48ADA70633F97
+Out = 5F144222C4B8C33CA82A85CCC177A0AF
+
+Key = E38DCBE99D1003CB6AAC4D7F23791454
+In = 2FAE3104D35B536DFFDD486F4087061045192D5AA98215772C9531EFE80CE917BA1A1C8E756FFB744D43
+Out = 5FD061418DDE0BB0A8A3E6A4FD5BD2A8
+
+Key = 068DF83E07AB601E6E84019B55314748
+In = 69FC6052141B6C30A9E19FA455ECE8387AB32117C324E22DD030ACF3A9C04712BDA864D1C3D0016CB1A010
+Out = 73E376B5D0B9466453438B5CEFB27EEF
+
+Key = 9E3C0463AC1D2EC7951851920377E41F
+In = DA0890EDC5385196FB229767D33777DAC47018CB1B78EA8AFDEB25521C6D9AF6752AE33A6235D05D5767C42A
+Out = 03F54C4F6B9E5E214BE93289CB2F2D4B
+
+Key = A90B145DD72A2FD10796E3368FF9DC6D
+In = E47F1659A9F9930C2E636985CA2EB0686AB4CB16D1FADD67122FF916A6DE358A5D4BE30645761273D97CF9A3AA
+Out = 9FA99D925751C9613D3A8D42E3B604B0
+
+Key = 69ECFA9B0A41FDF990F4CC167B987870
+In = 2F66CA7A49D1BFBFE333985F2C3B09D5471D321E4761EF4FF7D28587CC62F4FBC8BF75129035D173686AD394A5DC
+Out = BF0557B787C01A589BBD6EBB83F3A330
diff --git a/src/tests/data/mac/cmac.vec b/src/tests/data/mac/cmac.vec
new file mode 100644
index 000000000..55c476294
--- /dev/null
+++ b/src/tests/data/mac/cmac.vec
@@ -0,0 +1,147 @@
+[CMAC(AES-128)]
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+In =
+Out = BB1D6929E95937287FA37D129B756746
+
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+In = 6BC1BEE22E409F96E93D7E117393172A
+Out = 070A16B46B4D4144F79BDD9DD04A287C
+
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+In = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411
+Out = DFA66747DE9AE63030CA32611497C827
+
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+In = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710
+Out = 51F0BEBF7E3B9D92FC49741779363CFE
+
+Key = 8989DA29F037D54809D39E0F21BAD66B
+In = 3B2E8F8C7838FDE9610CE6FCC10F854AEAAE3A2184832A
+Out = 6B642B7D118A78A160B7EA0E11789A99
+
+Key = 2903F5E3C9630579E3B7F9E97E141494
+In = 9951105BBA18783C1AF2DC8F88A9B98C9E9C5502A1CEE559
+Out = 7C05D6851E344F0F725CE228A5E91F40
+
+Key = F7BC110047D58BB40C79BB46697AF357
+In = 94D6C4C8EF018F83115A27B01218A7CE29A715FE32C90AAB84
+Out = 1C10A73B946DBFABCCBB21C93990AE5A
+
+Key = 1EC461A0D7D45DBB8F329D28FD1120BF
+In = DB170C579267ECDD54DFE24695B56459160530EB62EC7A9489A3
+Out = C27600E6310E45A698C5F5F8BEDFB6DF
+
+Key = 726F0F60469CA5B517BD4EE64FEC2198
+In = 52ADDFA309053D90A9C807EBB9B85D28C8BD6F6463247B20726170
+Out = 03E0A715698908157EC2CF38A818092C
+
+Key = FA51384A5B8B3BE1DD2C91D8ABC9E262
+In = B47B761A8FBA35F68E25B097A17191F2A9DB4D34162E1242BFEAED88
+Out = 97442B172B28A4C98BD1CB2A4D1634F3
+
+Key = 5171636008FDF3CF658D980932B44394
+In = 264D32E2A14653254743926ADB7CBB4DDF1C55DD0F24429DBC4BCF718E
+Out = A6945844614FB76BDC75BD488637E34D
+
+Key = 644A3F16490C8FE381CF5BD6B09E7525
+In = BF685A96FE74FC30B14285B1479A1591D92CDAE6BBBE678A193D3AB7B360
+Out = 022D9710FC7641F76728136323870565
+
+Key = D151ED7EA3F4E6E3BD4DA7E0CC3FCED5
+In = 415D0574EAAE71B878EC707F50A850A196CE448AB4274701CF27CD0EF5A2CC
+Out = C9CF027DBAF268A9B7304AA8E3F5BAF3
+
+Key = 2DEEEDB2C4CEDED515493D0EB23F45A6
+In = A39FA8261CD507B473C53E7B6BC2A859AF5A1E7E38F3938230A23470E7DAD48A
+Out = 79171CA85E8F2821B0889A259491CFDB
+
+Key = D5505FEB66C306AFB167E1B240682C1A
+In = F688810E10DCFE4A64
+Out = 61364AD45A2E15C8EE119CA8C36FBFA9
+
+Key = D1CB929113E995A13D9E0B5FF068CF2C
+In = C280CBC1
+Out = 76EA6672EEE06EE1050365F4CB404D66
+
+Key = A7A252D3AB457702263B837F48814AE4
+In = F610
+Out = 5AFE8C966695BE3B4FCEA22F5C27B059
+
+Key = 7B3ED445B003A4839266B017B7F8226D
+In = 3D5E
+Out = 41246CF56814027408D33634109C9C9D
+
+Key = 25F10513DAC4792CBC0A76A1603E3CFE
+In = 741D
+Out = BB170239A6A86DC4906F8FA56222F883
+
+Key = 900EE360285E4273AFA3674BB76FFB57
+In = 2D225860EF0FF7FFFA2040C60077560E5AB737B9F9AA689C11B35480AEABBCDBCD143CBD2433BC1E54FDE454743B63CEF29A87EB44EF8756A2DBD651
+Out = D36509415886167C44D9208EF5DB4C5A
+
+Key = EDCBA48465D6B8BDBF274658EF587F72
+In = DDE273DA5EE3F41B370A7C10B706FE82AB82E7813BA44162EA99514218C3A4F5A517CF03FBC41E32CE9A4385A141074CC3EECDFE930E607DA8B1C0C07464B61A7C851D77493CA918D6EC9D772DA5C3F19391EF269F50A44701640876C8BE904443AD
+Out = DE5E5B64B403E3772CCB13E175C734FE
+
+Key = FB565C5DB38C2237869ED34CA10A055C
+In = 85380139C424704AC24497634E9CBFCEE21E0F99CF3AC8F9C6AE2D6FDD09136341149C05380C4FFA50E65D9E831D6C653B7BFE0BB5C6047C7431EB513AFEB47B1250804B5DD045ADB6A34C39C0B89EFB349C06E9620A65D63C5028764EDCF2612D72AC8A42F137F9948332543CD150706D5659D061BFA69D0FCE135EAB05BFD8786B62BA5C99B3F11DE64559B795C924EC22F44DE19BEAF169FD4F14030EEC7B794E35D5E8E9C6
+Out = 3015A6D16CDDF7E1E8C28521F4064A28
+
+Key = 0398D70C12CE6F7ED28828647FB18A56
+In = 7B326530160FE8CFFB68704022DE43BBB54FCD83BF4C554774BAC625441C1DBF4F82F06591D8348C40A4CD6282101D3860EBBB1F371166ABCB2DD00F49EDCF986FBFFD0197328DD7D65A39596B5791CB424CEA795D5024287DF438C7E1075F50C65D515D8FDF3465396DBEA4C44F6F069C597FF9AAA32227
+Out = 39F2933F156616549749CCAEBF682322
+
+[CMAC(AES-192)]
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+In =
+Out = D17DDF46ADAACDE531CAC483DE7A9367
+
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+In = 6BC1BEE22E409F96E93D7E117393172A
+Out = 9E99A7BF31E710900662F65E617C5184
+
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+In = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411
+Out = 8A1DE5BE2EB31AAD089A82E6EE908B0E
+
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+In = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710
+Out = A1D5DF0EED790F794D77589659F39A11
+
+Key = 76BF48A88F0F5531C4D1A14846742CE39B8D8827F863ABDA
+In = F4FF3C7E2F56F4
+Out = E1D41EC244EBC98373457A95685D0EFB
+
+Key = 970BD2C9C46E9B85E13949E13D39B466A8070F40570D1070
+In = E2C0FFB463EF4B6EC114322FAFB8
+Out = D25D89E8CE9685D975C645FB2A19E50D
+
+[CMAC(AES-256)]
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+In =
+Out = 028962F61B7BF89EFC6B551F4667D983
+
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+In = 6BC1BEE22E409F96E93D7E117393172A
+Out = 28A7023F452E8F82BD4BF28D8C37C35C
+
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+In = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411
+Out = AAF3D8F1DE5640C232F5B169B9C911E6
+
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+In = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710
+Out = E1992190549F6ED5696A2C056C315410
+
+Key = 19449A56180CB52462C37109EA1D329708F7C4FBC43B37E1B2C55E38F5551C0E
+In = B664B2C219D625DC472EC765605E6D5822681C5E9FFD10645B
+Out = 3FC310BAF6F1A39FA25AE7DEA104EDA9
+
+Key = F0D16D00B5CF601F1A5BE91422A5562C252C5C1DEBDF05B5BC328BF8505DF740
+In = 6540E334A0024EFCEB621E91B94AB6E5A6D4D085D986410B113A5B6E319B9D96DC80CA7C8319786E7B96FF34E0B6
+Out = DA97AE2997EB3E74B35C6A6FD5471F8C
+
+Key = 420D2C372E496D403A9F520158FCCDA6D6BCE14E6EAD2B90918B919E5E8621A0
+In = 4DD7C1974501D1E454D23C509FE2265BC375CA
+Out = CB1C20084C5DACB3270F118633DB4F33
+
diff --git a/src/tests/data/mac/hmac.vec b/src/tests/data/mac/hmac.vec
new file mode 100644
index 000000000..c519ed8cd
--- /dev/null
+++ b/src/tests/data/mac/hmac.vec
@@ -0,0 +1,122 @@
+[HMAC(HAS-160)]
+Key = 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
+In = 4869205468657265
+Out = F5B44115A53F716B6F488DE1098EE7C251418623
+
+Key = 4A656665
+In = 7768617420646F2079612077616E7420666F72206E6F7468696E673F
+Out = A74547C1EF0AA147C7428AB7E71664549BE2A412
+
+Key = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+In = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+Out = E4C91BC71782FA44A56BE1A34AAE167E8FFC9734
+
+Key = 0102030405060708090A0B0C0D0E0F10111213141516171819
+In = CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+Out = 14D1055DA875222053BF1180BBEF8892EBA3AC30
+
+Key = 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+In = 546573742057697468205472756E636174696F6E
+Out = 124131A293F1FDF3D6B11E2B7F7A1F5B12E42D58
+
+Key = A766901C8630F7DB3A3FC2A9747A6E2593452BE7
+In = 54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A65204B6579202D2048617368204B6579204669727374
+Out = 63750D67AF40E3FDE33526545D300972A1527053
+
+[HMAC(MD5)]
+Key = 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
+In = 4869205468657265
+Out = 9294727A3638BB1C13F48EF8158BFC9D
+
+Key = 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+In = 546573742057697468205472756E636174696F6E
+Out = 56461EF2342EDC00F9BAB995690EFD4C
+
+Key = 8FB6AB01840023EC453ECDEC73DC1B66
+In = 54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A65204B6579202D2048617368204B6579204669727374
+Out = 6B1AB7FE4BD7BF8F0B62E6CE61B9D0CD
+
+Key = 8FB6AB01840023EC453ECDEC73DC1B66
+In = 54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A65204B657920616E64204C6172676572205468616E204F6E6520426C6F636B2D53697A652044617461
+Out = 6F630FAD67CDA0EE1FB1F562DB3AA53E
+
+[HMAC(SHA-1)]
+Key = 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
+In = 4869205468657265
+Out = B617318655057264E28BC0B6FB378C8EF146BE00
+
+Key = 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+In = 546573742057697468205472756E636174696F6E
+Out = 4C1A03424B55E07FE7F27BE1D58BB9324A9A5A04
+
+Key = 4CA0EF38F1794B28A8F8EE110EE79D48CE13BE25
+In = 54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A65204B6579202D2048617368204B6579204669727374
+Out = AA4AE5E15272D00E95705637CE8A3B55ED402112
+
+Key = 4CA0EF38F1794B28A8F8EE110EE79D48CE13BE25
+In = 54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A65204B657920616E64204C6172676572205468616E204F6E6520426C6F636B2D53697A652044617461
+Out = E8E99D0F45237D786D6BBAA7965C7808BBFF1A91
+
+Key = 0102030405060708090A0B0C0D0E0F10111213141516171819
+In = CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+Out = 4C9007F4026250C6BC8414F9BF50C86C2D7235DA
+
+Key = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+In = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+Out = 125D7342B9AC11CD91A39AF48AA17B4F63F175D3
+
+[HMAC(RIPEMD-128)]
+Key = 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
+In = 4869205468657265
+Out = FBF61F9492AA4BBF81C172E84E0734DB
+
+Key = 0102030405060708090A0B0C0D0E0F10111213141516171819
+In = CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+Out = BDBBD7CF03E44B5AA60AF815BE4D2294
+
+Key = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+In = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+Out = 09F0B2846D2F543DA363CBEC8D62A38D
+
+Key = 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+In = 546573742057697468205472756E636174696F6E
+Out = E79808F24B25FD031C155F0D551D9A3A
+
+[HMAC(RIPEMD-160)]
+Key = 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
+In = 4869205468657265
+Out = 24CB4BD67D20FC1A5D2ED7732DCC39377F0A5668
+
+Key = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+In = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+Out = B0B105360DE759960AB4F35298E116E295D8E7C1
+
+Key = 0102030405060708090A0B0C0D0E0F10111213141516171819
+In = CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+Out = D5CA862F4D21D5E610E18B4CF1BEB97A4365ECF4
+
+Key = 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+In = 546573742057697468205472756E636174696F6E
+Out = 7619693978F91D90539AE786500FF3D8E0518E39
+
+[HMAC(SHA-256)]
+Key = 0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20
+In = 616263
+Out = A21B1F5D4CF4F73A4DD939750F7A066A7F98CC131CB16A6692759021CFAB8181
+
+Key = 4A656665
+In = 7768617420646F2079612077616E7420666F72206E6F7468696E673F
+Out = 5BDCC146BF60754E6A042426089575C75A003F089D2739839DEC58B964EC3843
+
+Key = 0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20
+In = 6162636462636465636465666465666765666768666768696768696A68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F70716162636462636465636465666465666765666768666768696768696A68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F7071
+Out = 470305FC7E40FE34D3EEB3E773D95AAB73ACF0FD060447A5EB4595BF33A9D1A3
+
+Key = 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
+In = 4869205468657265
+Out = 198A607EB44BFBC69903A0F1CF2BBDC5BA0AA3F3D9AE3C1C7A3B1696A0B68CF7
+
+Key = 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+In = 546573742057697468205472756E636174696F6E
+Out = 7546AF01841FC09B1AB9C3749A5F1C17D4F589668A587B2700A9C97C1193CF42
+
diff --git a/src/tests/data/mac/ssl3mac.vec b/src/tests/data/mac/ssl3mac.vec
new file mode 100644
index 000000000..5026b165e
--- /dev/null
+++ b/src/tests/data/mac/ssl3mac.vec
@@ -0,0 +1,26 @@
+[SSL3-MAC(MD5)]
+Key = 0123456789ABCDEF0123456789ABCDEF
+In = 00
+Out = A856430AF077AE2C328D9FFE4E56813A
+
+Key = 0123456789ABCDEF0123456789ABCDEF
+In = 01
+Out = 96279D16E7812EDDA2EC64DAC996348F
+
+Key = 0123456789ABCDEF0123456789ABCDEF
+In = 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
+Out = 475006C7DC7A3F371352D948B4BE950E
+
+[SSL3-MAC(SHA-1)]
+Key = 0123456789ABCDEF0123456789ABCDEF01234567
+In = 00
+Out = DD2BA1F4A721F22C8A9BA7350B5CD6838B225827
+
+Key = 0123456789ABCDEF0123456789ABCDEF01234567
+In = 01
+Out = CD6289A1FEC0BB104C271BE488343BA92328B073
+
+Key = 0123456789ABCDEF0123456789ABCDEF01234567
+In = 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
+Out = 98E523EADE38B3BF4EBF51D7EE814316C9EB3159
+
diff --git a/src/tests/data/mac/x919_mac.vec b/src/tests/data/mac/x919_mac.vec
new file mode 100644
index 000000000..238fd0718
--- /dev/null
+++ b/src/tests/data/mac/x919_mac.vec
@@ -0,0 +1,24 @@
+[X9.19-MAC]
+Key = 0123456789ABCDEF
+In = 31311C3931383237333634351C1C35383134333237361C1C3B313233343536373839303132333435363D3939313231303030303F1C30303031323530301C393738363533343132343837363932331C
+Out = C156F1B8CDBFB451
+
+Key = 0123456789ABCDEF
+In = 35383134333237361C3B313233343536373839303132333435363D1C30303031323530301C393738363533343132343837363932331C
+Out = AB4884061A159618
+
+Key = 0123456789ABCDEFFEDCBA9876543210
+In = 31311C3931383237333634351C1C35383134333237361C1C3B313233343536373839303132333435363D3939313231303030303F1C30303031323530301C393738363533343132343837363932331C
+Out = C209CCB78EE1B606
+
+Key = 4061610D85685DB0F4D9F1C8FE15A123
+In = 3330303030323031393543555354303120202020552020202020202020202020202020202020202054303253454154504152594742324C54535435534F414131393935303232373133333934343030303020202020202020202020202020333030303031304139354558413030303030333144
+Out = DBE9EB0FA03838D2
+
+Key = BB296726F91480CDC432AB3067536EAB
+In = E7EF0EC901CCC8E5E44579A25AAE7FB82FA475ACD95F2DE313C5C2B7BCA63BA395496C9615347CFA7AF59CD4A31C8DD3C0027F9961AD7C75723E2C2EE467D279B13E10C6738CC0ED815DC125794EF8395177D2B2244E27978D53C571BB97EB6CD6FB324987F3360850F72DC9462502979DD449C1227158AFC41E217FB50CEB8B071ED48E110A966102C42A48E92CDF860028482299A0D25EBEF3DD74FFC9FF06E7D494F8DE2A59E0EE8328D8AF075EAF30A6D1C947A3270596057995CE799BB54D2FAD2B5A060C48893420383C7FE76C25B8356C5C5D72F262EB88306423E5B15392DDAD98E9F521
+Out = 83C4B075AF24AB7C
+
+Key = 214B48AB97E144F1005831C8C97B8EF0
+In = 12916051C77047C9EFD1E3A43D0086D9899AA28818BCCC5D8B5A0A848682F8981359E9DAC931A4B902875D3F87E318107DBB98967765F302BFFD8645807FDE93D8C76EA1F8125AFB99B83A209B5331190EC9AF852EA287EEA00D33208C11B364D92106D13360CCCC1807EDB45A1ECD68E77CED161E7404BE8137DE0E49927222B378F3E7D9C0B3F1C7A0A521BE7289A6EE76BC0DEAC0CB6BF7AA79403CEC62EF6456D63D168A2FDD2AD4FEE947878F35FD4B42E70B0E5202B8CC43F4B8A5E31CFBBA5A114489EE6E5DEC57A473E6DA70311C573C2AAA3FE2
+Out = 31174049F029EB36