Security Scol plugin
Protected Member Functions | List of all members
HC256Policy Class Reference

HC-256 stream cipher implementation. More...

#include <hc256.h>

Inheritance diagram for HC256Policy:
AdditiveCipherConcretePolicy< word32, 4 > HC256Info AdditiveCipherAbstractPolicy FixedKeyLength< 32, SimpleKeyingInterface::UNIQUE_IV, 32 >

Protected Member Functions

void CipherSetKey (const NameValuePairs &params, const byte *key, size_t length)
 Key the cipher.
 
void OperateKeystream (KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)
 Operates the keystream.
 
void CipherResynchronize (byte *keystreamBuffer, const byte *iv, size_t length)
 Resynchronize the cipher.
 
bool CanOperateKeystream () const
 Flag indicating.
 
bool CipherIsRandomAccess () const
 Flag indicating random access.
 
word32 H1 (word32 u)
 
word32 H2 (word32 u)
 
word32 Generate ()
 

Additional Inherited Members

- Public Types inherited from AdditiveCipherConcretePolicy< word32, 4 >
typedef word32 WordType
 Word type for the cipher.
 
- Public Member Functions inherited from AdditiveCipherConcretePolicy< word32, 4 >
 CRYPTOPP_CONSTANT (BYTES_PER_ITERATION=sizeof(WordType) *W)
 Number of bytes for an iteration.
 
unsigned int GetAlignment () const
 Provides data alignment requirements.
 
unsigned int GetBytesPerIteration () const
 Provides number of bytes operated upon during an iteration.
 
unsigned int GetIterationsToBuffer () const
 Provides buffer size based on iterations.
 
- Public Member Functions inherited from AdditiveCipherAbstractPolicy
virtual unsigned int GetOptimalBlockSize () const
 Provides number of ideal bytes to process.
 
virtual void WriteKeystream (byte *keystream, size_t iterationCount)
 Generate the keystream.
 
virtual void SeekToIteration (lword iterationCount)
 Seeks to a random position in the stream.
 
virtual std::string AlgorithmProvider () const
 Retrieve the provider of this algorithm.
 
- Public Member Functions inherited from HC256Info
CRYPTOPP_STATIC_CONSTEXPR const char * StaticAlgorithmName ()
 
- Public Member Functions inherited from FixedKeyLength< 32, SimpleKeyingInterface::UNIQUE_IV, 32 >
 CRYPTOPP_CONSTANT (KEYLENGTH=N)
 The default key length used by the algorithm provided as a constant.
 
 CRYPTOPP_CONSTANT (MIN_KEYLENGTH=N)
 The minimum key length used by the algorithm provided as a constant.
 
 CRYPTOPP_CONSTANT (MAX_KEYLENGTH=N)
 The maximum key length used by the algorithm provided as a constant.
 
 CRYPTOPP_CONSTANT (DEFAULT_KEYLENGTH=N)
 The default key length used by the algorithm provided as a constant.
 
 CRYPTOPP_CONSTANT (IV_REQUIREMENT=IV_REQ)
 The default IV requirements for the algorithm provided as a constant.
 
 CRYPTOPP_CONSTANT (IV_LENGTH=IV_L)
 The default IV length used by the algorithm provided as a constant.
 
CRYPTOPP_STATIC_CONSTEXPR size_t CRYPTOPP_API StaticGetValidKeyLength (size_t keylength)
 The default key length for the algorithm provided by a static function.
 

Detailed Description

HC-256 stream cipher implementation.

Since
Crypto++ 8.0

Definition at line 31 of file hc256.h.

Member Function Documentation

◆ CanOperateKeystream()

bool HC256Policy::CanOperateKeystream ( ) const
inlineprotectedvirtual

Flag indicating.

Returns
true if the stream can be generated independent of the transformation input, false otherwise
See also
CanOperateKeystream(), OperateKeystream(), WriteKeystream()

Reimplemented from AdditiveCipherConcretePolicy< word32, 4 >.

Definition at line 37 of file hc256.h.

◆ CipherIsRandomAccess()

bool HC256Policy::CipherIsRandomAccess ( ) const
inlineprotectedvirtual

Flag indicating random access.

Returns
true if the cipher is seekable, false otherwise
See also
SeekToIteration()

Implements AdditiveCipherAbstractPolicy.

Definition at line 38 of file hc256.h.

◆ CipherResynchronize()

void HC256Policy::CipherResynchronize ( byte keystreamBuffer,
const byte iv,
size_t  length 
)
protectedvirtual

Resynchronize the cipher.

Parameters
keystreamBufferthe keystream buffer
iva byte array used to resynchronize the cipher
lengththe size of the IV array

Reimplemented from AdditiveCipherAbstractPolicy.

Definition at line 120 of file hc256.cpp.

◆ CipherSetKey()

void HC256Policy::CipherSetKey ( const NameValuePairs params,
const byte key,
size_t  length 
)
protectedvirtual

Key the cipher.

Parameters
paramsset of NameValuePairs use to initialize this object
keya byte array used to key the cipher
lengththe size of the key array

Implements AdditiveCipherAbstractPolicy.

Definition at line 80 of file hc256.cpp.

◆ Generate()

word32 HC256Policy::Generate ( )
inlineprotected

Definition at line 57 of file hc256.cpp.

◆ H1()

ANONYMOUS_NAMESPACE_END word32 HC256Policy::H1 ( word32  u)
inlineprotected

Definition at line 33 of file hc256.cpp.

◆ H2()

word32 HC256Policy::H2 ( word32  u)
inlineprotected

Definition at line 45 of file hc256.cpp.

◆ OperateKeystream()

void HC256Policy::OperateKeystream ( KeystreamOperation  operation,
byte output,
const byte input,
size_t  iterationCount 
)
protectedvirtual

Operates the keystream.

Parameters
operationthe operation with additional flags
outputthe output buffer
inputthe input buffer
iterationCountthe number of iterations to perform on the input

OperateKeystream() will attempt to operate upon GetOptimalBlockSize() buffer, which will be derived from GetBytesPerIteration().

See also
CanOperateKeystream(), OperateKeystream(), WriteKeystream(), KeystreamOperation()

Implements AdditiveCipherConcretePolicy< word32, 4 >.

Definition at line 95 of file hc256.cpp.


The documentation for this class was generated from the following files: