diff --git a/src/net/srp/SRP6_Random.cpp b/src/net/srp/SRP6_Random.cpp new file mode 100644 index 0000000..7522797 --- /dev/null +++ b/src/net/srp/SRP6_Random.cpp @@ -0,0 +1,16 @@ +#include "net/srp/SRP6_Random.hpp" +#include +#include + +SRP6_Random::SRP6_Random(const void* seed, uint32_t seedLen) { + SHA1_CONTEXT ctx; + SHA1_Init(&ctx); + SHA1_Update(&ctx, static_cast(seed), seedLen); + SHA1_Final(reinterpret_cast(this->m_randkey1), &ctx); + + memcpy(this->m_randkey2, this->m_randkey1, sizeof(this->m_randkey2)); + + memset(this->m_randpool, 0, sizeof(this->m_randpool)); + + this->m_inpool = 0; +} diff --git a/src/net/srp/SRP6_Random.hpp b/src/net/srp/SRP6_Random.hpp new file mode 100644 index 0000000..e799f3b --- /dev/null +++ b/src/net/srp/SRP6_Random.hpp @@ -0,0 +1,18 @@ +#ifndef NET_SRP_SRP6_RANDOM_HPP +#define NET_SRP_SRP6_RANDOM_HPP + +#include + +class SRP6_Random { + public: + // Member variables + char m_randkey1[20]; + char m_randkey2[20]; + char m_randpool[20]; + uint32_t m_inpool; + + // Member functions + SRP6_Random(const void* seed, uint32_t seedLen); +}; + +#endif