1 #ifndef CRYPTOPP_SAFER_H
2 #define CRYPTOPP_SAFER_H
10 NAMESPACE_BEGIN(CryptoPP)
20 void UncheckedSetKey(
const byte *userkey,
unsigned int length,
const NameValuePairs ¶ms);
23 virtual bool Strengthened()
const =0;
26 static const byte exp_tab[256];
27 static const byte log_tab[256];
30 class CRYPTOPP_NO_VTABLE
Enc :
public Base
33 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
36 class CRYPTOPP_NO_VTABLE
Dec :
public Base
39 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
43 template <
class BASE,
class INFO,
bool STR>
47 bool Strengthened()
const {
return STR;}
53 static const char *StaticAlgorithmName() {
return "SAFER-K";}
67 static const char *StaticAlgorithmName() {
return "SAFER-SK";}
These objects usually should not be used directly. See CipherModeDocumentation instead.
interface for one direction (encryption or decryption) of a block cipher
to be inherited by block ciphers with fixed block size
to be inherited by ciphers with variable number of rounds
base class, do not use directly
support query of variable key length, template parameters are default, min, max, multiple (default mu...
unsigned int OptimalDataAlignment() const
returns how inputs and outputs should be aligned for optimal performance
interface for retrieving values given their names