diff options
author | madmaxoft <github@xoft.cz> | 2014-05-02 19:34:28 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-05-02 19:34:28 +0200 |
commit | 839447f0bbdf97eb9b3c07f943647fa9c92b1e5b (patch) | |
tree | 3cde3e248dc73e19f3b241245fdff612842f9632 /src/PolarSSL++/CtrDrbgContext.h | |
parent | A tiny speed improvement in ApplyFoodExhaustion() (diff) | |
parent | Fixed MagmaCube spawning. (diff) | |
download | cuberite-839447f0bbdf97eb9b3c07f943647fa9c92b1e5b.tar cuberite-839447f0bbdf97eb9b3c07f943647fa9c92b1e5b.tar.gz cuberite-839447f0bbdf97eb9b3c07f943647fa9c92b1e5b.tar.bz2 cuberite-839447f0bbdf97eb9b3c07f943647fa9c92b1e5b.tar.lz cuberite-839447f0bbdf97eb9b3c07f943647fa9c92b1e5b.tar.xz cuberite-839447f0bbdf97eb9b3c07f943647fa9c92b1e5b.tar.zst cuberite-839447f0bbdf97eb9b3c07f943647fa9c92b1e5b.zip |
Diffstat (limited to '')
-rw-r--r-- | src/PolarSSL++/CtrDrbgContext.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/PolarSSL++/CtrDrbgContext.h b/src/PolarSSL++/CtrDrbgContext.h new file mode 100644 index 000000000..65e9a2374 --- /dev/null +++ b/src/PolarSSL++/CtrDrbgContext.h @@ -0,0 +1,63 @@ + +// 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; + friend class cRsaPrivateKey; + friend class cPublicKey; + +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; } + +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; + + + /** Returns the internal context ptr. Only use in PolarSSL API calls. */ + ctr_drbg_context * GetInternal(void) { return &m_CtrDrbg; } +} ; + + + + |