Python: Make ed25519_verify take some arguments

It's not much use if everything is hardcoded.
poljar/cmake_sas
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))
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__':

View File

@ -1,5 +1,7 @@
#! /bin/bash
set -e
cd `dirname $0`
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 group_decrypt $CHARLIE_GROUP_SESSION group_message
### Utility
$OLM ed25519_verify
### Sign/verify
ALICE_SIGNING_KEY="$($OLM signing_key $ALICE_ACCOUNT)"
sig="$(echo "Test message" | $OLM sign $ALICE_ACCOUNT - -)"
echo "Test message" | $OLM ed25519_verify $ALICE_SIGNING_KEY $sig -