summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2018-10-26 03:13:06 -0400
committerJeffrey Walton <noloader@gmail.com>2018-10-26 03:13:06 -0400
commit8da2b91cbaf01640e6330e5dc6e858007da70945 (patch)
tree3e6b9bff02ac975c02e6bf820b88ea9d2713c0fa
parent76ab8ffa4b86710766dd1ba861deeccc261ffdcf (diff)
downloadcryptopp-git-8da2b91cbaf01640e6330e5dc6e858007da70945.tar.gz
Add ChaCha AlgorithmName override
-rw-r--r--bench2.cpp8
-rw-r--r--chacha.cpp5
-rw-r--r--chacha.h8
3 files changed, 17 insertions, 4 deletions
diff --git a/bench2.cpp b/bench2.cpp
index 9371cd01..38da6224 100644
--- a/bench2.cpp
+++ b/bench2.cpp
@@ -135,12 +135,12 @@ void Benchmark2(double t, double hertz)
{
BenchMarkByName<SymmetricCipher>("Panama-LE");
BenchMarkByName<SymmetricCipher>("Panama-BE");
- BenchMarkByName<SymmetricCipher>("Salsa20");
+ BenchMarkByName<SymmetricCipher>("Salsa20", 0, "Salsa20");
BenchMarkByName<SymmetricCipher>("Salsa20", 0, "Salsa20/12", MakeParameters(Name::Rounds(), 12));
BenchMarkByName<SymmetricCipher>("Salsa20", 0, "Salsa20/8", MakeParameters(Name::Rounds(), 8));
- BenchMarkByName<SymmetricCipher>("ChaCha");
- BenchMarkByName<SymmetricCipher>("ChaCha", 0, "ChaCha/12", MakeParameters(Name::Rounds(), 12));
- BenchMarkByName<SymmetricCipher>("ChaCha", 0, "ChaCha/8", MakeParameters(Name::Rounds(), 8));
+ BenchMarkByName<SymmetricCipher>("ChaCha", 0, "ChaCha20");
+ BenchMarkByName<SymmetricCipher>("ChaCha", 0, "ChaCha12", MakeParameters(Name::Rounds(), 12));
+ BenchMarkByName<SymmetricCipher>("ChaCha", 0, "ChaCha8", MakeParameters(Name::Rounds(), 8));
BenchMarkByName<SymmetricCipher>("Sosemanuk");
BenchMarkByName<SymmetricCipher>("Rabbit");
BenchMarkByName<SymmetricCipher>("RabbitWithIV");
diff --git a/chacha.cpp b/chacha.cpp
index 9a5aedfc..723f37f2 100644
--- a/chacha.cpp
+++ b/chacha.cpp
@@ -32,6 +32,11 @@ void ChaCha_TestInstantiations()
}
#endif
+std::string ChaCha_Policy::AlgorithmName() const
+{
+ return std::string("ChaCha")+IntToString(m_rounds);
+}
+
std::string ChaCha_Policy::AlgorithmProvider() const
{
#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE || CRYPTOPP_SSE2_ASM_AVAILABLE)
diff --git a/chacha.h b/chacha.h
index e7ec2cb2..50d33d09 100644
--- a/chacha.h
+++ b/chacha.h
@@ -22,6 +22,13 @@ NAMESPACE_BEGIN(CryptoPP)
/// \since Crypto++ 5.6.4
struct ChaCha_Info : public VariableKeyLength<32, 16, 32, 16, SimpleKeyingInterface::UNIQUE_IV, 8>
{
+ /// \brief The algorithm name
+ /// \returns the algorithm name
+ /// \details StaticAlgorithmName returns the algorithm's name as a static
+ /// member function.
+ /// \details Bernstein named the cipher variants ChaCha8, ChaCha12 and
+ /// ChaCha20. More generally, Bernstein called the family ChaCha{r}.
+ /// AlgorithmName() provides the exact name once rounds are set.
static const char* StaticAlgorithmName() {
return "ChaCha";
}
@@ -40,6 +47,7 @@ protected:
unsigned int GetAlignment() const;
unsigned int GetOptimalBlockSize() const;
+ std::string AlgorithmName() const;
std::string AlgorithmProvider() const;
FixedSizeAlignedSecBlock<word32, 16> m_state;