Browse Source

rpc: Generate auth cookie in hex instead of base64

Base64 contains '/', and the '/' character in credentials is problematic
for AuthServiceProxy which represents the RPC endpoint as an URI with
user and password embedded.

Closes #8399.

Github-Pull: #8858
Rebased-From: 1c80386bce
0.13
Wladimir J. van der Laan 8 years ago
parent
commit
3f508edcfb
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 7
      src/rpc/protocol.cpp

7
src/rpc/protocol.cpp

@ -77,9 +77,10 @@ boost::filesystem::path GetAuthCookieFile() @@ -77,9 +77,10 @@ boost::filesystem::path GetAuthCookieFile()
bool GenerateAuthCookie(std::string *cookie_out)
{
unsigned char rand_pwd[32];
GetRandBytes(rand_pwd, 32);
std::string cookie = COOKIEAUTH_USER + ":" + EncodeBase64(&rand_pwd[0],32);
const size_t COOKIE_SIZE = 32;
unsigned char rand_pwd[COOKIE_SIZE];
GetRandBytes(rand_pwd, COOKIE_SIZE);
std::string cookie = COOKIEAUTH_USER + ":" + HexStr(rand_pwd, rand_pwd+COOKIE_SIZE);
/** the umask determines what permissions are used to create this file -
* these are set to 077 in init.cpp unless overridden with -sysperms.

Loading…
Cancel
Save