aboutsummaryrefslogtreecommitdiff
path: root/python/olm
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2017-04-24 13:11:41 +0100
committerRichard van der Hoff <richard@matrix.org>2017-04-24 13:14:36 +0100
commitf8c61b8f8432d0b0b38d57f513c5048fb42f22ab (patch)
treeff1cd60946df13872091b3a03ae968955e40a0af /python/olm
parent853ea8fbc7b393455c69de1ce95011117f1423fe (diff)
Python: Make ed25519_verify take some arguments
It's not much use if everything is hardcoded.
Diffstat (limited to 'python/olm')
-rwxr-xr-xpython/olm/__main__.py36
1 files changed, 28 insertions, 8 deletions
diff --git a/python/olm/__main__.py b/python/olm/__main__.py
index 2a48b78..d062459 100755
--- a/python/olm/__main__.py
+++ b/python/olm/__main__.py
@@ -65,11 +65,25 @@ def build_arg_parser():
account.unpickle(args.key, read_base64_file(args.account_file))
print(account.identity_keys()['curve25519'])
- id_key = commands.add_parser("identity_key",
- help="Get the identity key for an account")
+ id_key = commands.add_parser(
+ "identity_key",
+ help="Get the public part of the identity key for an account",
+ )
id_key.add_argument("account_file", help="Local account file")
id_key.set_defaults(func=do_id_key)
+ def do_signing_key(args):
+ account = Account()
+ account.unpickle(args.key, read_base64_file(args.account_file))
+ print(account.identity_keys()['ed25519'])
+
+ signing_key = commands.add_parser(
+ "signing_key",
+ help="Get the public part of the signing key for an account",
+ )
+ signing_key.add_argument("account_file", help="Local account file")
+ signing_key.set_defaults(func=do_signing_key)
+
def do_one_time_key(args):
account = Account()
account.unpickle(args.key, read_base64_file(args.account_file))
@@ -346,6 +360,16 @@ def build_arg_parser():
ed25519_verify = commands.add_parser("ed25519_verify",
help="Verify an ed25519 signature")
+ ed25519_verify.add_argument(
+ "signing_key",
+ help="Public signing key used to create the signature"
+ )
+ ed25519_verify.add_argument("signature",
+ help="Signature to be verified")
+ ed25519_verify.add_argument("message_file",
+ help="Message file (default stdin)",
+ type=argparse.FileType('r'), nargs='?',
+ default=sys.stdin)
ed25519_verify.set_defaults(func=do_verify_ed25519_signature)
return parser
@@ -434,12 +458,8 @@ def do_export_inbound_group(args):
def do_verify_ed25519_signature(args):
- account = Account()
- account.create()
- message = "A Message".encode("ASCII")
- ed25519_key = account.identity_keys()["ed25519"].encode("utf-8")
- signature = account.sign(message)
- ed25519_verify(ed25519_key, message, signature)
+ message = args.message_file.read()
+ ed25519_verify(args.signing_key, message, args.signature)
if __name__ == '__main__':