Crypto++ 8.7
Free C++ class library of cryptographic schemes
|
Policy object for feedback based stream ciphers. More...
#include <strciphr.h>
Public Member Functions | |
virtual unsigned int | GetAlignment () const =0 |
Provides data alignment requirements. More... | |
virtual unsigned int | GetBytesPerIteration () const =0 |
Provides number of bytes operated upon during an iteration. More... | |
virtual byte * | GetRegisterBegin ()=0 |
Access the feedback register. More... | |
virtual void | TransformRegister ()=0 |
TODO. More... | |
virtual bool | CanIterate () const |
Flag indicating iteration support. More... | |
virtual void | Iterate (byte *output, const byte *input, CipherDir dir, size_t iterationCount) |
Iterate the cipher. More... | |
virtual void | CipherSetKey (const NameValuePairs ¶ms, const byte *key, size_t length)=0 |
Key the cipher. More... | |
virtual void | CipherResynchronize (const byte *iv, size_t length) |
Resynchronize the cipher. More... | |
virtual std::string | AlgorithmProvider () const |
Retrieve the provider of this algorithm. More... | |
Policy object for feedback based stream ciphers.
Definition at line 402 of file strciphr.h.
|
inlinevirtual |
Definition at line 405 of file strciphr.h.
|
pure virtual |
Provides data alignment requirements.
Internally, the default implementation returns 1. If the stream cipher is implemented using an SSE2 ASM or intrinsics, then the value returned is usually 16.
Implemented in CFB_CipherConcretePolicy< WT, W, BASE >.
|
pure virtual |
Provides number of bytes operated upon during an iteration.
Implemented in CFB_CipherConcretePolicy< WT, W, BASE >.
|
pure virtual |
Access the feedback register.
|
pure virtual |
TODO.
Implemented in CFB_CipherConcretePolicy< WT, W, BASE >.
|
inlinevirtual |
Flag indicating iteration support.
Reimplemented in CFB_CipherConcretePolicy< WT, W, BASE >.
Definition at line 427 of file strciphr.h.
|
inlinevirtual |
Iterate the cipher.
output | the output buffer |
input | the input buffer |
dir | the direction of the cipher |
iterationCount | the number of iterations to perform on the input |
Definition at line 435 of file strciphr.h.
|
pure virtual |
Key the cipher.
params | set of NameValuePairs use to initialize this object |
key | a byte array used to key the cipher |
length | the size of the key array |
|
inlinevirtual |
Resynchronize the cipher.
iv | a byte array used to resynchronize the cipher |
length | the size of the IV array |
Definition at line 449 of file strciphr.h.
|
inlinevirtual |
Retrieve the provider of this algorithm.
The algorithm provider can be a name like "C++", "SSE", "NEON", "AESNI", "ARMv8" and "Power8". C++ is standard C++ code. Other labels, like SSE, usually indicate a specialized implementation using instructions from a higher instruction set architecture (ISA). Future labels may include external hardware like a hardware security module (HSM).
Generally speaking Wei Dai's original IA-32 ASM code falls under "SSE2". Labels like "SSSE3" and "SSE4.1" follow after Wei's code and use intrinsics instead of ASM.
Algorithms which combine different instructions or ISAs provide the dominant one. For example on x86 AES/GCM
returns "AESNI" rather than "CLMUL" or "AES+SSE4.1" or "AES+CLMUL" or "AES+SSE4.1+CLMUL".
Definition at line 467 of file strciphr.h.