aboutsummaryrefslogtreecommitdiff
path: root/java/com/google/security/wycheproof/testcases/AesEaxTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/google/security/wycheproof/testcases/AesEaxTest.java')
-rw-r--r--java/com/google/security/wycheproof/testcases/AesEaxTest.java143
1 files changed, 80 insertions, 63 deletions
diff --git a/java/com/google/security/wycheproof/testcases/AesEaxTest.java b/java/com/google/security/wycheproof/testcases/AesEaxTest.java
index a40f1cc..3237afa 100644
--- a/java/com/google/security/wycheproof/testcases/AesEaxTest.java
+++ b/java/com/google/security/wycheproof/testcases/AesEaxTest.java
@@ -16,10 +16,9 @@
// TODO(bleichen):
// - So far only 16 byte tags are tested.
-// Tested providers:
-// BC : ok
-// BC uses a 64-bit default for tags. This is not such a big
-// problem as with AES-GCM, since the tag gives 64 bit strength.
+// - default values: BC uses a 64-bit default for tags.
+// Tag size is not such a big problem as with AES-GCM,
+// since a 64 bit tag gives 64 bit strength for AES-EAX.
package com.google.security.wycheproof;
@@ -48,10 +47,9 @@ public class AesEaxTest extends TestCase {
this.aad = TestUtil.hexToBytes(aad);
this.ct = TestUtil.hexToBytes(ciphertext);
this.ctHex = ciphertext;
- // Ugly hack from
- // https://github.com/bcgit/bc-java/blob/master/prov/src/test/java/org/bouncycastle/jce/provider/test/AEADTest.java
- // Apparently, one way to specify the tag length is to use GCMParameterSpec.
- // BouncyCastle is using a 64-bit tag by default.
+ // BouncyCastle uses GCMParameterSpec to specify the parameters for EAX.
+ // This solution is a bit of a hack, but so far we don't know a better way to
+ // specify these parameters.
// So far all test vectors use a 128 bit tag.
this.parameters = new GCMParameterSpec(128, TestUtil.hexToBytes(nonce));
this.key = new SecretKeySpec(TestUtil.hexToBytes(keyMaterial), "AES");
@@ -59,72 +57,67 @@ public class AesEaxTest extends TestCase {
};
private static final EaxTestVector[] EAX_TEST_VECTOR = {
- // Test vectors from
- // http://csrc.nist.gov/groups/ST/toolkit/BCM/modes_development.html
- // TODO(bleichen): Check if we can include test cases from NIST and
- // republish.
new EaxTestVector(
"",
- "233952dee4d5ed5f9b9c6d6ff80ff478",
- "62ec67f9c3a4a407fcb2a8c49031a8b3",
- "6bfb914fd07eae6b",
- "e037830e8389f27b025a2d6527e79d01"),
+ "010511c5e24ee7097dca93272ebfae9e",
+ "93ad516bc6f7302b8edb884ca37f2e65",
+ "",
+ "12edfdb379ef62e845da3d17995b4a1e"),
new EaxTestVector(
- "f7fb",
- "91945d3f4dcbee0bf45ef52255f095a4",
- "becaf043b0a23d843194ba972c66debd",
- "fa3bfd4806eb53fa",
- "19dd5c4c9331049d0bdab0277408f67967e5"),
+ "",
+ "acf877a5aa71e794efd6dc82d5b1a155",
+ "4e301710ae15b2f0ee6335d774741f7e",
+ "c0e0f00a919b7652",
+ "eb3dae1fc33be95848da9fd24e7dbae3"),
new EaxTestVector(
- "1a47cb4933",
- "01f74ad64077f2e704c0f60ada3dd523",
- "70c3db4f0d26368400a10ed05d2bff5e",
- "234a3463c1264ac6",
- "d851d5bae03a59f238a23e39199dc9266626c40f80"),
+ "c3",
+ "95d8e3675bbc3b96befdc5efb7433a68",
+ "0d40fdefd9289e3a49114454b3c4a5f4",
+ "f2",
+ "c5814dfc2f4ee1719bd5f1d5a649174c1a"),
new EaxTestVector(
- "481c9e39b1",
- "d07cf6cbb7f313bdde66b727afd3c5e8",
- "8408dfff3c1a2b1292dc199e46b7d617",
- "33cce2eabff5a79d",
- "632a9d131ad4c168a4225d8e1ff755939974a7bede"),
+ "5810842d",
+ "2eed51af91b178b26e9b53c8877a7af6",
+ "e78747ca46cb9f2068e07717d5226e8a",
+ "",
+ "24245c5bb54aa8bfaceca3665867fa2d7de1653d"),
new EaxTestVector(
- "40d0c07da5e4",
- "35b6d0580005bbc12b0587124557d2c2",
- "fdb6b06676eedc5c61d74276e1f8e816",
- "aeb96eaebe2970e9",
- "071dfe16c675cb0677e536f73afe6a14b74ee49844dd"),
+ "5ae11bb3b7d60e55",
+ "cb782da180e97023530d1612e2287f0d",
+ "ba641ebe03057b387dd3132e0c7a3853",
+ "",
+ "f6f64fa858708b8f445812fd75a9639f635045fd5972b820"),
new EaxTestVector(
- "4de3b35c3fc039245bd1fb7d",
- "bd8e6e11475e60b268784c38c62feb22",
- "6eac5c93072d8e8513f750935e46da1b",
- "d4482d1ca78dce0f",
- "835bb4f15d743e350e728414abb8644fd6ccb86947c5e10590210a4f"),
+ "54332ed26cd966761710ea58a8f248",
+ "8b4457d52e5c04b38d306f8f38480e97",
+ "3f9d6faca5dd97eb1bc74e1954304cca",
+ "",
+ "3ebbf1fe11e2f454e0ef587fb42a7588e1e32ea788cae20d1700584f448814"),
new EaxTestVector(
- "8b0a79306c9ce7ed99dae4f87f8dd61636",
- "7c77d6e813bed5ac98baa417477a2e7d",
- "1a8c98dcd73d38393b2bf1569deefc19",
- "65d2017990d62528",
- "02083e3979da014812f59f11d52630da30137327d10649b0aa6e1c181db617d7" + "f2"),
+ "82ce1f2934dcafe9dee7e0e7cbfdfcd0",
+ "2892cf62d2cc0e8e9c796624e05920f5",
+ "8a0da6d1c4b7a4f426ad62f6829cc310",
+ "c3ed66484eb367c8",
+ "c374afaa42d9497326af332f42d2dee8fb478c82a2b2567b0ab9597c93f137cf"),
new EaxTestVector(
- "1bda122bce8a8dbaf1877d962b8592dd2d56",
- "5fff20cafab119ca2fc73549e20f5b0d",
- "dde59b97d722156d4d9aff2bc7559826",
- "54b9f04e6a09189a",
- "2ec47b2c4954a489afc7ba4897edcdae8cc33b60450599bd02c96382902aef7f" + "832a"),
+ "e0c993ff5d1d00b4cbee523a1df01db011794d54ab7a504c",
+ "463d89aadfa7d8158dcff9b9c3fc32aa",
+ "356ab4709b32fc85ff82f40561e9f08b",
+ "5ab01a3bfa141f8d33720bd1",
+ "d34bc706a9d7a2be6c2d8805cec2fac270ec6d17844b0911accb612cbb3b373438c74c1280445359"),
new EaxTestVector(
- "6cf36720872b8513f6eab1a8a44438d5ef11",
- "a4a4782bcffd3ec5e7ef6d8c34a56123",
- "b781fcf2f75fa5a8de97a9ca48e522ec",
- "899a175897561d7e",
- "0de18fd0fdd91e7af19f1d8ee8733938b1e8e7f6d2231618102fdb7fe55ff199" + "1700"),
+ "e9dfb2897e44236880baf166fa62fa5b8a4713aa981dbc3fe6cf65d9f0c30f47",
+ "54617abbeb90fff7095b26af0e596064",
+ "2621c97c4fe379d9d42f04c479ae1bac",
+ "b6b29c2fbe29dcd2",
+ "212263116062443db28d6abd2c3bca880ea4d178282247fffbc10532d40e9cea"
+ + "6f580fdaca33d446dd6f38a4425be844"),
new EaxTestVector(
- "ca40d7446e545ffaed3bd12a740a659ffbbb3ceab7",
- "8395fcf1e95bebd697bd010bc766aac3",
- "22e7add93cfc6393c57ec0b3c17d6b44",
- "126735fcc320d25a",
- "cb8920f87a6c75cff39627b56e3ed197c552d295a7cfc46afc253b4652b1af37" + "95b124ab6e"),
- // The tests are self generated.
- //
+ "7537f3e4cbe228468a7837c66aec8a9b6033cba4f1b3d8",
+ "7c74da83b1f292b869c891c80850e85f8237412e13a0bf3f",
+ "cfab2c573a0e723613e6e5b58787af60",
+ "",
+ "98a55f7db58fde8ed8bc00c01c97a6e5bda137b03e56e0dddfbe396c44a14646cbc89979f38736"),
// Some test vectors for counter overflow:
// Initial counter value == 2^128-1
new EaxTestVector(
@@ -203,12 +196,24 @@ public class AesEaxTest extends TestCase {
"",
"c472b1c6c22b4f2b7e02409499aa2ade"),
new EaxTestVector(
+ "",
+ "d33dda72649575e42d6eb1f3255e686084b8a9cf4480803c",
+ "ad2a1d2ef236dfaeb109ab29b1084d63",
+ "fb9c0938a5d317fad5f43edc",
+ "6edc358f22358e1d328c4c1cd98184c6"),
+ new EaxTestVector(
"abcdef",
"03dd258601c1d4872a52b27892db0356911b2df1436dc7f4",
"025f3d2286c143976412022102696708231208",
"8917328de211",
"520f4f2cf1b893ae3ba8ecbac3a08ea57de2cd"),
new EaxTestVector(
+ "4e43dbebe316b7d684b56236fdd928dd",
+ "a36eed1cb54130f547664c184c249e777a3d8ba2e2251b58",
+ "e9587847b1e81511e0643f7dda5b725c",
+ "80c7cb954463b6067b081ff66b1d40cc",
+ "e2645cd32a6e8c1e7cd1991d879b335756f848aba8e51f0b56712bb2889c4783"),
+ new EaxTestVector(
"1111111111111111111111111111111122222222222222222222222222222222",
"0172acf299142c001d0c231287c1182784554ca3a21908276ac2c92af1294612",
"000102030405060708090a0b0c0d0e0f1a1b1c1d",
@@ -229,6 +234,18 @@ public class AesEaxTest extends TestCase {
"8917328de211",
"12486c87bf9a7f22fa65a9493ec0f57f8070f5"),
new EaxTestVector(
+ "13d106d7be0890093f44a457d4cc5309",
+ "db50934278a8d8101d1c538acfbfaa13aba9fe53408b6205a0c996d53cf04e8d",
+ "eaef04607a36b2e1b1c539bc335aee9a",
+ "d50e7dbdcc7cf92822dd9dd762a0fc12",
+ "2202165697a2d21316c5f65d2aedb3c52b5567b3f8a25e247cfda1f02bc6cf6f"),
+ new EaxTestVector(
+ "17672288fff3e93a45b3b951bbcfa8a4cb",
+ "1cd28aca6542a4df7316b2c6e9232a4e2cc88cf7aaece33eec7da32ab514051f",
+ "d219298abb115ccbb473cf8e2da9671a",
+ "9c504ab2e5ce0f46844833aba6a11c9186e500239460bb26",
+ "aa518b62c5422e56ce393951aa0441e99df8cafb1555d5a30c90391bb9272c32b9"),
+ new EaxTestVector(
"1111111111111111111111111111111122222222222222222222222222222222",
"0172acf299142c001d0c231287c1182784554ca3a21908276ac2c92af1294612",
"000102030405060708090a0b0c0d0e0f1a1b1c1d",