diff options
author | madmaxoft <github@xoft.cz> | 2014-04-24 21:34:45 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-04-24 21:53:41 +0200 |
commit | c701adbd241ea84d6f64842e8015c1009a41d786 (patch) | |
tree | f79c837e19767ece8c914e3dd001f944079b0aeb /src/PolarSSL++/CtrDrbgContext.h | |
parent | Changed cByteBuffer constructor to take a size_t instead of int. (diff) | |
download | cuberite-c701adbd241ea84d6f64842e8015c1009a41d786.tar cuberite-c701adbd241ea84d6f64842e8015c1009a41d786.tar.gz cuberite-c701adbd241ea84d6f64842e8015c1009a41d786.tar.bz2 cuberite-c701adbd241ea84d6f64842e8015c1009a41d786.tar.lz cuberite-c701adbd241ea84d6f64842e8015c1009a41d786.tar.xz cuberite-c701adbd241ea84d6f64842e8015c1009a41d786.tar.zst cuberite-c701adbd241ea84d6f64842e8015c1009a41d786.zip |
Diffstat (limited to '')
-rw-r--r-- | src/PolarSSL++/CtrDrbgContext.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/PolarSSL++/CtrDrbgContext.h b/src/PolarSSL++/CtrDrbgContext.h new file mode 100644 index 000000000..987f4dd72 --- /dev/null +++ b/src/PolarSSL++/CtrDrbgContext.h @@ -0,0 +1,60 @@ + +// CtrDrbgContext.h + +// Declares the cCtrDrbgContext class representing a wrapper over CTR-DRBG implementation in PolarSSL + + + + + +#pragma once + +#include "polarssl/ctr_drbg.h" + + + + + +// fwd: EntropyContext.h +class cEntropyContext; + + + + + +class cCtrDrbgContext +{ + friend class cSslContext; + +public: + /** Constructs the context with a new entropy context. */ + cCtrDrbgContext(void); + + /** Constructs the context with the specified entropy context. */ + cCtrDrbgContext(const SharedPtr<cEntropyContext> & a_EntropyContext); + + /** Initializes the context. + a_Custom is optional additional data to use for entropy, nullptr is accepted. + Returns 0 if successful, PolarSSL error code on failure. */ + int Initialize(const void * a_Custom, size_t a_CustomSize); + + /** Returns true if the object is valid (has been initialized properly) */ + bool IsValid(void) const { return m_IsValid; } + + /** Returns the internal context ptr. Only use in PolarSSL API calls. */ + __declspec(deprecated) ctr_drbg_context * Get(void) { return &m_CtrDrbg; } + +protected: + /** The entropy source used for generating the random */ + SharedPtr<cEntropyContext> m_EntropyContext; + + /** The random generator context */ + ctr_drbg_context m_CtrDrbg; + + /** Set to true if the object is valid (has been initialized properly) */ + bool m_IsValid; +} ; + + + + |