# Test vectors for Blowfish blowfish { # --- Main block cipher --- # # Taken from Bruce Schneier's web pages, I think... 0000000000000000 0000000000000000 4ef997456198dd78; ffffffffffffffff ffffffffffffffff 51866fd5b85ecb8a; 3000000000000000 1000000000000001 7d856f9a613063f2; 1111111111111111 1111111111111111 2466dd878b963c9d; 0123456789abcdef 1111111111111111 61f9c3802281b096; 1111111111111111 0123456789abcdef 7d0cc630afda1ec7; 0000000000000000 0000000000000000 4ef997456198dd78; fedcba9876543210 0123456789abcdef 0aceab0fc6a0a28d; 7ca110454a1a6e57 01a1d6d039776742 59c68245eb05282b; 0131d9619dc1376e 5cd54ca83def57da b1b8cc0b250f09a0; 07a1133e4a0b2686 0248d43806f67172 1730e5778bea1da4; 3849674c2602319e 51454b582ddf440a a25e7856cf2651eb; 04b915ba43feb5b6 42fd443059577fa2 353882b109ce8f1a; 0113b970fd34f2ce 059b5e0851cf143a 48f4d0884c379918; 0170f175468fb5e6 0756d8e0774761d2 432193b78951fc98; 43297fad38e373fe 762514b829bf486a 13f04154d69d1ae5; 07a7137045da2a16 3bdd119049372802 2eedda93ffd39c79; 04689104c2fd3b2f 26955f6835af609a d887e0393c2da6e3; 37d06bb516cb7546 164d5e404f275232 5f99d04f5b163969; 1f08260d1ac2465e 6b056e18759f5cca 4a057a3b24d3977b; 584023641aba6176 004bd6ef09176062 452031c1e4fada8e; 025816164629b007 480d39006ee762f2 7555ae39f59b87bd; 49793ebc79b3258f 437540c8698f3cfa 53c55f9cb49fc019; 4fb05e1515ab73a7 072d43a077075292 7a8e7bfa937e89a3; 49e95d6d4ca229bf 02fe55778117f12a cf9c5d7a4986adb5; 018310dc409b26d6 1d9d5c5018f728c2 d1abb290658bc778; 1c587f1c13924fef 305532286d6f295a 55cb3774d13ef201; 0101010101010101 0123456789abcdef fa34ec4847b268b2; 1f1f1f1f0e0e0e0e 0123456789abcdef a790795108ea3cae; e0fee0fef1fef1fe 0123456789abcdef c39e072d9fac631d; 0000000000000000 ffffffffffffffff 014933e0cdaff6e4; ffffffffffffffff 0000000000000000 f21e9a77b71c49bc; 0123456789abcdef 0000000000000000 245946885754369a; fedcba9876543210 ffffffffffffffff 6b5c5a9c5d9e0a5a; # --- Key schedule test --- # # From wherever the previous tests came from. f0 fedcba9876543210 f9ad597c49db005e; f0e1 fedcba9876543210 e91d21c1d961a6d6; f0e1d2 fedcba9876543210 e9c2b70a1bc65cf3; f0e1d2c3 fedcba9876543210 be1e639408640f05; f0e1d2c3b4 fedcba9876543210 b39e44481bdb1e6e; f0e1d2c3b4a5 fedcba9876543210 9457aa83b1928c0d; f0e1d2c3b4a596 fedcba9876543210 8bb77032f960629d; f0e1d2c3b4a59687 fedcba9876543210 e87a244e2cc85e82; f0e1d2c3b4a5968778 fedcba9876543210 15750e7a4f4ec577; f0e1d2c3b4a596877869 fedcba9876543210 122ba70b3ab64ae0; f0e1d2c3b4a5968778695a fedcba9876543210 3a833c9affc537f6; f0e1d2c3b4a5968778695a4b fedcba9876543210 9409da87a90f6bf2; f0e1d2c3b4a5968778695a4b3c fedcba9876543210 884f80625060b8b4; f0e1d2c3b4a5968778695a4b3c2d fedcba9876543210 1f85031c19e11968; f0e1d2c3b4a5968778695a4b3c2d1e fedcba9876543210 79d9373a714ca34f; f0e1d2c3b4a5968778695a4b3c2d1e0f fedcba9876543210 93142887ee3be15c; f0e1d2c3b4a5968778695a4b3c2d1e0f00 fedcba9876543210 03429e838ce2d14b; f0e1d2c3b4a5968778695a4b3c2d1e0f0011 fedcba9876543210 a4299e27469ff67b; f0e1d2c3b4a5968778695a4b3c2d1e0f001122 fedcba9876543210 afd5aed1c1bc96a8; f0e1d2c3b4a5968778695a4b3c2d1e0f00112233 fedcba9876543210 10851c0e3858da9f; f0e1d2c3b4a5968778695a4b3c2d1e0f0011223344 fedcba9876543210 e6f51ed79b9db21f; f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455 fedcba9876543210 64a6e14afd36b46f; f0e1d2c3b4a5968778695a4b3c2d1e0f00112233445566 fedcba9876543210 80c7d7d45a5479ad; f0e1d2c3b4a5968778695a4b3c2d1e0f0011223344556677 fedcba9876543210 05044b62fa52d080; } blowfish-cmac { 60d7bcda163547d348b7551195e77022907dd1dff7dac5c9941d26d0c6eb14ad568f86edd1dc9268eeee533285a6ed810c9b689daaa906 "" 233f464f6f4fed40; 0d2d4b6003062365b0a54364c76c160f11896c4794846ecfa14a7130c9f137120634c9519848a877ff77bf79192a5b50ade5d9cd739a3d 1f f80086d1f74c3c25; 337f29549e6b0d27a4ba234085406a6136512061f7080cc07df0591d8fa21f2dd88374d8cde8e160ad10997a21635c6d62c9269029df3e 6057acc87638f508046733d9ff61cdbda3b3e9878731ebfe 88141768f1834980; dd4705e505da1435dceaa7b1cc49ae1d50c38201a894476b3f102b752eb9529533966f27043eb621b7f65b000961040ef2f9b2fc5fa450 727a9b542cde52ebfda19d0ccc520f215eb57b 8b2e3c8554c039c5; b3a4f3ebbbb18ac6c95a97 "" 992c2d7bae553fa1; a48030370c33d090c54215 ab 3ef759021e0bd2c2; d6b3ad54efc9a38378c5b9 3bf4f2aad2605faee2b03fb648e27fff63102758fe2b69ac 7ef83257367f4dcf; 26afa3349829b94586306f ed54154f8f28523c03d4de1600157846b710ee 595b0c57e4ecd664; 72807a2219 "" c17ded27f35e843b; bfb474fd71 d8 063d632b053cfb61; 91f24bb65d 1563259f9eb53b571ea629c54d57dd2d42f70800df9fcbac aefe8538008cd029; a48b77dba1 89196d1ebba10b0467cb9fc2712a199e533fa9 296073d2f0263834; 156308cdec3f768281e040a9b9a222bd689aef66f5306c "" fc5dcde84c290e8e; eb0c6b08ac8b0a22260c571b4a42bb8fdb233bfa6a5cfb 0b f0e70394d6b143c9; ad7d95214ade49cb3b6f5fe8368131115c037ba323fe1d c8151784873f0eb5b647da6794c18b5337685a96ed65b9ac a9be9c5120820347; a338527ef19b09c063c46f88de9fd41e72d7b97e23e6ea bdff3bcd211499268878dbf30f1dad89d4b9b1 a54fb7e239aeec4c; } blowfish-eax { 60d7bcda163547d348b7551195e77022907dd1dff7dac5c9941d26d0c6eb14ad568f86edd1dc9268eeee533285a6ed810c9b689daaa906 "" "" "" "" a6e2fbebaf974200; 0d2d4b6003062365b0a54364c76c160f11896c4794846ecfa14a7130c9f137120634c9519848a877ff77bf79192a5b50ade5d9cd739a3d 1f "" "" "" 4cc58c2f4cf91137; 337f29549e6b0d27a4ba234085406a6136512061f7080cc07df0591d8fa21f2dd88374d8cde8e160ad10997a21635c6d62c9269029df3e "" 60 "" "" c35fc08fda46f599; 57acc87638f508046733d9ff61cdbda3b3e9878731ebfedd4705e505da1435dceaa7b1cc49ae1d50c38201a894476b3f102b752eb95295 "" "" 33 9c b7c0dcb87a8b86c9; 966f27043eb621b7f65b000961040ef2f9b2fc5fa450727a9b542cde52ebfda19d0ccc520f215eb57bb3a4f3ebbbb18ac6c95a97a48030 370c33d090c54215 abd6b3ad54efc9a38378c5b93bf4f2aad2605faee2b03fb6 48e27fff63102758fe2b69ac26afa3349829b94586306fed 783ab2ee6ea73b63906caf73ceb4376b2e9ebee34fc490c5 3fff7a36718ab82c; 54154f8f28523c03d4de1600157846b710ee72807a2219bfb474fd71d891f24bb65d1563259f9eb53b571ea629c54d57dd2d42f70800df 9fcbaca48b77db a189196d1ebba10b0467cb9fc2712a199e533f a9156308cdec3f768281e040a9b9a222bd689aef66f5306ceb0c6b08ac 43bfef92d8c8ba5641fb2523e92ef24d60a41da2e8bb3112aee7b80ce3 07ad2ca904227df7; 8b0a22260c571b4a42bb8f "" "" "" "" bd94df689662060a; db233bfa6a5cfb0bad7d95 21 "" "" "" a43ffffe35e1b8a4; 4ade49cb3b6f5fe8368131 "" 11 "" "" d32da332498a6950; 5c037ba323fe1dc8151784 "" "" 87 12 0943c4cb5e3fc7eb; 3f0eb5b647da6794c18b53 37685a96ed65b9ac a338527ef19b09c063c46f88de9fd41e72d7b97e23e6eabd ff3bcd211499268878dbf30f1dad89d4b9b12012e4713df4 aebee82a01e138a7229636ee0eb746f6ce13584936f56bb4 5bddd65c9a111ec7; 6795630e7952d22bb02d71 00b8b649377d20 a8f083455b663e4ee1315f3c8f2aebfa921451 dcd1af5813b70d30ce2f1fef6ef315d0798391805da08da3aefc5f8584 8a298eafedf8c1e183dfa50569cda59c9f93e56fde173e750e2fa185c7 78a05a55f474688a; b7c5e61766 "" "" "" "" 6e8da28b2d84682a; 9c0f16e398 15 "" "" "" a6660ae3f78c52b7; d4e9cfce3e "" d1 "" "" caa08d52fd0d87cf; ecdf3d264a "" "" 7f b7 af92632b8a903cfd; 16cb16c2e8 15f422cdf0c8e303 08be3c31e6bc58c0b7cadcb658b970e47479a684b5aefa69 a4cd52147ed12ca986981a874498ad0abef8bc4fcb70e27e 773aeb0f1ffbc8b9f0a642275761a79598ab37c4a531e157 7b4483789e1768fc; 98ef1f0446 b42fb144d44b6d 00f06dc188d472a784e0c6f21195a3b9f4ae98 5511265febd11c164720eef9eb1c8dd0b00951f284649016ed00456331 08d772c882d1d700f980b349e40c3cb563743f62b966fe38ce39831c37 62662279f37c6a9b; 854bc78bf43966eb0cfa9138ddc39908445608fe95e81c "" "" "" "" 99eb415cd27dfb9d; 2533e31c9c1a9851bc2810d858cbbc8424d126b807e6da a0 "" "" "" c90ad3bb5ff737a9; 89c3f9099c5ffb824173d7634c04226f30cbb7f0e4a973 "" a8 "" "" dc32c7a1d4f99131; cd190107314717a77456f3ff669c732b58db8f48af65f7 "" "" cc 86 5a32c09bf86a0f69; 9e3fb90e1721b730374ffc9bc597f56ccbb2f294b38766 fc69f6a9f2c0945f fd505003cc0cae9ce021a5f1fa4ffa91544485f1a1258b2b 9b8f0911e32d65cc1770a18cbfe6effd1ff6778554acf127 c9d09215bfda6368733b83186710d656bd900f072a02173d 1e35ed44860e1cb0; 0485b203a3c1c4c967c0a458cb948bdd409b687fa3a682 7b480aa3a4c84c ef64f6c9b53bf8f957f4b03cf43e89957f9a3e 8128f8743d16687b7bb8deb9bd205b70e04c091d205cdad9e9a79b1abf 1b485cb8f21d2744e6fdb19989d90693a8d2b935d0eae05facba546e91 8b86611191b4bdf3; } blowfish-gcm { 60d7bcda163547d348b7551195e77022907dd1dff7dac5c9941d26d0c6eb14ad568f86edd1dc9268eeee533285a6ed810c9b689daaa906 "" "" "" "" 6b5ff4ee552b5221; 0d2d4b6003062365b0a54364c76c160f11896c4794846ecfa14a7130c9f137120634c9519848a877ff77bf79192a5b50ade5d9cd739a3d 1f "" "" "" 88af455e5264ee42; 337f29549e6b0d27a4ba234085406a6136512061f7080cc07df0591d8fa21f2dd88374d8cde8e160ad10997a21635c6d62c9269029df3e "" 60 "" "" 3349c44a62931118; 57acc87638f508046733d9ff61cdbda3b3e9878731ebfedd4705e505da1435dceaa7b1cc49ae1d50c38201a894476b3f102b752eb95295 "" "" 33 10 0084f273223d1321; 966f27043eb621b7f65b000961040ef2f9b2fc5fa450727a9b542cde52ebfda19d0ccc520f215eb57bb3a4f3ebbbb18ac6c95a97a48030 370c33d090c54215 abd6b3ad54efc9a38378c5b93bf4f2aad2605faee2b03fb6 48e27fff63102758fe2b69ac26afa3349829b94586306fed e506b433f4b8d79455ba85c9495a93fbdfd6d9b8905ff540 3a7eae4ca30b331e; 54154f8f28523c03d4de1600157846b710ee72807a2219bfb474fd71d891f24bb65d1563259f9eb53b571ea629c54d57dd2d42f70800df 9fcbaca4 8b77dba189196d1ebba10b 0467cb9fc2712a199e533fa9156308cdec3f768281e040a9b9a222bd689aef66f5 300fa70b6ef7bfd848bb6686af20bd3fdd3c24870e4b3e27ebe638a6574f74666b 3c7cd92967f27b1b; 306ceb0c6b08ac8b0a22260c571b4a42bb8fdb233bfa6a5cfb0bad7d95214ade49cb3b6f5fe8368131115c037ba323fe1dc8151784873f 0eb5b647da6794 c18b5337685a96ed65b9aca338527ef19b09c0 63c46f88de9fd41e72d7b97e23e6eabdff3bcd211499268878dbf30f1d 5a4f347d4d422000d0df51f4cb24b0be321466d6730f7a811e36dc030c 15585b78049dd4fe; ad89d4b9b12012e4713df4 "" "" "" "" fe363b1f2ccd1251; 6795630e7952d22bb02d71 00 "" "" "" 9b93dde4b132c750; b8b649377d20a8f083455b "" 66 "" "" bbc2c3a8d6d3ee89; 3e4ee1315f3c8f2aebfa92 "" "" 14 e6 66a62c95caa9cbfb; 51dcd1af5813b70d30ce2f 1fef6ef315d07983 91805da08da3aefc5f8584b7c5e617669c0f16e39815d4e9 cfce3ed1ecdf3d264a7f16cb16c2e815f422cdf0c8e30308 2f5da54ea8b3beafd0f3dd6ac4e10650dd2ed421f8ce5ec1 9ce22826bbc14984; be3c31e6bc58c0b7cadcb6 58b970e4 7479a684b5aefa69a4cd52 147ed12ca986981a874498ad0abef8bc4fcb70e27e98ef1f0446b42fb144d44b6d e1b7effaaf9fd5e129cfc598bc26a0100ea9bac25c51aeabb75a7127e05c1bc9bc ae765f924e885d78; 00f06dc188d472a784e0c6 f21195a3b9f4ae 985511265febd11c164720eef9eb1c8dd0b009 51f284649016ed00456331854bc78bf43966eb0cfa9138ddc399084456 6bc0e656e9939d5fe58ad77acbcec603f5111cbe660d6b62d1c241ba6c 47b8a5c7cd546e34; 08fe95e81c "" "" "" "" 70b8e6f27adb97d9; 2533e31c9c 1a "" "" "" f334ea3a3b8ec059; 9851bc2810 "" d8 "" "" 802c25c30e3c0441; 58cbbc8424 "" "" d1 79 74d9b3cdc4ce7003; 26b807e6da a089c3f9099c5ffb 824173d7634c04226f30cbb7f0e4a973a8cd190107314717 a77456f3ff669c732b58db8f48af65f7cc9e3fb90e1721b7 f9e5d38f1d9ce21dc3b940af936de5b80b4ac4b034adb539 33d122be105fb43e; 30374ffc9b c597f56c cbb2f294b38766fc69f6a9 f2c0945ffd505003cc0cae9ce021a5f1fa4ffa91544485f1a1258b2b9b8f0911e3 9895b89d611def800949f45f4e61129a3722df9b15f37afca829d4fc08266acf57 7ac2cc22e1d5568d; 2d65cc1770 a18cbfe6effd1f f6778554acf1270485b203a3c1c4c967c0a458 cb948bdd409b687fa3a6827b480aa3a4c84cef64f6c9b53bf8f957f4b0 bb5e83aa69b5356dceec0fe74656f2e4399e12c85e09dd2f8fb609c72a 2b642aa6511caace; 3cf43e89957f9a3e8128f8743d16687b7bb8deb9bd205b "" "" "" "" 991808a4cd53e573; 70e04c091d205cdad9e9a79b1abf91b0851e5ca605ac84 51 "" "" "" 12bc329cc3ff10a9; 399587011677508a15dde524af3e2bee0646541a42c2ec "" cc "" "" 7ebd5d67b3fed4e4; b44d65bad397abfaf529ee41cf9a05c7efedef3401539c "" "" 51 1e 6b6575eab9424e98; d2a90bbf7f1bfc338ab0ef5746ea8fdcccd213e33f7e8a 5718fd25014107c8 e7d715a92add9589d1f5c054b2d983514605ec590294a319 b9802068a9f891bc5ba5afabf8c3122d12d7ff3c41122d70 4c86b78d99617ef3a0e2ba3306379b71221b44b4f53f5526 7cb8282ea97b3894; d17d4569eaff59a332ba58d5d5589bfe079753ee1a957e b6d6699e 6b7ea2725cb2dac07ecde9 5759ac46fee6dda7abc8ad68daac90cfe22d2f1f2968cc42fa8b669ed3bb3542a9 9001bbc3c0a5c6447968b8eec61f2e49ca7129b0560ea49201d997d682bc36984f 0c14462ce512a43d; cf44bbc8c6254d980398bd94e66eb4563d405e51881e99 027b8ab9aea3cc f860b0009740763d96836c5f87b95460938de1 288c69d80ea12ff4bb5f069b8a2e86041c1b9fc214e9ca2186ddf1f6a7 3bf9da6973a8dc56cebcb99962a74dc8638d11f4cb1d932162cd63136e ff4072c9c5180f17; }