#include <blumshub.h>
Inheritance diagram for BlumBlumShub:

Definition at line 41 of file blumshub.h.
Public Member Functions | |
| BlumBlumShub (const Integer &p, const Integer &q, const Integer &seed) | |
| bool | IsRandomAccess () const |
| returns whether this cipher supports random access | |
| void | Seek (dword index) |
| for random access ciphers, seek to an absolute position | |
| unsigned int | GenerateBit () |
| generate new random bit and return it | |
| byte | GenerateByte () |
| generate new random byte and return it | |
| void | ProcessData (byte *outString, const byte *inString, unsigned int length) |
| encrypt or decrypt an array of bytes of specified length | |
| bool | IsSelfInverting () const |
| returns whether this transformation is self-inverting (e.g. xor with a keystream) | |
| bool | IsForwardTransformation () const |
| returns whether this is an encryption object | |
| virtual word32 | GenerateWord32 (word32 a=0, word32 b=0xffffffffL) |
| generate a random 32 bit word in the range min to max, inclusive | |
| virtual void | GenerateBlock (byte *output, unsigned int size) |
| generate random array of bytes | |
| virtual void | DiscardBytes (unsigned int n) |
| generate and discard n bytes | |
| template<class IT> void | Shuffle (IT begin, IT end) |
| randomly shuffle the specified array, resulting permutation is uniformly distributed | |
| virtual std::string | AlgorithmName () const |
| returns name of this algorithm, not universally implemented yet | |
| virtual Clonable * | Clone () const |
| this is not implemented by most classes yet | |
| StreamTransformation & | Ref () |
| return a reference to this object, | |
| virtual unsigned int | MandatoryBlockSize () const |
| returns block size, if input must be processed in blocks, otherwise 1 | |
| virtual unsigned int | OptimalBlockSize () const |
| returns the input block size that is most efficient for this cipher | |
| virtual unsigned int | GetOptimalBlockSizeUsed () const |
| returns how much of the current block is used up | |
| virtual unsigned int | OptimalDataAlignment () const |
| returns how input should be aligned for optimal performance | |
| virtual void | ProcessLastBlock (byte *outString, const byte *inString, unsigned int length) |
| for ciphers where the last block of data is special, encrypt or decrypt the last block of data | |
| virtual unsigned int | MinLastBlockSize () const |
| returns the minimum size of the last block, 0 indicating the last block is not special | |
| void | ProcessString (byte *inoutString, unsigned int length) |
| same as ProcessData(inoutString, inoutString, length) | |
| void | ProcessString (byte *outString, const byte *inString, unsigned int length) |
| same as ProcessData(outString, inString, length) | |
| byte | ProcessByte (byte input) |
| implemented as {ProcessData(&input, &input, 1); return input;} | |
Protected Attributes | |
| const Integer | p |
| const Integer | q |
| const Integer | x0 |
| const ModularArithmetic | modn |
| const int | maxBits |
| Integer | current |
| int | bitsLeft |
Friends | |
| class | BlumGoldwasserPublicKey |
| class | BlumGoldwasserPrivateKey |
|
|
generate new random bit and return it Default implementation is to call GenerateByte() and return its parity. Reimplemented from RandomNumberGenerator. Definition at line 16 of file blumshub.cpp. References Integer::GetBit(), and ModularArithmetic::Square(). Referenced by PublicBlumBlumShub::GenerateByte(). |
|
||||||||||||||||
|
encrypt or decrypt an array of bytes of specified length
Implements StreamTransformation. Definition at line 21 of file blumshub.h. References PublicBlumBlumShub::GenerateByte(). |
|
||||||||||||
|
generate random array of bytes Default implementation is to call GenerateByte() size times. Reimplemented in NonblockingRng, BlockingRng, and RandomPool. Definition at line 91 of file cryptlib.cpp. References RandomNumberGenerator::GenerateByte(). Referenced by DL_GroupParameters_DSA::GenerateRandom(). |
|
|
generate and discard n bytes Default implementation is to call GenerateByte() n times. Reimplemented in ARC4_Base. Definition at line 117 of file cryptlib.cpp. References RandomNumberGenerator::GenerateByte(). |
|
|
return a reference to this object, This function is useful for passing a temporary StreamTransformation object to a function that takes a non-const reference. Definition at line 458 of file cryptlib.h. |
|
|
returns the input block size that is most efficient for this cipher
Definition at line 465 of file cryptlib.h. |
|
||||||||||||||||
|
for ciphers where the last block of data is special, encrypt or decrypt the last block of data For now the only use of this function is for CBC-CTS mode. Definition at line 76 of file cryptlib.cpp. References StreamTransformation::MandatoryBlockSize(), StreamTransformation::MinLastBlockSize(), and StreamTransformation::ProcessData(). |
1.3.2