X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8c6fa3fbaccc22127280bf77a48fab5a3ee0716e..46b0747592074017ff0ea4b33d4a7194235886e5:/libs/crypto/include/stg/bfstream.h diff --git a/libs/crypto/include/stg/bfstream.h b/libs/crypto/include/stg/bfstream.h new file mode 100644 index 00000000..ae955b94 --- /dev/null +++ b/libs/crypto/include/stg/bfstream.h @@ -0,0 +1,46 @@ +#ifndef __STG_STGLIBS_BF_STREAM_H__ +#define __STG_STGLIBS_BF_STREAM_H__ + +#include +#include // size_t + +namespace STG +{ + +class ENCRYPT_STREAM +{ + public: + typedef bool (* CALLBACK)(const void * block, size_t size, void * data); + + ENCRYPT_STREAM(const std::string & key, CALLBACK callback, void * data); + ~ENCRYPT_STREAM(); + void Put(const void * data, size_t size, bool last = false); + + bool IsOk() const; + + private: + class IMPL; + + IMPL * m_impl; +}; + +class DECRYPT_STREAM +{ + public: + typedef bool (* CALLBACK)(const void * block, size_t size, void * data); + + DECRYPT_STREAM(const std::string & key, CALLBACK callback, void * data); + ~DECRYPT_STREAM(); + void Put(const void * data, size_t size, bool last = false); + + bool IsOk() const; + + private: + class IMPL; + + IMPL * m_impl; +}; + +} // namespace STG + +#endif