aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2016-10-01 16:57:25 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2016-10-18 14:41:17 +0200
commit3f508edcfb92f80092ed1ac4ccc3c33b2f20d207 (patch)
tree65c8bec234dfe018554ddbee6bf2863d273ecf45 /src
parent907c314057b09f1565840237b29a1bd607623ccd (diff)
downloadbitcoin-3f508edcfb92f80092ed1ac4ccc3c33b2f20d207.tar.xz
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: 1c80386bceb216ca5b5da657e03a29f9c779d58b
Diffstat (limited to 'src')
-rw-r--r--src/rpc/protocol.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/rpc/protocol.cpp b/src/rpc/protocol.cpp
index f5275062a2..bb885bb5a6 100644
--- a/src/rpc/protocol.cpp
+++ b/src/rpc/protocol.cpp
@@ -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.