summaryrefslogtreecommitdiff
path: root/salsa.h
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2021-02-26 13:38:12 -0500
committerJeffrey Walton <noloader@gmail.com>2021-02-26 13:38:12 -0500
commit5cb57e1431dc3d0402042d588d067a061f7a573c (patch)
tree28e2f67835d2a803b90844b57cde2ddce0878d4e /salsa.h
parent546b1e78278680908b8ad137315f2f5009bed60f (diff)
downloadcryptopp-git-5cb57e1431dc3d0402042d588d067a061f7a573c.tar.gz
Update documentation
Diffstat (limited to 'salsa.h')
-rw-r--r--salsa.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/salsa.h b/salsa.h
index f421af20..1468d8c1 100644
--- a/salsa.h
+++ b/salsa.h
@@ -21,18 +21,20 @@ NAMESPACE_BEGIN(CryptoPP)
/// \param data the data to transform
/// \param rounds the number of rounds
/// \details Several algorithms, like CryptoBox and Scrypt, require access to
-/// the core Salsa20 transform. The current Crypto++ implementation does not
-/// lend itself to disgorging the Salsa20 cipher from the Salsa20 core transform.
-/// Instead Salsa20_Core is provided with customary accelerations.
+/// the core Salsa20 transform. The current Crypto++ implementation does not
+/// lend itself to disgorging the Salsa20 cipher from the Salsa20 core transform.
+/// Instead Salsa20_Core is provided with customary accelerations.
void Salsa20_Core(word32* data, unsigned int rounds);
/// \brief Salsa20 stream cipher information
+/// \since Crypto++ 5.4
struct Salsa20_Info : public VariableKeyLength<32, 16, 32, 16, SimpleKeyingInterface::UNIQUE_IV, 8>
{
static std::string StaticAlgorithmName() {return "Salsa20";}
};
/// \brief Salsa20 stream cipher operation
+/// \since Crypto++ 5.4
class CRYPTOPP_NO_VTABLE Salsa20_Policy : public AdditiveCipherConcretePolicy<word32, 16>
{
protected:
@@ -57,7 +59,11 @@ protected:
/// \brief Salsa20 stream cipher
/// \details Salsa20 provides a variable number of rounds: 8, 12 or 20. The default number of rounds is 20.
-/// \sa <a href="http://www.cryptolounge.org/wiki/XSalsa20">XSalsa20</a>
+/// \sa <A HREF="https://cr.yp.to/snuffle/salsafamily-20071225.pdf">The Salsa20
+/// family of stream ciphers (20071225)</A>,
+/// <A HREF="https://cr.yp.to/snuffle.html">Snuffle 2005: the Salsa20 encryption
+/// function</A> and <A HREF="https://www.cryptopp.com/wiki/Salsa20">Salsa20</A>
+/// \since Crypto++ 5.4
struct Salsa20 : public Salsa20_Info, public SymmetricCipherDocumentation
{
typedef SymmetricCipherFinal<ConcretePolicyHolder<Salsa20_Policy, AdditiveCipherTemplate<> >, Salsa20_Info> Encryption;
@@ -65,12 +71,14 @@ struct Salsa20 : public Salsa20_Info, public SymmetricCipherDocumentation
};
/// \brief XSalsa20 stream cipher information
+/// \since Crypto++ 5.4
struct XSalsa20_Info : public FixedKeyLength<32, SimpleKeyingInterface::UNIQUE_IV, 24>
{
static std::string StaticAlgorithmName() {return "XSalsa20";}
};
/// \brief XSalsa20 stream cipher operation
+/// \since Crypto++ 5.4
class CRYPTOPP_NO_VTABLE XSalsa20_Policy : public Salsa20_Policy
{
public:
@@ -84,6 +92,7 @@ protected:
/// \brief XSalsa20 stream cipher
/// \details XSalsa20 provides a variable number of rounds: 8, 12 or 20. The default number of rounds is 20.
/// \sa <a href="http://www.cryptolounge.org/wiki/XSalsa20">XSalsa20</a>
+/// \since Crypto++ 5.4
struct XSalsa20 : public XSalsa20_Info, public SymmetricCipherDocumentation
{
typedef SymmetricCipherFinal<ConcretePolicyHolder<XSalsa20_Policy, AdditiveCipherTemplate<> >, XSalsa20_Info> Encryption;