mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-12 18:52:34 +02:00
Merge bitcoin/bitcoin#29433: contrib: rpcauth.py - Add new option (-json) to output text in json format
9adf949d2a
contrib: rpcauth.py - Add new option (-j/--json) to output text in json format (bstin) Pull request description: This is a simple change to rpcauth.py utility in order to output as json instead raw text. This is beneficial because integrating json output is simpler with multiple different forms of automation and tooling ACKs for top commit: maflcko: ACK9adf949d2a
achow101: ACK9adf949d2a
willcl-ark: tACK9adf949d2a
tdb3: ACK for9adf949d2a
Tree-SHA512: 2cdc3b2071fbe4fb32a84ce42ee8ad216cff96ed82aaef58daeb3991953ac137ae42d6898a7fdb6cbd1800e1f61ff8d292f0b150eaebdd2a3fd9d37ed7450787
This commit is contained in:
@ -15,4 +15,5 @@ positional arguments:
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
-j, --json output data in json format
|
||||
```
|
||||
|
@ -7,6 +7,7 @@ from argparse import ArgumentParser
|
||||
from getpass import getpass
|
||||
from secrets import token_hex, token_urlsafe
|
||||
import hmac
|
||||
import json
|
||||
|
||||
def generate_salt(size):
|
||||
"""Create size byte hex salt"""
|
||||
@ -24,6 +25,7 @@ def main():
|
||||
parser = ArgumentParser(description='Create login credentials for a JSON-RPC user')
|
||||
parser.add_argument('username', help='the username for authentication')
|
||||
parser.add_argument('password', help='leave empty to generate a random password or specify "-" to prompt for password', nargs='?')
|
||||
parser.add_argument("-j", "--json", help="output to json instead of plain-text", action='store_true')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.password:
|
||||
@ -35,6 +37,10 @@ def main():
|
||||
salt = generate_salt(16)
|
||||
password_hmac = password_to_hmac(salt, args.password)
|
||||
|
||||
if args.json:
|
||||
odict={'username':args.username, 'password':args.password, 'rpcauth':f'{args.username}:{salt}${password_hmac}'}
|
||||
print(json.dumps(odict))
|
||||
else:
|
||||
print('String to be appended to bitcoin.conf:')
|
||||
print(f'rpcauth={args.username}:{salt}${password_hmac}')
|
||||
print(f'Your password:\n{args.password}')
|
||||
|
Reference in New Issue
Block a user