CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/CondCore/DBCommon/interface/Cipher.h

Go to the documentation of this file.
00001 #ifndef INCLUDE_COND_CIPHER_H
00002 #define INCLUDE_COND_CIPHER_H
00003 
00004 #include <iostream>
00005 #include <string>
00006 
00007 struct BLOWFISH_CTX;
00008 
00009 namespace cond {
00010 
00011   class Cipher {
00012   public:
00013 
00014     explicit Cipher( const std::string& key );
00015 
00016     ~Cipher();
00017 
00018     size_t encrypt( const std::string& input, unsigned char*& output );
00019 
00020     std::string decrypt( const unsigned char* input, size_t inputSize );
00021 
00022     std::string b64encrypt( const std::string& input );
00023 
00024     std::string b64decrypt( const std::string& input );
00025 
00026   private:
00027 
00028     size_t bf_process_alloc( const unsigned char* input, size_t input_size, unsigned char*& output, bool decrypt=false );
00029     
00030   private:
00031 
00032     BLOWFISH_CTX* m_ctx;
00033   };
00034 
00035 }
00036 
00037 #endif
00038