Module: check_mk
Branch: master
Commit: 45c2db5776e5fa11852c22fffbd6152d8f5c428c
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=45c2db5776e5fa…
Author: Jukka Aro <ja(a)mathias-kettner.de>
Date: Fri Mar 23 14:14:55 2018 +0100
Win-agent: use strongly typed enums, part 2
Convert Crypto::KeyLength.
---
agents/windows/Crypto.cc | 14 +++++++-------
agents/windows/Crypto.h | 4 ++--
agents/windows/build_version | 2 +-
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/agents/windows/Crypto.cc b/agents/windows/Crypto.cc
index 8a65498..a2dc827 100644
--- a/agents/windows/Crypto.cc
+++ b/agents/windows/Crypto.cc
@@ -8,7 +8,7 @@
Crypto::Crypto(const WinApiAdaptor &winapi)
: _algorithm(DEFAULT_ALGORITHM), _winapi(winapi) {
_provider = initContext();
- _key = genKey(KEY_LEN_DEFAULT);
+ _key = genKey(KeyLength::KEY_LEN_DEFAULT);
configureKey();
}
@@ -105,8 +105,9 @@ void Crypto::releaseContext() { _winapi.CryptReleaseContext(_provider,
0); }
HCRYPTKEY Crypto::genKey(KeyLength key_length) const {
HCRYPTKEY result;
- if (!_winapi.CryptGenKey(_provider, _algorithm,
- key_length | CRYPT_EXPORTABLE, &result)) {
+ if (!_winapi.CryptGenKey(
+ _provider, _algorithm,
+ static_cast<unsigned>(key_length) | CRYPT_EXPORTABLE, &result)) {
throw std::runtime_error(get_win_error_as_string(_winapi));
}
@@ -184,10 +185,9 @@ void Crypto::deriveOpenSSLKey(const std::string &password,
KeyLength key_length,
size_t key_offset = 0;
size_t iv_offset = 0;
- int key_size = key_length;
- if (key_size == 0) {
- key_size = keySize(_algorithm) / 8;
- }
+ auto key_size = (key_length == KeyLength::KEY_LEN_DEFAULT)
+ ? keySize(_algorithm) / 8
+ : static_cast<size_t>(key_length);
std::vector<BYTE> key(key_size);
std::vector<BYTE> iv;
diff --git a/agents/windows/Crypto.h b/agents/windows/Crypto.h
index 816b453..beccf2b 100644
--- a/agents/windows/Crypto.h
+++ b/agents/windows/Crypto.h
@@ -14,7 +14,7 @@ class Crypto {
static const ALG_ID DEFAULT_ALGORITHM = CALG_AES_256;
static const ALG_ID HASH_ALGORITHM = CALG_MD5;
- enum KeyLength {
+ enum class KeyLength {
KEY_LEN_DEFAULT = 0,
KEY_LEN_128 = 128,
KEY_LEN_192 = 192,
@@ -28,7 +28,7 @@ public:
explicit Crypto(const WinApiAdaptor &winapi);
Crypto(const std::string &password, const WinApiAdaptor &winapi,
- KeyLength key_length = KEY_LEN_DEFAULT);
+ KeyLength key_length = KeyLength::KEY_LEN_DEFAULT);
Crypto(const BYTE *key, DWORD key_size, const WinApiAdaptor &winapi);
diff --git a/agents/windows/build_version b/agents/windows/build_version
index 78f6630..7127a37 100644
--- a/agents/windows/build_version
+++ b/agents/windows/build_version
@@ -1 +1 @@
-3202
+3204