aboutsummaryrefslogtreecommitdiffstats
path: root/doc/examples/eax_test.cpp
diff options
context:
space:
mode:
authorlloyd <[email protected]>2008-09-27 21:01:18 +0000
committerlloyd <[email protected]>2008-09-27 21:01:18 +0000
commitb841401e095cfc1aa0708689d7920eb95ece71af (patch)
treefa71c88f55a99e9795c9b4bb8c48c774535c354f /doc/examples/eax_test.cpp
parentcd454fe2d01b5260edfa96f3ff8430ef2accb7c3 (diff)
Add comment explaining why EAX tests for XTEA, Skipjack, and Noekeon
are not run (the implementations in LTC are incompatible with the ones in Botan, mostly due to endian differences in underspecified algorithms). The DES, 3DES, AES, Twofish, Blowfish, RC2, RC5, RC6, and SAFER-SK tests of EAX mode from LTC all pass.
Diffstat (limited to 'doc/examples/eax_test.cpp')
-rw-r--r--doc/examples/eax_test.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/doc/examples/eax_test.cpp b/doc/examples/eax_test.cpp
index 2e0790257..b69aec5e9 100644
--- a/doc/examples/eax_test.cpp
+++ b/doc/examples/eax_test.cpp
@@ -120,9 +120,6 @@ std::pair<std::string, int> translate_algo(const std::string& in)
if(in == "blowfish (8 byte key)")
return std::make_pair("Blowfish", 8);
- if(in == "xtea (16 byte key)xxx")
- return std::make_pair("XTEA", 16);
-
if(in == "rc2 (8 byte key)")
return std::make_pair("RC2", 8);
@@ -144,12 +141,28 @@ std::pair<std::string, int> translate_algo(const std::string& in)
if(in == "3des (24 byte key)")
return std::make_pair("TripleDES", 24);
- if(in == "noekeon (16 byte key)xxx")
- return std::make_pair("Noekeon", 16);
+ // These 3 are disabled due to differences in base algorithm.
+
+#if 0
+ // XTEA: LTC uses little endian, Botan (and Crypto++) use big-endian
+ // I swapped to LE in XTEA and the vectors did match
+ if(in == "xtea (16 byte key)")
+ return std::make_pair("XTEA", 16);
- if(in == "skipjack (10 byte key)xxx")
+ // Skipjack: LTC uses big-endian, Botan (and Crypto++) use
+ // little-endian I am not sure if that was the full difference
+ // though, was unable to replicate LTC's EAX vectors with Skipjack
+ if(in == "skipjack (10 byte key)")
return std::make_pair("Skipjack", 10);
+ // Noekeon: unknown cause, though LTC's lone test vector does not
+ // match Botan
+
+ if(in == "noekeon (16 byte key)")
+ return std::make_pair("Noekeon", 16);
+
+#endif
+
return std::make_pair("", 0);
}