3 #ifndef CRYPTOPP_SALSA_H
4 #define CRYPTOPP_SALSA_H
8 NAMESPACE_BEGIN(CryptoPP)
13 static const char *StaticAlgorithmName() {
return "Salsa20";}
19 void CipherSetKey(
const NameValuePairs ¶ms,
const byte *key,
size_t length);
20 void OperateKeystream(KeystreamOperation operation, byte *output,
const byte *input,
size_t iterationCount);
21 void CipherResynchronize(byte *keystreamBuffer,
const byte *IV,
size_t length);
22 bool CipherIsRandomAccess()
const {
return true;}
23 void SeekToIteration(lword iterationCount);
24 #if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X64
25 unsigned int GetAlignment()
const;
26 unsigned int GetOptimalBlockSize()
const;
43 static const char *StaticAlgorithmName() {
return "XSalsa20";}
49 void CipherSetKey(
const NameValuePairs ¶ms,
const byte *key,
size_t length);
50 void CipherResynchronize(byte *keystreamBuffer,
const byte *IV,
size_t length);
to be inherited by keyed algorithms with fixed key length
XSalsa20, variable rounds: 8, 12 or 20 (default 20)
keying interface for crypto algorithms that take byte strings as keys
support query of variable key length, template parameters are default, min, max, multiple (default mu...
Each class derived from this one defines two types, Encryption and Decryption, both of which implemen...
Salsa20, variable rounds: 8, 12 or 20 (default 20)
interface for retrieving values given their names