symm/eax.h, symm/eax-def.h: Implement the EAX authenticated encryption mode.
[catacomb] / symm / t / rijndael.local
index 053a0d4..5f68b95 100644 (file)
@@ -92,3 +92,216 @@ rijndael-cmac {
     9c0f16e39815d4e9cfce3ed1ecdf3d264a7f16cb16c2e815f422cdf0c8e30308be3c31e6bc58c0b7cadcb6
     3a2d6cd3d65ba29059613d7e6b6e1278;
 }
+rijndael-eax {
+  ## From Mihir Bellare, Phillip Rogaway, David Wagner, `The EAX Mode of
+  ## Operation (A Two-Pass Authenticated-Encryption Scheme Optimized for
+  ## Simplicity and Efficiency)'.
+
+  233952dee4d5ed5f9b9c6d6ff80ff478
+    62ec67f9c3a4a407fcb2a8c49031a8b3
+    6bfb914fd07eae6b
+    ""
+    ""
+    e037830e8389f27b025a2d6527e79d01;
+  91945d3f4dcbee0bf45ef52255f095a4
+    becaf043b0a23d843194ba972c66debd
+    fa3bfd4806eb53fa
+    f7fb
+    19dd
+    5c4c9331049d0bdab0277408f67967e5;
+  01f74ad64077f2e704c0f60ada3dd523
+    70c3db4f0d26368400a10ed05d2bff5e
+    234a3463c1264ac6
+    1a47cb4933
+    d851d5bae0
+    3a59f238a23e39199dc9266626c40f80;
+  d07cf6cbb7f313bdde66b727afd3c5e8
+    8408dfff3c1a2b1292dc199e46b7d617
+    33cce2eabff5a79d
+    481c9e39b1
+    632a9d131a
+    d4c168a4225d8e1ff755939974a7bede;
+  35b6d0580005bbc12b0587124557d2c2
+    fdb6b06676eedc5c61d74276e1f8e816
+    aeb96eaebe2970e9
+    40d0c07da5e4
+    071dfe16c675
+    cb0677e536f73afe6a14b74ee49844dd;
+  bd8e6e11475e60b268784c38c62feb22
+    6eac5c93072d8e8513f750935e46da1b
+    d4482d1ca78dce0f
+    4de3b35c3fc039245bd1fb7d
+    835bb4f15d743e350e728414
+    abb8644fd6ccb86947c5e10590210a4f;
+  7c77d6e813bed5ac98baa417477a2e7d
+    1a8c98dcd73d38393b2bf1569deefc19
+    65d2017990d62528
+    8b0a79306c9ce7ed99dae4f87f8dd61636
+    02083e3979da014812f59f11d52630da30
+    137327d10649b0aa6e1c181db617d7f2;
+  5fff20cafab119ca2fc73549e20f5b0d
+    dde59b97d722156d4d9aff2bc7559826
+    54b9f04e6a09189a
+    1bda122bce8a8dbaf1877d962b8592dd2d56
+    2ec47b2c4954a489afc7ba4897edcdae8cc3
+    3b60450599bd02c96382902aef7f832a;
+  a4a4782bcffd3ec5e7ef6d8c34a56123
+    b781fcf2f75fa5a8de97a9ca48e522ec
+    899a175897561d7e
+    6cf36720872b8513f6eab1a8a44438d5ef11
+    0de18fd0fdd91e7af19f1d8ee8733938b1e8
+    e7f6d2231618102fdb7fe55ff1991700;
+  8395fcf1e95bebd697bd010bc766aac3
+    22e7add93cfc6393c57ec0b3c17d6b44
+    126735fcc320d25a
+    ca40d7446e545ffaed3bd12a740a659ffbbb3ceab7
+    cb8920f87a6c75cff39627b56e3ed197c552d295a7
+    cfc46afc253b4652b1af3795b124ab6e;
+
+  ## Some local tests for additional edge cases, generated using the toy
+  ## implementation in Python.
+  60d7bcda163547d348b7551195e77022
+    ""
+    ""
+    ""
+    ""
+    fc65784451ea97468ec025e17a709456;
+  907dd1dff7dac5c9941d26d0c6eb14ad
+    56
+    ""
+    ""
+    ""
+    d8da3364e510165ed5afd2aab762f5d2;
+  8f86edd1dc9268eeee533285a6ed810c
+    ""
+    9b
+    ""
+    ""
+    715b06133d886f3b8fb8fdfcadd0fa5c;
+  689daaa9060d2d4b6003062365b0a543
+    ""
+    ""
+    64
+    69
+    16c192d8633a39465ce18da2ce132233;
+  c76c160f11896c4794846ecfa14a7130
+    c9f137120634c9519848a877ff77bf79
+    192a5b50ade5d9cd739a3d1f337f29549e6b0d27a4ba234085406a6136512061f7080cc07df0591d8fa21f2dd88374d8
+    cde8e160ad10997a21635c6d62c9269029df3e6057acc87638f508046733d9ff61cdbda3b3e9878731ebfedd4705e505
+    963801ede08bd2b86a3c33cf18c27d98c7c22f14c08621651e6094e72bcbd4bbf38f5e20814d465daa9c5929b9f59375
+    180ad55fa758703dd6a4e345956705e5;
+  da1435dceaa7b1cc49ae1d50c38201a8
+    94476b3f102b752eb9529533966f27
+    043eb621b7f65b000961040ef2f9b2fc5fa450727a9b542cde52ebfda19d0ccc520f215eb57bb3a4f3ebbb
+    b18ac6c95a97a48030370c33d090c54215abd6b3ad54efc9a38378c5b93bf4f2aad2605faee2b03fb648e27fff63102758fe2b69ac
+    448792431ef5eb64efcfb2e6a9bb454d7ef09598ca4bc057d9cba969328ad75c05b7da7012e5ff1826dc3c981072fc9dce719cfffa
+    aeaa46b633b5c3ba7db2e404af2eb9a8;
+  26afa3349829b94586306fed54154f8f28523c03
+    ""
+    ""
+    ""
+    ""
+    d0a749a3ae472501971c7521066a5c14;
+  d4de1600157846b710ee72807a2219bfb474fd71
+    d8
+    ""
+    ""
+    ""
+    5998cfaef8d97abd4c8017aba424a845;
+  91f24bb65d1563259f9eb53b571ea629c54d57dd
+    ""
+    2d
+    ""
+    ""
+    7ecfd7cde12120a79d65622bd02993f8;
+  42f70800df9fcbaca48b77dba189196d1ebba10b
+    ""
+    ""
+    04
+    46
+    b4b2f22374e5416565ea5da09bd65726;
+  67cb9fc2712a199e533fa9156308cdec3f768281
+    e040a9b9a222bd689aef66f5306ceb0c
+    6b08ac8b0a22260c571b4a42bb8fdb233bfa6a5cfb0bad7d95214ade49cb3b6f5fe8368131115c037ba323fe1dc81517
+    84873f0eb5b647da6794c18b5337685a96ed65b9aca338527ef19b09c063c46f88de9fd41e72d7b97e23e6eabdff3bcd
+    78ebdb6a281df84204a58c3071a81ee62c604c4ff408d02ec9401bd284beba033e438279a8cf450bccc58ddb0480b0b1
+    8f3edaf96c1c577c99d506fa9bdd342c;
+  211499268878dbf30f1dad89d4b9b12012e4713d
+    f46795630e7952d22bb02d7100b8b6
+    49377d20a8f083455b663e4ee1315f3c8f2aebfa921451dcd1af5813b70d30ce2f1fef6ef315d079839180
+    5da08da3aefc5f8584b7c5e617669c0f16e39815d4e9cfce3ed1ecdf3d264a7f16cb16c2e815f422cdf0c8e30308be3c31e6bc58c0
+    b81e04dfef276af4992a4daacad70a724bd2bc5f857d739b82781dab188f6c172f1dc3390ab9226f6a286bf89e3fd198ee3e781db4
+    1096e8cbf9132840e22c4e9618a981c2;
+  b7cadcb658b970e47479a684b5aefa69a4cd52147ed12ca986981a87
+    ""
+    ""
+    ""
+    ""
+    8517441bde0b33302a5d73d756bbaea3;
+  4498ad0abef8bc4fcb70e27e98ef1f0446b42fb144d44b6d00f06dc1
+    88
+    ""
+    ""
+    ""
+    2703e5e0acbf6d762e635e66e599c7e7;
+  d472a784e0c6f21195a3b9f4ae985511265febd11c164720eef9eb1c
+    ""
+    8d
+    ""
+    ""
+    21ba7e9152f7a188a570a435a9118dd7;
+  d0b00951f284649016ed00456331854bc78bf43966eb0cfa9138ddc3
+    ""
+    ""
+    99
+    8f
+    19edae1a9f72c3ec1a95456a7602fbea;
+  08445608fe95e81c2533e31c9c1a9851bc2810d858cbbc8424d126b8
+    07e6daa089c3f9099c5ffb824173d763
+    4c04226f30cbb7f0e4a973a8cd190107314717a77456f3ff669c732b58db8f48af65f7cc9e3fb90e1721b730374ffc9b
+    c597f56ccbb2f294b38766fc69f6a9f2c0945ffd505003cc0cae9ce021a5f1fa4ffa91544485f1a1258b2b9b8f0911e3
+    7da2cbb1dbb96d57e6eae7f7463cdaf220f06e96bcce1303ef6c987de22fa64d62c89f8bef1676b6c9447b03575fce9a
+    83e41c3c033397193406be50be532022;
+  2d65cc1770a18cbfe6effd1ff6778554acf1270485b203a3c1c4c967
+    c0a458cb948bdd409b687fa3a6827b
+    480aa3a4c84cef64f6c9b53bf8f957f4b03cf43e89957f9a3e8128f8743d16687b7bb8deb9bd205b70e04c
+    091d205cdad9e9a79b1abf91b0851e5ca605ac8451399587011677508a15dde524af3e2bee0646541a42c2ecccb44d65bad397abfa
+    5c26f8ce44729fef7b23d7a08a6f770499d3efd779ec6975b549f418abdffc8a1fe5c279e41e3815b8667e96a4ad39aeef24bee42f
+    cd68c88ece3bead81778b31e8dbe34db;
+  f529ee41cf9a05c7efedef34
+    ""
+    ""
+    ""
+    ""
+    9fa09ea950f21cf235e494490111462f;
+  01539c51d2a90bbf7f1bfc33
+    8a
+    ""
+    ""
+    ""
+    b694f1a079840c1a5306fa86a0d4bba3;
+  b0ef5746ea8fdcccd213e33f
+    ""
+    7e
+    ""
+    ""
+    91c2e974c399c84bdff77b962441e1f3;
+  8a5718fd25014107c8e7d715
+    ""
+    ""
+    a9
+    14
+    279ad0e41ab70a6751f9fbd01030784e;
+  2add9589d1f5c054b2d98351
+    4605ec590294a319b9802068a9f891bc
+    5ba5afabf8c3122d12d7ff3c41122d70d17d4569eaff59a332ba58d5d5589bfe079753ee1a957eb6d6699e6b7ea2725c
+    b2dac07ecde95759ac46fee6dda7abc8ad68daac90cfe22d2f1f2968cc42fa8b669ed3bb3542a9cf44bbc8c6254d9803
+    cb3a052da8d3fc8c6e40de726ef40596a871d596df7b7c33b11467ba4ab39210df119a6e202267b44f86db3b4074c886
+    4ea05695bbf7f261c4e76415e3642945;
+  98bd94e66eb4563d405e5188
+    1e99027b8ab9aea3ccf860b0009740
+    763d96836c5f87b95460938de1288c69d80ea12ff4bb5f069b8a2e86041c1b9fc214e9ca2186ddf1f6a7a3
+    aa7e740da967828e3604b35b15ffaa6c36800d9645563a308ba60076817523bd2abf1261b089d8f23a9c2835076a23faac2cdd6777
+    03f7e555335edc0f776c210da68ddceda30e7b6d11f62aab60a17f443e6000c31ca8927b28791f8b5dcff245c82b63ebca8cdbeb9a
+    a860ca21635e5d2c1fa19d96a4c394fa;
+}