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.cpp | |
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 'src/PolarSSL++/CtrDrbgContext.cpp')
-rw-r--r-- | src/PolarSSL++/CtrDrbgContext.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/PolarSSL++/CtrDrbgContext.cpp b/src/PolarSSL++/CtrDrbgContext.cpp new file mode 100644 index 000000000..86e6d1ca5 --- /dev/null +++ b/src/PolarSSL++/CtrDrbgContext.cpp @@ -0,0 +1,49 @@ + +// CtrDrbgContext.cpp + +// Implements the cCtrDrbgContext class representing a wrapper over CTR-DRBG implementation in PolarSSL + +#include "Globals.h" +#include "CtrDrbgContext.h" +#include "EntropyContext.h" + + + + + +cCtrDrbgContext::cCtrDrbgContext(void) : + m_EntropyContext(new cEntropyContext), + m_IsValid(false) +{ +} + + + + + +cCtrDrbgContext::cCtrDrbgContext(const SharedPtr<cEntropyContext> & a_EntropyContext) : + m_EntropyContext(a_EntropyContext), + m_IsValid(false) +{ +} + + + + + +int cCtrDrbgContext::Initialize(const void * a_Custom, size_t a_CustomSize) +{ + if (m_IsValid) + { + // Already initialized + return 0; + } + + int res = ctr_drbg_init(&m_CtrDrbg, entropy_func, &(m_EntropyContext->m_Entropy), (const unsigned char *)a_Custom, a_CustomSize); + m_IsValid = (res == 0); + return res; +} + + + + |