diff options
Diffstat (limited to 'src/common/Cryptography/ARC4.h')
-rw-r--r-- | src/common/Cryptography/ARC4.h | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/common/Cryptography/ARC4.h b/src/common/Cryptography/ARC4.h index e0b0d2d39b6..2adfba919ec 100644 --- a/src/common/Cryptography/ARC4.h +++ b/src/common/Cryptography/ARC4.h @@ -19,18 +19,31 @@ #define _AUTH_SARC4_H #include "Define.h" +#include <array> #include <openssl/evp.h> +#include "advstd.h" // data/size -class TC_COMMON_API ARC4 +namespace Trinity { - public: - ARC4(uint32 len); - ARC4(uint8* seed, uint32 len); - ~ARC4(); - void Init(uint8* seed); - void UpdateData(int len, uint8* data); - private: - EVP_CIPHER_CTX* m_ctx; -}; +namespace Crypto +{ + class TC_COMMON_API ARC4 + { + public: + ARC4(); + ~ARC4(); + + void Init(uint8 const* seed, size_t len); + template <typename Container> + void Init(Container const& c) { Init(advstd::data(c), advstd::size(c)); } + + void UpdateData(uint8* data, size_t len); + template <typename Container> + void UpdateData(Container& c) { UpdateData(advstd::data(c), advstd::size(c)); } + private: + EVP_CIPHER_CTX* _ctx; + }; +} +} #endif |