00001 00035 #ifndef LLBLOWFISHCIPHER_H 00036 #define LLBLOWFISHCIPHER_H 00037 00038 #include "llcipher.h" 00039 00040 00041 class LLBlowfishCipher : public LLCipher 00042 { 00043 public: 00044 // Secret may be up to 56 bytes in length per Blowfish spec. 00045 LLBlowfishCipher(const U8* secret, size_t secret_size); 00046 virtual ~LLBlowfishCipher(); 00047 00048 // See llcipher.h for documentation. 00049 /*virtual*/ U32 encrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len); 00050 /*virtual*/ U32 decrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len); 00051 /*virtual*/ U32 requiredEncryptionSpace(U32 src_len) const; 00052 00053 #ifdef _DEBUG 00054 static BOOL testHarness(); 00055 #endif 00056 00057 private: 00058 U8* mSecret; 00059 size_t mSecretSize; 00060 }; 00061 00062 #endif // LL_LLCRYPTO_H