Python: Make ed25519_verify take some arguments
It's not much use if everything is hardcoded.
This commit is contained in:
parent
853ea8fbc7
commit
f8c61b8f84
2 changed files with 34 additions and 11 deletions
|
@ -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__':
|
||||
|
|
|
@ -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 -
|
||||
|
|
Loading…
Reference in a new issue