24 #ifndef TAO_CRYPT_DES_HPP
25 #define TAO_CRYPT_DES_HPP
31 #if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
39 enum { DES_BLOCK_SIZE = 8, DES_KEY_SIZE = 32 };
44 void SetKey(
const byte*, word32, CipherDir dir);
45 void RawProcessBlock(word32&, word32&)
const;
47 word32 k_[DES_KEY_SIZE];
54 DES(CipherDir DIR, Mode MODE)
58 void ProcessAndXorBlock(
const byte*,
const byte*, byte*)
const;
61 DES& operator=(
const DES&);
71 void SetKey(
const byte*, word32, CipherDir dir);
76 void ProcessAndXorBlock(
const byte*,
const byte*, byte*)
const;
90 void SetKey(
const byte*, word32, CipherDir dir);
91 void SetIV(
const byte* iv) { memcpy(r_, iv, DES_BLOCK_SIZE); }
93 void Process(byte*,
const byte*, word32);
100 void AsmProcess(
const byte* in, byte* out,
void* box)
const;
101 void ProcessAndXorBlock(
const byte*,
const byte*, byte*)
const;
130 #endif // TAO_CRYPT_DES_HPP