Crypto++
sosemanuk.h
1 #ifndef CRYPTOPP_SOSEMANUK_H
2 #define CRYPTOPP_SOSEMANUK_H
3 
4 #include "strciphr.h"
5 
6 NAMESPACE_BEGIN(CryptoPP)
7 
8 //! algorithm info
9 struct SosemanukInfo : public VariableKeyLength<16, 1, 32, 1, SimpleKeyingInterface::UNIQUE_IV, 16>
10 {
11  static const char * StaticAlgorithmName() {return "Sosemanuk";}
12 };
13 
14 //! _
16 {
17 protected:
18  void CipherSetKey(const NameValuePairs &params, const byte *key, size_t length);
19  void OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount);
20  void CipherResynchronize(byte *keystreamBuffer, const byte *iv, size_t length);
21  bool CipherIsRandomAccess() const {return false;}
22 #if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X64
23  unsigned int GetAlignment() const;
24  unsigned int GetOptimalBlockSize() const;
25 #endif
26 
29 };
30 
31 //! <a href="http://www.cryptolounge.org/wiki/Sosemanuk">Sosemanuk</a>
33 {
35  typedef Encryption Decryption;
36 };
37 
38 NAMESPACE_END
39 
40 #endif
Sosemanuk
Definition: sosemanuk.h:32
interface for one direction (encryption or decryption) of a stream cipher or cipher mode ...
Definition: cryptlib.h:610
keying interface for crypto algorithms that take byte strings as keys
Definition: cryptlib.h:346
algorithm info
Definition: sosemanuk.h:9
support query of variable key length, template parameters are default, min, max, multiple (default mu...
Definition: seckey.h:80
Each class derived from this one defines two types, Encryption and Decryption, both of which implemen...
Definition: seckey.h:201
interface for retrieving values given their names
Definition: cryptlib.h:224