diff options
author | Jeffrey Walton <noloader@gmail.com> | 2018-10-26 03:13:06 -0400 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2018-10-26 03:13:06 -0400 |
commit | 8da2b91cbaf01640e6330e5dc6e858007da70945 (patch) | |
tree | 3e6b9bff02ac975c02e6bf820b88ea9d2713c0fa | |
parent | 76ab8ffa4b86710766dd1ba861deeccc261ffdcf (diff) | |
download | cryptopp-git-8da2b91cbaf01640e6330e5dc6e858007da70945.tar.gz |
Add ChaCha AlgorithmName override
-rw-r--r-- | bench2.cpp | 8 | ||||
-rw-r--r-- | chacha.cpp | 5 | ||||
-rw-r--r-- | chacha.h | 8 |
3 files changed, 17 insertions, 4 deletions
@@ -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");
@@ -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)
@@ -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;
|