Python: Make ed25519_verify take some arguments

It's not much use if everything is hardcoded.
This commit is contained in:
Richard van der Hoff 2017-04-24 13:11:41 +01:00
parent 853ea8fbc7
commit f8c61b8f84
2 changed files with 34 additions and 11 deletions

View file

@ -65,11 +65,25 @@ def build_arg_parser():
account.unpickle(args.key, read_base64_file(args.account_file)) account.unpickle(args.key, read_base64_file(args.account_file))
print(account.identity_keys()['curve25519']) print(account.identity_keys()['curve25519'])
id_key = commands.add_parser("identity_key", id_key = commands.add_parser(
help="Get the identity key for an account") "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.add_argument("account_file", help="Local account file")
id_key.set_defaults(func=do_id_key) 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): def do_one_time_key(args):
account = Account() account = Account()
account.unpickle(args.key, read_base64_file(args.account_file)) 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", ed25519_verify = commands.add_parser("ed25519_verify",
help="Verify an ed25519 signature") 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) ed25519_verify.set_defaults(func=do_verify_ed25519_signature)
return parser return parser
@ -434,12 +458,8 @@ def do_export_inbound_group(args):
def do_verify_ed25519_signature(args): def do_verify_ed25519_signature(args):
account = Account() message = args.message_file.read()
account.create() ed25519_verify(args.signing_key, message, args.signature)
message = "A Message".encode("ASCII")
ed25519_key = account.identity_keys()["ed25519"].encode("utf-8")
signature = account.sign(message)
ed25519_verify(ed25519_key, message, signature)
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -1,5 +1,7 @@
#! /bin/bash #! /bin/bash
set -e
cd `dirname $0` cd `dirname $0`
OLM="python -m olm" OLM="python -m olm"
@ -38,6 +40,7 @@ $OLM group_decrypt $BOB_GROUP_SESSION group_message
$OLM export_inbound_group $BOB_GROUP_SESSION | $OLM import_inbound_group $CHARLIE_GROUP_SESSION $OLM export_inbound_group $BOB_GROUP_SESSION | $OLM import_inbound_group $CHARLIE_GROUP_SESSION
$OLM group_decrypt $CHARLIE_GROUP_SESSION group_message $OLM group_decrypt $CHARLIE_GROUP_SESSION group_message
### Utility ### Sign/verify
ALICE_SIGNING_KEY="$($OLM signing_key $ALICE_ACCOUNT)"
$OLM ed25519_verify sig="$(echo "Test message" | $OLM sign $ALICE_ACCOUNT - -)"
echo "Test message" | $OLM ed25519_verify $ALICE_SIGNING_KEY $sig -