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:
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",