Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

arc4.h

00001 #ifndef CRYPTOPP_ARC4_H
00002 #define CRYPTOPP_ARC4_H
00003 
00004 #include "cryptlib.h"
00005 #include "misc.h"
00006 
00007 NAMESPACE_BEGIN(CryptoPP)
00008 
00010 class ARC4 : public RandomNumberGenerator, public StreamCipher, public VariableKeyLength<16, 1, 256>
00011 {
00012 public:
00013     ARC4(const byte *userKey, unsigned int keyLength=DEFAULT_KEYLENGTH);
00014     ~ARC4();
00015 
00016     byte GenerateByte();
00017 
00018     byte ProcessByte(byte input);
00019     void ProcessString(byte *outString, const byte *inString, unsigned int length);
00020     void ProcessString(byte *inoutString, unsigned int length);
00021 
00022 private:
00023     SecByteBlock m_state;
00024     byte m_x, m_y;
00025 };
00026 
00028 class MARC4 : public ARC4
00029 {
00030 public:
00031     MARC4(const byte *userKey, unsigned int keyLength=DEFAULT_KEYLENGTH, unsigned int discardBytes=256);
00032 };
00033 
00034 NAMESPACE_END
00035 
00036 #endif

Generated at Mon Jan 15 01:16:29 2001 for Crypto++ by doxygen1.2.4 written by Dimitri van Heesch, © 1997-2000