|
Crypto++
5.6.4
Free C++ class library of cryptographic schemes
|
Base class for additive stream ciphers with SymmetricCipher interface. More...
Inheritance diagram for AdditiveCipherTemplate< BASE >:Public Types | |
| typedef BASE::PolicyInterface | PolicyInterface |
Public Member Functions | |
| void | GenerateBlock (byte *output, size_t size) |
| Generate random array of bytes. More... | |
| void | ProcessData (byte *outString, const byte *inString, size_t length) |
| Apply keystream to data. More... | |
| void | Resynchronize (const byte *iv, int length=-1) |
| Resynchronize the cipher. More... | |
| unsigned int | OptimalBlockSize () const |
| Provides number of ideal bytes to process. More... | |
| unsigned int | GetOptimalNextBlockSize () const |
| Provides number of ideal bytes to process. More... | |
| unsigned int | OptimalDataAlignment () const |
| Provides number of ideal data alignment. More... | |
| bool | IsSelfInverting () const |
| Determines if the cipher is self inverting. More... | |
| bool | IsForwardTransformation () const |
| Determines if the cipher is a forward transformation. More... | |
| bool | IsRandomAccess () const |
| Flag indicating random access. More... | |
| void | Seek (lword position) |
| Seeks to a random position in the stream. More... | |
Public Member Functions inherited from RandomNumberGenerator | |
| virtual void | IncorporateEntropy (const byte *input, size_t length) |
| Update RNG state with additional unpredictable values. More... | |
| virtual bool | CanIncorporateEntropy () const |
| Determines if a generator can accept additional entropy. More... | |
| virtual byte | GenerateByte () |
| Generate new random byte and return it. More... | |
| virtual unsigned int | GenerateBit () |
| Generate new random bit and return it. More... | |
| virtual word32 | GenerateWord32 (word32 min=0, word32 max=0xffffffffUL) |
| Generate a random 32 bit word in the range min to max, inclusive. More... | |
| virtual void | GenerateIntoBufferedTransformation (BufferedTransformation &target, const std::string &channel, lword length) |
| Generate random bytes into a BufferedTransformation. More... | |
| virtual void | DiscardBytes (size_t n) |
| Generate and discard n bytes. More... | |
| template<class IT > | |
| void | Shuffle (IT begin, IT end) |
| Randomly shuffle the specified array. More... | |
Public Member Functions inherited from Algorithm | |
| Algorithm (bool checkSelfTestStatus=true) | |
| Interface for all crypto algorithms. More... | |
| virtual std::string | AlgorithmName () const |
| Provides the name of this algorithm. More... | |
Public Member Functions inherited from Clonable | |
| virtual Clonable * | Clone () const |
| Copies this object. More... | |
Base class for additive stream ciphers with SymmetricCipher interface.
| BASE | AbstractPolicyHolder base class |
Definition at line 269 of file strciphr.h.
|
virtual |
Generate random array of bytes.
| output | the byte buffer |
| size | the length of the buffer, in bytes |
All generated values are uniformly distributed over the range specified within the the contraints of a particular generator.
Reimplemented from RandomNumberGenerator.
Definition at line 29 of file strciphr.cpp.
| void AdditiveCipherTemplate< S >::ProcessData | ( | byte * | outString, |
| const byte * | inString, | ||
| size_t | length | ||
| ) |
Apply keystream to data.
| outString | a buffer to write the transformed data |
| inString | a buffer to read the data |
| length | the size fo the buffers, in bytes |
This is the primary method to operate a stream cipher. For example:
size_t size = 30;
byte plain[size] = "Do or do not; there is no try";
byte cipher[size];
...
ChaCha20 chacha(key, keySize);
chacha.ProcessData(cipher, plain, size);
Definition at line 67 of file strciphr.cpp.
| void AdditiveCipherTemplate< S >::Resynchronize | ( | const byte * | iv, |
| int | length = -1 |
||
| ) |
Resynchronize the cipher.
| iv | a byte array used to resynchronize the cipher |
| length | the size of the IV array |
Definition at line 126 of file strciphr.cpp.
|
inline |
Provides number of ideal bytes to process.
Internally, the default implementation returns GetBytesPerIteration()
Definition at line 303 of file strciphr.h.
|
inline |
Provides number of ideal bytes to process.
Internally, the default implementation returns remaining unprocessed bytes
Definition at line 309 of file strciphr.h.
|
inline |
Provides number of ideal data alignment.
Definition at line 314 of file strciphr.h.
|
inline |
Determines if the cipher is self inverting.
Definition at line 318 of file strciphr.h.
|
inline |
Determines if the cipher is a forward transformation.
Definition at line 322 of file strciphr.h.
|
inline |
Flag indicating random access.
Definition at line 327 of file strciphr.h.
| void AdditiveCipherTemplate< BASE >::Seek | ( | lword | position | ) |
Seeks to a random position in the stream.
| position | the absolute position in the stream |
Definition at line 135 of file strciphr.cpp.
1.8.13