Add passphrase prompt
This commit is contained in:
parent
75eaf90205
commit
fc30b9272f
@ -4,6 +4,7 @@ import logging
|
|||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
import argparse
|
import argparse
|
||||||
|
import getpass
|
||||||
|
|
||||||
# external impors
|
# external impors
|
||||||
import coincurve
|
import coincurve
|
||||||
@ -21,23 +22,36 @@ logg = logging.getLogger()
|
|||||||
argparser = argparse.ArgumentParser()
|
argparser = argparse.ArgumentParser()
|
||||||
argparser.add_argument('-d', type=str, help='decrypt file')
|
argparser.add_argument('-d', type=str, help='decrypt file')
|
||||||
argparser.add_argument('-v', action='store_true', help='be verbose')
|
argparser.add_argument('-v', action='store_true', help='be verbose')
|
||||||
argparser.add_argument('arg', type=str, help='decrypt file')
|
|
||||||
args = argparser.parse_args()
|
args = argparser.parse_args()
|
||||||
|
|
||||||
if args.v:
|
if args.v:
|
||||||
logg.setLevel(logging.DEBUG)
|
logg.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
r = None
|
mode = 'create'
|
||||||
if args.d:
|
if args.d:
|
||||||
|
mode = 'decrypt'
|
||||||
|
|
||||||
|
def main():
|
||||||
|
passphrase = os.environ.get('PASSPHRASE')
|
||||||
|
r = None
|
||||||
|
if mode == 'decrypt':
|
||||||
|
if passphrase == None:
|
||||||
|
passphrase = getpass.getpass('decryption phrase: ')
|
||||||
try:
|
try:
|
||||||
r = from_file(args.d, args.arg).hex()
|
r = from_file(args.d, passphrase).hex()
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
sys.stderr.write('Invalid passphrase\n')
|
sys.stderr.write('Invalid passphrase\n')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
elif mode == 'create':
|
||||||
|
if passphrase == None:
|
||||||
|
passphrase = getpass.getpass('encryption phrase: ')
|
||||||
pk_bytes = os.urandom(32)
|
pk_bytes = os.urandom(32)
|
||||||
pk = coincurve.PrivateKey(secret=pk_bytes)
|
pk = coincurve.PrivateKey(secret=pk_bytes)
|
||||||
o = to_dict(pk, args.arg)
|
o = to_dict(pk, passphrase)
|
||||||
r = json.dumps(o)
|
r = json.dumps(o)
|
||||||
|
|
||||||
print(r)
|
print(r)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
1
setup.py
1
setup.py
@ -48,6 +48,7 @@ setup(
|
|||||||
entry_points = {
|
entry_points = {
|
||||||
'console_scripts': [
|
'console_scripts': [
|
||||||
'crypto-dev-daemon=crypto_dev_signer.runnable.signer:main',
|
'crypto-dev-daemon=crypto_dev_signer.runnable.signer:main',
|
||||||
|
'eth-keyfile=crypto_dev_signer.runnable.keyfile:main',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
url='https://gitlab.com/nolash/crypto-dev-signer',
|
url='https://gitlab.com/nolash/crypto-dev-signer',
|
||||||
|
Loading…
Reference in New Issue
Block a user