4b04e32c20
Three categories of modifications: 1) 1 instance of 'The Bitcoin Core developers \n', 1 instance of 'the Bitcoin Core developers\n', 3 instances of 'Bitcoin Core Developers\n', and 12 instances of 'The Bitcoin developers\n' are made uniform with the 443 instances of 'The Bitcoin Core developers\n' 2) 3 instances of 'BitPay, Inc\.\n' are made uniform with the other 6 instances of 'BitPay Inc\.\n' 3) 4 instances where there was no '(c)' between the 'Copyright' and the year where it deviates from the style of the local directory.
41 lines
1.1 KiB
Python
Executable file
41 lines
1.1 KiB
Python
Executable file
#!/usr/bin/env python2
|
|
# Copyright (c) 2015 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
import hashlib
|
|
import sys
|
|
import os
|
|
from random import SystemRandom
|
|
import base64
|
|
import hmac
|
|
|
|
if len(sys.argv) < 2:
|
|
sys.stderr.write('Please include username as an argument.\n')
|
|
sys.exit(0)
|
|
|
|
username = sys.argv[1]
|
|
|
|
#This uses os.urandom() underneath
|
|
cryptogen = SystemRandom()
|
|
|
|
#Create 16 byte hex salt
|
|
salt_sequence = [cryptogen.randrange(256) for i in range(16)]
|
|
hexseq = list(map(hex, salt_sequence))
|
|
salt = "".join([x[2:] for x in hexseq])
|
|
|
|
#Create 32 byte b64 password
|
|
password = base64.urlsafe_b64encode(os.urandom(32))
|
|
|
|
digestmod = hashlib.sha256
|
|
|
|
if sys.version_info.major >= 3:
|
|
password = password.decode('utf-8')
|
|
digestmod = 'SHA256'
|
|
|
|
m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), digestmod)
|
|
result = m.hexdigest()
|
|
|
|
print("String to be appended to bitcoin.conf:")
|
|
print("rpcauth="+username+":"+salt+"$"+result)
|
|
print("Your password:\n"+password)
|