From c2bd7a2f2f4d33fd33139d0e67424fd5078f41ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 24 Oct 2013 16:49:51 +0200 Subject: [PATCH] Add test vectors for Camellia-GCM via cipher layer --- tests/core | Bin 0 -> 389120 bytes tests/suites/test_suite_cipher.gcm.data | 60 ++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 tests/core diff --git a/tests/core b/tests/core new file mode 100644 index 0000000000000000000000000000000000000000..907ed046d243f3cb13709ce6203efe5c473fd66f GIT binary patch literal 389120 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