From ffcbd0b18f8b2cb8391ed5b1a073dfba665fe65c Mon Sep 17 00:00:00 2001 From: Krzysztof Jackiewicz Date: Mon, 13 Nov 2017 17:29:49 +0100 Subject: [PATCH] Convert KeyGenerator class to a namespace Change-Id: I5cc3aec04a731ec2b3212a187494dcbeae1ea468 --- server/key-manager/key-generator.cpp | 51 ++++++++++++++++++++++-------------- server/key-manager/key-generator.h | 43 ++++++++++++++---------------- 2 files changed, 51 insertions(+), 43 deletions(-) diff --git a/server/key-manager/key-generator.cpp b/server/key-manager/key-generator.cpp index d68c7ff..3809d0f 100644 --- a/server/key-manager/key-generator.cpp +++ b/server/key-manager/key-generator.cpp @@ -41,22 +41,27 @@ namespace ode { -void KeyGenerator::init() +namespace KeyGenerator { + +void init() { EVP_add_cipher(EVP_aes_256_cbc()); EVP_add_digest(EVP_sha256()); EVP_add_digest(EVP_sha512()); } -void KeyGenerator::cleanup() +void cleanup() { EVP_cleanup(); } -const KeyGenerator::data KeyGenerator::PBKDF(const data& pass, const data& salt, size_t iteration, size_t resultSize) +BinaryData PBKDF(const BinaryData& pass, + const BinaryData& salt, + size_t iteration, + size_t resultSize) { - data ret(resultSize, 0); + BinaryData ret(resultSize, 0); ::PKCS5_PBKDF2_HMAC((char *)pass.data(), pass.size(), salt.data(), salt.size(), iteration, @@ -65,9 +70,11 @@ const KeyGenerator::data KeyGenerator::PBKDF(const data& pass, const data& salt, return ret; } -const KeyGenerator::data KeyGenerator::AESEncrypt(const data& in, const data& key, const data& iv) +BinaryData AESEncrypt(const BinaryData& in, + const BinaryData& key, + const BinaryData& iv) { - data ret(in.size(), 0); + BinaryData ret(in.size(), 0); EVP_CIPHER_CTX* ctx; int outLen, len; @@ -87,9 +94,11 @@ const KeyGenerator::data KeyGenerator::AESEncrypt(const data& in, const data& ke return ret; } -const KeyGenerator::data KeyGenerator::AESDecrypt(const data& in, const data& key, const data& iv) +BinaryData AESDecrypt(const BinaryData& in, + const BinaryData& key, + const BinaryData& iv) { - data ret(in.size(), 0); + BinaryData ret(in.size(), 0); EVP_CIPHER_CTX* ctx; int len, len1; @@ -110,9 +119,9 @@ const KeyGenerator::data KeyGenerator::AESDecrypt(const data& in, const data& ke return ret; } -const KeyGenerator::data KeyGenerator::HMAC(const data& key, const data& in) +BinaryData HMAC(const BinaryData& key, const BinaryData& in) { - data ret(256 / 8); + BinaryData ret(256 / 8); unsigned int md_len; ::HMAC(EVP_sha256(), key.data(), key.size(), in.data(), in.size(), @@ -121,31 +130,33 @@ const KeyGenerator::data KeyGenerator::HMAC(const data& key, const data& in) return ret; } -const KeyGenerator::data KeyGenerator::RNG(size_t resultSize) +BinaryData RNG(size_t resultSize) { - data ret(resultSize); + BinaryData ret(resultSize); ::RAND_bytes(ret.data(), resultSize); return ret; } -const KeyGenerator::data KeyGenerator::SHA256(const data& in) +BinaryData SHA256(const BinaryData& in) { - data ret(256 / 8); + BinaryData ret(256 / 8); - ::SHA256(in.data(), in.size(), ret.data()); + ::SHA256(in.data(), in.size(), ret.data()); - return ret; + return ret; } -const KeyGenerator::data KeyGenerator::SHA512(const data& in) +BinaryData SHA512(const BinaryData& in) { - data ret(512 / 8); + BinaryData ret(512 / 8); - ::SHA512(in.data(), in.size(), ret.data()); + ::SHA512(in.data(), in.size(), ret.data()); - return ret; + return ret; } +} // namespace KeyManager + } // namespace ode diff --git a/server/key-manager/key-generator.h b/server/key-manager/key-generator.h index f804144..3f56f4f 100644 --- a/server/key-manager/key-generator.h +++ b/server/key-manager/key-generator.h @@ -17,32 +17,29 @@ #ifndef __KEY_GENERATOR_H__ #define __KEY_GENERATOR_H__ -#include +#include "rmi/common.h" namespace ode { -class KeyGenerator final { -public: - KeyGenerator() = delete; - KeyGenerator(const KeyGenerator&) = delete; - KeyGenerator(KeyGenerator&&) = delete; - - KeyGenerator& operator=(const KeyGenerator&) = delete; - KeyGenerator& operator=(KeyGenerator&&) = delete; - - typedef std::vector data; - - static void init(); - static void cleanup(); - - static const data PBKDF(const data& pass, const data& salt, size_t iteration, size_t resultSize); - static const data AESEncrypt(const data& in, const data& key, const data& iv); - static const data AESDecrypt(const data& in, const data& key, const data& iv); - static const data HMAC(const data& in, const data& key); - static const data RNG(size_t resultSize); - static const data SHA256(const data& in); - static const data SHA512(const data& in); -}; +namespace KeyGenerator { + void init(); + void cleanup(); + + BinaryData PBKDF(const BinaryData& pass, + const BinaryData& salt, + size_t iteration, + size_t resultSize); + BinaryData AESEncrypt(const BinaryData& in, + const BinaryData& key, + const BinaryData& iv); + BinaryData AESDecrypt(const BinaryData& in, + const BinaryData& key, + const BinaryData& iv); + BinaryData HMAC(const BinaryData& in, const BinaryData& key); + BinaryData RNG(size_t resultSize); + BinaryData SHA256(const BinaryData& in); + BinaryData SHA512(const BinaryData& in); +} // namespace KeyGenerator } // namespace ode #endif // __KEY_GENERATOR_H__ -- 2.7.4