// MANGLER.HPP
//
// (C) 1984-2009 MicroNeil Research Corporation
// Derived from Version 1 of Mangler Encryption Algorythm, 1984.
// Derived from Version 2 of Mangler Encryption Algorythm, 1998.
//
// 20020119 _M Mangler V3.
// Mangler object header file.
// If it's already been included, it doesn't need to be included again.

#ifndef _MANGLER_
#define _MANGLER_

class MANGLER {
   private:

      unsigned char Fill[256];                  // Where to store the fill.
      unsigned int Position;                    // Where to put position.

      unsigned char Rotate(unsigned char);      // Bitwise Rotate Utility.

      unsigned char ChaosDriver(void);          // Returns current chaos.
      void ChaosDriver(unsigned char i);        // Drives chaos forward.

   public:

      unsigned char Encrypt(unsigned char i);   // Returns encrypted data.
      unsigned char Decrypt(unsigned char i);   // Returns decrypted data.

      MANGLER(void);                                    // Default.
   };

#endif

