funga-eth

Ethereum implementation of the funga keystore and signer
Log | Files | Refs | README | LICENSE

commit 05435268bf16ad8451da510dc22b173bd59bdac6
parent a534f8ca1ece205c86491af4dcaae0dc3bfbc871
Author: lash <dev@holbrook.no>
Date:   Tue, 24 May 2022 13:17:30 +0000

Allow binary msg sign in cli tool

Diffstat:
MCHANGELOG | 2++
Mfunga/eth/runnable/msg.py | 10+++++++++-
Msetup.py | 2+-
3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG @@ -1,3 +1,5 @@ +* 0.6.2 + - Enable signing of binary message * 0.6.1 - Avoid padding of addresses missing one nibble * 0.6.0 diff --git a/funga/eth/runnable/msg.py b/funga/eth/runnable/msg.py @@ -24,6 +24,7 @@ argparser.add_argument('-f', type=str, help='Keyfile to use for signing') argparser.add_argument('-z', action='store_true', help='zero-length password') argparser.add_argument('-v', action='store_true', help='be verbose') argparser.add_argument('-0', dest='nonl', action='store_true', help='no newline at end of output') +argparser.add_argument('-b', '--binary', dest='binary', action='store_true', help='parse input as binary hex') argparser.add_argument('msg', type=str, help='Message to sign') args = argparser.parse_args() @@ -42,7 +43,14 @@ def main(): address = keystore.import_keystore_file(args.f, password=passphrase) signer = EIP155Signer(keystore) - sig = signer.sign_ethereum_message(address, args.msg.encode('utf-8').hex(), password=passphrase) + + msg = None + if args.binary: + hx = strip_0x(args.msg, pad=True) + msg = bytes.fromhex(hx) + else: + msg = args.msg.encode('utf-8').hex() + sig = signer.sign_ethereum_message(address, msg, password=passphrase) r = sig.hex() if not args.nonl: diff --git a/setup.py b/setup.py @@ -33,7 +33,7 @@ f.close() setup( name="funga-eth", - version="0.6.1", + version="0.6.2", description="Ethereum implementation of the funga keystore and signer", author="Louis Holbrook", author_email="dev@holbrook.no",