MXS-1662: Move mxs_crypt into utils
Moved the mxs_crypt function into utils and renamed to mxs::crypt (no C code used it).
This commit is contained in:
@ -557,6 +557,16 @@ uint64_t get_byteN(const uint8_t* ptr, int bytes);
|
|||||||
*/
|
*/
|
||||||
uint8_t* set_byteN(uint8_t* ptr, uint64_t value, int bytes);
|
uint8_t* set_byteN(uint8_t* ptr, uint64_t value, int bytes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C++ wrapper function for the `crypt` password hashing
|
||||||
|
*
|
||||||
|
* @param password Password to hash
|
||||||
|
* @param salt Salt to use (see man crypt)
|
||||||
|
*
|
||||||
|
* @return The hashed password
|
||||||
|
*/
|
||||||
|
std::string crypt(const std::string& password, const std::string& salt);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get kernel version
|
* Get kernel version
|
||||||
*
|
*
|
||||||
|
@ -421,23 +421,6 @@ bool admin_linux_account_enabled(const char* uname)
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MXS_CRYPT_SIZE 60
|
|
||||||
|
|
||||||
void mxs_crypt(const char* password, const char* salt, char* output)
|
|
||||||
{
|
|
||||||
#if HAVE_GLIBC
|
|
||||||
struct crypt_data cdata;
|
|
||||||
cdata.initialized = 0;
|
|
||||||
char* pw = crypt_r(password, salt, &cdata);
|
|
||||||
snprintf(output, MXS_CRYPT_SIZE, "%s", pw);
|
|
||||||
#else
|
|
||||||
static std::mutex mxs_crypt_lock;
|
|
||||||
std::lock_guard<std::mutex> guard(mxs_crypt_lock);
|
|
||||||
char* pw = crypt(password, salt);
|
|
||||||
snprintf(output, MXS_CRYPT_SIZE, "%s", pw);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add insecure remote (network) basic user.
|
* Add insecure remote (network) basic user.
|
||||||
*
|
*
|
||||||
|
@ -42,6 +42,8 @@
|
|||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
#include <openssl/sha.h>
|
#include <openssl/sha.h>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
#include <curl/curl.h>
|
||||||
|
#include <crypt.h>
|
||||||
|
|
||||||
#include <maxscale/alloc.h>
|
#include <maxscale/alloc.h>
|
||||||
#include <maxscale/config.hh>
|
#include <maxscale/config.hh>
|
||||||
@ -1168,6 +1170,20 @@ int64_t get_total_memory()
|
|||||||
namespace maxscale
|
namespace maxscale
|
||||||
{
|
{
|
||||||
|
|
||||||
|
std::string crypt(const std::string& password, const std::string& salt)
|
||||||
|
{
|
||||||
|
#if HAVE_GLIBC
|
||||||
|
struct crypt_data cdata;
|
||||||
|
cdata.initialized = 0;
|
||||||
|
return crypt_r(password.c_str(), salt.c_str(), &cdata);
|
||||||
|
#else
|
||||||
|
static std::mutex mxs_crypt_lock;
|
||||||
|
std::lock_guard<std::mutex> guard(mxs_crypt_lock);
|
||||||
|
std::string pw = crypt(password.c_str(), salt.c_str());
|
||||||
|
return pw;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
std::string to_hex(uint8_t value)
|
std::string to_hex(uint8_t value)
|
||||||
{
|
{
|
||||||
std::string out;
|
std::string out;
|
||||||
|
Reference in New Issue
Block a user