00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef SH_ENCMODE_H
00022
#define SH_ENCMODE_H
00023
00024
#include <string>
00025
00026 class EncryptionMode {
00027
public:
00029 static const unsigned int IRep_size = 3 ;
00030
00032 enum IRep {
00033
ECB = 0,
00034
CBC = 1,
00035
OFB = 2,
00036
CFB = 3,
00037
NOFB = 4,
00038
NCFB = 5,
00039
CTR = 6,
00040
STREAM = 7
00041 } ;
00042
00046
EncryptionMode (
void) ;
00047
EncryptionMode (IRep irep) ;
00052
EncryptionMode (std::string srep) ;
00053
00054
void setValue (IRep irep) ;
00055
00056 std::string
getStringRep (
void) const ;
00057 IRep getIntegerRep (
void) const ;
00058
00059 bool operator== (const
EncryptionMode& mode)
const
00060
{
return (
Value == mode.Value) ; } ;
00061
00062
static bool isValidStringRep (std::string srep) ;
00063
static bool isValidIntegerRep (
unsigned int irep) ;
00064
00065
static std::string translate (IRep irep) ;
00066
static IRep translate (std::string srep) ;
00067
00068
private:
00069 static const unsigned int NumValues = 8 ;
00070 IRep Value ;
00071
00072 typedef struct struct_Translation {
00073 IRep
irep ;
00074 char*
srep ;
00075 }
Translation ;
00076
static const Translation Translations[] ;
00077 } ;
00078
00079
#endif // ndef SH_ENCMODE_H