10#ifndef CRYPTOPP_CHAM_H
11#define CRYPTOPP_CHAM_H
18#if (CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X86)
19# define CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS 1
24#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x5120)
25# undef CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
76 void UncheckedSetKey(
const byte *userKey,
unsigned int keyLength,
const NameValuePairs ¶ms);
77 std::string AlgorithmProvider()
const;
88 class CRYPTOPP_NO_VTABLE
Enc :
public Base
91 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
93#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
94 size_t AdvancedProcessBlocks(
const byte *inBlocks,
const byte *xorBlocks,
byte *outBlocks,
size_t length, word32 flags)
const;
105 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
107#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
108 size_t AdvancedProcessBlocks(
const byte *inBlocks,
const byte *xorBlocks,
byte *outBlocks,
size_t length, word32 flags)
const;
139 void UncheckedSetKey(
const byte *userKey,
unsigned int keyLength,
const NameValuePairs ¶ms);
140 std::string AlgorithmProvider()
const;
154 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
156#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
157 size_t AdvancedProcessBlocks(
const byte *inBlocks,
const byte *xorBlocks,
byte *outBlocks,
size_t length, word32 flags)
const;
168 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
170#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
171 size_t AdvancedProcessBlocks(
const byte *inBlocks,
const byte *xorBlocks,
byte *outBlocks,
size_t length, word32 flags)
const;
Classes for working with NameValuePairs.
CHAM128::Encryption CHAM128Encryption
CHAM128 encryption.
CHAM64::Encryption CHAM64Encryption
CHAM64 encryption.
CHAM128::Decryption CHAM128Decryption
CHAM128 decryption.
CHAM64::Decryption CHAM64Decryption
CHAM64 decryption.
Provides class member functions to key a block cipher.
Provides a base implementation of Algorithm and SimpleKeyingInterface for block ciphers.
CHAM block cipher transformation functions.
Decryption transformation.
Encryption transformation.
CHAM 128-bit block cipher.
BlockCipherFinal< DECRYPTION, Dec > Decryption
CHAM128 decryption.
BlockCipherFinal< ENCRYPTION, Enc > Encryption
CHAM128 encryption.
CHAM block cipher transformation functions.
Decryption transformation.
Encryption transformation.
CHAM 64-bit block cipher.
BlockCipherFinal< ENCRYPTION, Enc > Encryption
CHAM64 encryption.
BlockCipherFinal< DECRYPTION, Dec > Decryption
CHAM64 decryption.
Inherited by algorithms with fixed block size.
Inherited by keyed algorithms with fixed key length.
Fixed size stack-based SecBlock.
Interface for retrieving values given their names.
Secure memory block with allocator and cleanup.
Inherited by keyed algorithms with variable key length.
Library configuration file.
Crypto++ library namespace.
Classes and functions for secure memory allocations.
Classes and functions for implementing secret key algorithms.
Provides Encryption and Decryption typedefs used by derived classes to implement a block cipher.
CHAM block cipher information.
static const std::string StaticAlgorithmName()
The algorithm name.
CHAM block cipher information.
static const std::string StaticAlgorithmName()
The algorithm name.