symm/ocb3.h, symm/ocb3-def.h: Implement the OCB3 auth'ned encryption mode.
[catacomb] / symm / t / rijndael.local
index 9a1d2e6..e9517f1 100644 (file)
@@ -1639,3 +1639,308 @@ rijndael-ocb2 {
     f75d6bc8b4dc8d66b836a2b08b32a6369f1cd3c5228d79fd6c267f5f6aa7b231c7dfb9d59951ae9c
     65a92715a028acd4ae6aff4bfaa0d396;
 }
+
+rijndael-ocb3 {
+  ## Taken from RFC7253.
+
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221100
+    ""
+    ""
+    ""
+    785407bfffc8ad9edcc5520ac9111ee6;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221101
+    0001020304050607
+    0001020304050607
+    6820b3657b6f615a
+    5725bda0d3b4eb3a257c9af1f8f03009;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221102
+    0001020304050607
+    ""
+    ""
+    81017f8203f081277152fade694a0a00;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221103
+    ""
+    0001020304050607
+    45dd69f8f5aae724
+    14054cd1f35d82760b2cd00d2f99bfa9;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221104
+    000102030405060708090a0b0c0d0e0f
+    000102030405060708090a0b0c0d0e0f
+    571d535b60b277188be5147170a9a22c
+    3ad7a4ff3835b8c5701c1ccec8fc3358;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221105
+    000102030405060708090a0b0c0d0e0f
+    ""
+    ""
+    8cf761b6902ef764462ad86498ca6b97;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221106
+    ""
+    000102030405060708090a0b0c0d0e0f
+    5ce88ec2e0692706a915c00aeb8b2396
+    f40e1c743f52436bdf06d8fa1eca343d;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221107
+    000102030405060708090a0b0c0d0e0f1011121314151617
+    000102030405060708090a0b0c0d0e0f1011121314151617
+    1ca2207308c87c010756104d8840ce1952f09673a448a122
+    c92c62241051f57356d7f3c90bb0e07f;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221108
+    000102030405060708090a0b0c0d0e0f1011121314151617
+    ""
+    ""
+    6dc225a071fc1b9f7c69f93b0f1e10de;
+  000102030405060708090a0b0c0d0e0f
+    bbaa99887766554433221109
+    ""
+    000102030405060708090a0b0c0d0e0f1011121314151617
+    221bd0de7fa6fe993eccd769460a0af2d6cded0c395b1c3c
+    e725f32494b9f914d85c0b1eb38357ff;
+  000102030405060708090a0b0c0d0e0f
+    bbaa9988776655443322110a
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+    bd6f6c496201c69296c11efd138a467abd3c707924b964deaffc40319af5a485
+    40fbba186c5553c68ad9f592a79a4240;
+  000102030405060708090a0b0c0d0e0f
+    bbaa9988776655443322110b
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+    ""
+    ""
+    fe80690bee8a485d11f32965bc9d2a32;
+  000102030405060708090a0b0c0d0e0f
+    bbaa9988776655443322110c
+    ""
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+    2942bfc773bda23cabc6acfd9bfd5835bd300f0973792ef46040c53f1432bcdf
+    b5e1dde3bc18a5f840b52e653444d5df;
+  000102030405060708090a0b0c0d0e0f
+    bbaa9988776655443322110d
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627
+    d5ca91748410c1751ff8a2f618255b68a0a12e093ff454606e59f9c1d0ddc54b65e8628e568bad7a
+    ed07ba06a4a69483a7035490c5769e60;
+  000102030405060708090a0b0c0d0e0f
+    bbaa9988776655443322110e
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627
+    ""
+    ""
+    c5cd9d1850c141e358649994ee701b68;
+  000102030405060708090a0b0c0d0e0f
+    bbaa9988776655443322110f
+    ""
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627
+    4412923493c57d5de0d700f753cce0d1d2d95060122e9f15a5ddbfc5787e50b5cc55ee507bcb084e
+    479ad363ac366b95a98ca5f3000b1479;
+
+  0f0e0d0c0b0a09080706050403020100
+    bbaa9988776655443322110d
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627
+    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627
+    1792a4e31e0755fb03e31b22116e6c2ddf9efd6e33d536f1a0124b0a55bae884ed93481529c76b6a
+    d0c515f4d1cdd4fdac4f02aa;
+
+  ## More tests, made with the toy Python implementation.
+  60d7bcda163547d348b7551195e77022
+    907dd1dff7dac5c9941d26d0c6eb
+    ""
+    ""
+    ""
+    7d2702e740fddada3e57a788402f9d44;
+  14ad568f86edd1dc9268eeee533285a6
+    ed810c9b689daaa9060d2d4b6003
+    06
+    ""
+    ""
+    c129582b8bd54dd2e80592f467112495;
+  2365b0a54364c76c160f11896c479484
+    6ecfa14a7130c9f137120634c951
+    ""
+    98
+    8e
+    27a9a3f75d1f36a156c714d820d0b3ed;
+  48a877ff77bf79192a5b50ade5d9cd73
+    9a3d1f337f29549e6b0d27
+    ""
+    a4ba234085406a6136512061f7080cc07df0591d8fa21f2dd88374d8cde8e160ad10997a21635c6d62c9269029df3e60
+    fb544221d7bde1ec31564a9580440c902d76a7df1eff12955d17995e9bfe2336d4c2eeb42a6656dd37200ce5ff9cabfe
+    0f9ff860aba97bfab2845af16558883f;
+  57acc87638f508046733d9ff61cdbda3
+    b3e9878731ebfedd4705e505da
+    1435dceaa7b1cc49ae1d50c38201a894476b3f102b752eb9529533966f27043eb621b7f65b000961040ef2f9b2fc5fa4
+    50727a9b542cde52ebfda19d0ccc520f215eb57bb3a4f3ebbbb18ac6c95a97a48030370c33d090c54215abd6b3ad54ef
+    08584d252daf79311ca8d694e33e04711f723c890a222e7ce75ff2842e87e39d714934e8c6dc3640ffc5cdad1634063c
+    679f104fe67c507aec33a0e15b589bc2;
+  c9a38378c5b93bf4f2aad2605faee2b0
+    3fb648e27fff63102758fe2b69ac
+    ""
+    26afa3349829b94586306fed54154f8f28523c03d4de1600157846b710ee72807a2219bfb474fd71d891f24bb65d1563259f9eb53b
+    63c2bf2254c696b288b0f41fb5b44bdf45914dce25d0071438069dbff337bc844506e5a47a28c700500280c08c54a5e4b43118ce36
+    b9fde958caee8ea9cdbe8425ddb382ad;
+  571ea629c54d57dd2d42f70800df9fcb
+    aca48b77dba189196d1ebba10b04
+    67cb9fc2712a199e533fa9156308cdec3f768281e040a9b9a222bd689aef66f5306ceb0c6b08ac8b0a2226
+    0c571b4a42bb8fdb233bfa6a5cfb0bad7d95214ade49cb3b6f5fe8368131115c037ba323fe1dc8151784873f0eb5b647da6794c18b
+    a459d6659d827b523dabbc0a66cf8c151764b24a59199a6d8e4a161ace110c683dee759f823be08f0538fce282d036d2c7653ecb91
+    63bec719103775440457715faa831368;
+  5337685a96ed65b9aca338527ef19b09c063c46f
+    88de9fd41e72d7b97e23e6eabdff
+    ""
+    ""
+    ""
+    cc2b3f40254925c2e221259c3b6e8df2;
+  3bcd211499268878dbf30f1dad89d4b9b12012e4
+    713df46795630e7952d22bb02d71
+    00
+    ""
+    ""
+    272e89e7297e08da41d775d62b336e80;
+  b8b649377d20a8f083455b663e4ee1315f3c8f2a
+    ebfa921451dcd1af5813b70d30ce
+    ""
+    2f
+    cd
+    3c1a46e21f59810999d3ef51f0460322;
+  1fef6ef315d0798391805da08da3aefc5f8584b7
+    c5e617669c0f16e39815d4
+    ""
+    e9cfce3ed1ecdf3d264a7f16cb16c2e815f422cdf0c8e30308be3c31e6bc58c0b7cadcb658b970e47479a684b5aefa69
+    b75d269e9b2a080fd4d34bf0f8e7007e289b3f84ae1b8b6635fe27c5121605f12ab038a2fdfe7e29128beb944fe01b4f
+    0e98f9a81eb34cde7f67bf40e05b6058;
+  a4cd52147ed12ca986981a874498ad0abef8bc4f
+    cb70e27e98ef1f0446b42fb144
+    d44b6d00f06dc188d472a784e0c6f21195a3b9f4ae985511265febd11c164720eef9eb1c8dd0b00951f284649016ed00
+    456331854bc78bf43966eb0cfa9138ddc39908445608fe95e81c2533e31c9c1a9851bc2810d858cbbc8424d126b807e6
+    a4b540f15bcf54450c71860ffb180accc2b9218e4780a80b11cda67f1c38c8a9a8b0c5d42b243c5007b1832868dc1212
+    9fdcf861176e933b53461b27aa00e837;
+  daa089c3f9099c5ffb824173d7634c04226f30cb
+    b7f0e4a973a8cd190107314717a7
+    ""
+    7456f3ff669c732b58db8f48af65f7cc9e3fb90e1721b730374ffc9bc597f56ccbb2f294b38766fc69f6a9f2c0945ffd505003cc0c
+    9897c9d1b74b1f19e984b37cfb2823670e662d5b26bc7216a174fe2bdc87b7ae8e76f57b71cf8ef83d9f7da96a5f470d6b29b62f06
+    cf1f7c7135e2f593a2b66800fbf07ee8;
+  ae9ce021a5f1fa4ffa91544485f1a1258b2b9b8f
+    0911e32d65cc1770a18cbfe6effd
+    1ff6778554acf1270485b203a3c1c4c967c0a458cb948bdd409b687fa3a6827b480aa3a4c84cef64f6c9b5
+    3bf8f957f4b03cf43e89957f9a3e8128f8743d16687b7bb8deb9bd205b70e04c091d205cdad9e9a79b1abf91b0851e5ca605ac8451
+    7df3a815613704e6db80308c5e5161430a724f4a11dee60f9b0519f96f29c8c6fcf91443f230d7ee8fd8206e0c71161e9d770d5586
+    e54a174b4a61d1ee1faffa2dd7a59f70;
+  399587011677508a15dde524af3e2bee0646541a42c2ecccb44d65ba
+    d397abfaf529ee41cf9a05c7efed
+    ""
+    ""
+    ""
+    74e3172048a0aed02ad958e79920884b;
+  ef3401539c51d2a90bbf7f1bfc338ab0ef5746ea8fdcccd213e33f7e
+    8a5718fd25014107c8e7d715a92a
+    dd
+    ""
+    ""
+    148ca2d47df2264f1aba1b2b374aad1a;
+  9589d1f5c054b2d983514605ec590294a319b9802068a9f891bc5ba5
+    afabf8c3122d12d7ff3c41122d70
+    ""
+    d1
+    f5
+    4c185af3fa049730ff516d35fbda064d;
+  7d4569eaff59a332ba58d5d5589bfe079753ee1a957eb6d6699e6b7e
+    a2725cb2dac07ecde95759
+    ""
+    ac46fee6dda7abc8ad68daac90cfe22d2f1f2968cc42fa8b669ed3bb3542a9cf44bbc8c6254d980398bd94e66eb4563d
+    64e99a93b20ce72c4e9da3b335e722e85aeb922ace51720c32f4edb402571244d7d1e4f3d2bae1baa06da5ec6d7368ec
+    bd4509f46b03609bd11124376731fa19;
+  405e51881e99027b8ab9aea3ccf860b0009740763d96836c5f87b954
+    60938de1288c69d80ea12ff4bb
+    5f069b8a2e86041c1b9fc214e9ca2186ddf1f6a7a3aa7e740da967828e3604b35b15ffaa6c36800d9645563a308ba600
+    76817523bd2abf1261b089d8f23a9c2835076a23faac2cdd67771cc667a8331f0a170b66283e4f834a06148f302c3973
+    ede69717cc474d94579f3aa442ecb523504280aa8dfb5604e81f8f18c5aee67140400e27ee7aa624cc3d2f8bd8eb1dc8
+    e3472e0b88ee37919d72e8a29553274d;
+  accd56f6f24e33958b8c2e2352fd61e4fa8fec816ac861a8b33779f0
+    9e7a10fc02a8f48afa3080ee119a
+    ""
+    52a9a817e4f2b94b0820cab383a8cffeea7c486315799dc875fba578c8ec4837898a92142b5b0677da1ac273117b45bcfff5d5f8b6
+    6ea42fed3a9e40ae5bd32e3513e027f791595675af5e77e0044070af2ce0ca4e1facf77f6b7f0c16b2c3c528343a9c7c6d1352517e
+    476ce6884dfa2a97ce67aafcc3375ea6;
+  fde2893232a9f81d14517ffae475f6b94a43a67b3d380d2f9aaafe2d
+    d721c0095c8808847689211450ba
+    8095ffab1eaadf66fd22ac1976063e113ab61f813e28a1397a7974a1d7f4220c785fe426a5a0e80f678d40
+    4147842941feeffdc2eb44dc8c0d5e8f444f7f4e0c893959b74dc23a7bb40e7e0013e5150686d2301b43a15a84e81d7f5cedaa49e2
+    17fa00469b04d4b9563e87be4bd5f9cffd0238adb9ee98938dabb0528e0fa95fc3cf499e67d4d19606242736d8e776bd5357a0d48c
+    c8ef4f4fccad46f7fb55786818991586;
+  414ebf47970e560475cff206
+    877de69146acc3ab6cf8556b7aa7
+    ""
+    ""
+    ""
+    17c75f5f7d6d099a7d375b9ea6ee9fc6;
+  76945948d1b8834df2196c92
+    ec1718dcdeee0d52d9539726d281
+    03
+    ""
+    ""
+    2abbc7c4cac1b870f9e8a92f00f1f2f9;
+  91b3f9d10c39b07ae8f08ce7
+    cee4758a386a9943e97dedfbe61e
+    ""
+    73
+    f4
+    8ab448b5400b1a46c7c5e20ef9700e22;
+  7882cd09c2b9a80f34c0fde1
+    1c2481b11fc76bfa4dbf71
+    ""
+    0a9e544e0c536ca1e040f9ad5b04140d98edabe08485290a4d87d13b07398a1458c2c6b61dbdbc1cccada8c1a0a9aabb
+    7c8660ca8ca219cd98abe715c166df757edad193c7d1a6f9227d7633b1666bd34c86f6df7819a80903e5c37ffc5e0648
+    27c846118776e3626f15532888d3f887;
+  6c4e3c3554f8fb1ef61614c2
+    70295dfc0ca6551ca4bdb75359
+    f91cb9d921056b7de74fc9a9b37154ce6c0b396179d31f06a1dd5982cbc0d7cb23841da1ae8f4ae480cda98ad6cf2bac
+    f6f9fd3f821330c43f3df6c2b3fac7cbcf96523d4723f91801325eb8553236651c96788d73d192ee53b3f3ebd66ddd98
+    9c912ef9d07d26881c823aecb92e81cc988fbdd1292d49ae9cddc5c1fa5e1a618c96e71c64866481926bc83c1c2ec172
+    b7f45c7b104609fc3be061ebb388ee13;
+  cedbe88e245de25b1593b70f
+    8601562d90a9b59ed034a867642d
+    ""
+    25d54756fa5c47f16f64b837bb4926214211a1c696ba172010abb433922a22d9fd881519165eb9d85197a21cc34ac0d5ae7be8dbf9
+    00bfa16e1410e13d46752a90f40b6d9f6193cf06930ecb55abd2f973b710fa0582b30f87e5edc850a652def300f06da79231471399
+    b8858413846d2de7fa4654376b1b9f1f;
+  8e4ffed2cf6b1372a5aa47b5
+    4fd9d70c70e117bf1cae71b3a56f
+    0e7d839ea59cc783443d64f2ed6a29b96856beca34fd6544bcf86b799e2a1681160ccf055f0fd3001da597
+    a1406d465b7b1419ea51cf858f938f6daafbd656445a09898eaa96ffc3d1d2e31e4e34c94b8bfae64825ecd75a66d88eedb969ffe0
+    9cadbe9441f1705005b73f4e5b1675fc77390306e768a3f599a8fb11846ec535f0fa52e88120d3409912c342401b16a395784c6dcc
+    44773033baea19b7a13cfe0f67d9da85;  
+}
+
+rijndael-ocb3-mct {
+  32 d90eb8e9c977c88b79dd793d7ffa161c;
+  28 a3c8ceaa94b405effc970e05f15fa2ff;
+  24 f673f2c3e7174aae7bae986ca9f29e17;
+  20 c8bc484858c5b1bc9e4241e2f552b371;
+  16 67e944d23256c5e0b6c61fa22fdf1ea2;
+  12 2e9806312d331fe78476fe88afb74763;
+   8 2cfce691258f4d0300c220a6ef4d0a81;
+   4 5d36742a2f065dc845789585f81f052f;
+  32 5458359ac23b0cba9e6330dd;
+  28 a14417b0bad703c8d1eccd2e;
+  24 05d56ead2752c86be6932c5e;
+  20 a61001205f451947258a950d;
+  16 77a3d8e73589158d25d01209;
+  12 6a32e20692f16b31a51cff6d;
+   8 211b29176d56d0528fd70c9f;
+   4 db638b2ddc074fe1ec1056d3;
+  32 7d4ea5d445501cbe;
+  28 94d6f38a6bcf4fa0;
+  24 0066bc6e0ef34e24;
+  20 1a583bc011e8a4fc;
+  16 192c9b7bd90ba06a;
+  12 385bcd58e8387991;
+   8 2fb22e566436473d;
+   4 c00b55e9a2bed310;
+}