6#ifndef CRYPTOPP_SAFER_H
7#define CRYPTOPP_SAFER_H
12NAMESPACE_BEGIN(CryptoPP)
26 virtual bool Strengthened()
const =0;
29 static const byte exp_tab[256];
30 static const byte log_tab[256];
34 class CRYPTOPP_NO_VTABLE
Enc :
public Base
37 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
41 class CRYPTOPP_NO_VTABLE
Dec :
public Base
44 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
53template <
class BASE,
class INFO,
bool STR>
57 bool Strengthened()
const {
return STR;}
63 CRYPTOPP_STATIC_CONSTEXPR
const char* StaticAlgorithmName() {
return "SAFER-K";}
78 CRYPTOPP_STATIC_CONSTEXPR
const char* StaticAlgorithmName() {
return "SAFER-SK";}
Provides class member functions to key a block cipher.
Interface for one direction (encryption or decryption) of a block cipher.
Provides a base implementation of Algorithm and SimpleKeyingInterface for block ciphers.
Inherited by algorithms with fixed block size.
Interface for retrieving values given their names.
SAFER block cipher default operation.
unsigned int OptimalDataAlignment() const
Provides input and output data alignment for optimal performance.
SAFER block cipher decryption operation.
SAFER block cipher encryption operation.
SAFER block cipher default implementation.
virtual void UncheckedSetKey(const byte *key, unsigned int length, const NameValuePairs ¶ms)=0
Sets the key for this object without performing parameter validation.
Inherited by keyed algorithms with variable key length.
Inherited by algorithms with variable number of rounds.
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.
SAFER-K block cipher information.
SAFER-SK block cipher information.