Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cStreamCipher.h
Go to the documentation of this file.
1 //
4 //
5 
6 #ifndef _INC_CStreamCrypt_H
7 #define _INC_CStreamCrypt_H
8 #ifndef NO_PRAGMA_ONCE
9 #pragma once
10 #endif
11 
12 #include "../Cipher/cCipherBase.h"
14 
15 namespace GrayLib
16 {
18  {
21 
22  public:
24 
25  public:
27  : m_pCipher( pCipher)
28  {
29  ASSERT(m_pCipher != nullptr);
30  }
31  };
32 
34  {
38 
39  public:
40  cStreamCipherEnc(ICipherBase* pCipher, size_t nSizeBuffer = cStream::k_FILE_BLOCK_SIZE, cStreamOutput* pStreamOut = nullptr);
41  virtual ~cStreamCipherEnc();
42 
43  virtual HRESULT WriteX(const void* pData, size_t nDataSize) override; // cStreamOutput override
44  };
45 
47  {
50 
51  public:
52  cStreamCipherDec(ICipherBase* pCipher, size_t nSizeBuffer /*= cStream::k_FILE_BLOCK_SIZE*/, cStreamInput* pStreamInp = nullptr);
53  cStreamCipherDec(ICipherBase* pCipher);
54  virtual ~cStreamCipherDec();
55 
56  virtual HRESULT ReadX(void* pData, size_t nDataSize) override; // cStreamInput override
57  };
58 };
59 #endif
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cStreamCipher.h:47
Definition: cStreamCipher.h:34
Definition: cStreamCipher.h:18
ICipherBase *const m_pCipher
what cipher algorithm are we using to decrypt or encrypt?
Definition: cStreamCipher.h:23
cStreamCipher(ICipherBase *pCipher)
Definition: cStreamCipher.h:26
static const size_t k_FILE_BLOCK_SIZE
default arbitrary transfer block size. more than this is NOT more efficient.
Definition: cStream.h:89
Definition: cStream.h:306
Definition: cStream.h:126
Definition: cStreamStack.h:17
Definition: cStreamStack.h:41
Definition: cCipherBase.h:111
Definition: cMesh.h:22