Overhaul crypto (Schnorr/Ristretto, HDKD, BIP39) (#1795)

* Rijig to Ristretto

* Rebuild wasm

* adds compatibility test with the wasm module

* Add Ed25519-BIP39 support

* Bump subkey version

* Update CLI output

* New keys.

* Standard phrase/password/path keys.

* Subkey uses S-URI for secrets

* Move everything to use new HDKD crypto.

* Test fixes

* Ignore old test vector.

* fix the ^^ old test vector.

* Fix tests

* Test fixes

* Cleanups

* Fix broken key conversion logic in grandpa

CC @rphmeier

* Remove legacy Keyring usage

* Traitify `Pair`

* Replace Ed25519AuthorityId with ed25519::Public

* Expunge Ed25519AuthorityId type!

* Replace Sr25519AuthorityId with sr25519::Public

* Remove dodgy crypto type-punning conversions

* Fix some tests

* Avoid trait

* Deduplicate DeriveJunction string decode

* Remove cruft code

* Fix test

* Minor removals

* Build fix

* Subkey supports sign and verify

* Inspect works for public key URIs

* Remove more crypto type-punning

* Fix typo

* Fix tests
This commit is contained in:
Gav Wood
2019-03-13 14:08:31 +01:00
committed by GitHub
parent 17f093da13
commit d7fcf5dc9d
83 changed files with 2636 additions and 1687 deletions
+33 -18
View File
@@ -1,12 +1,7 @@
name: subkey
author: "Parity Team <admin@parity.io>"
about: A substrate key utility
about: Utility for generating and restoring with Substrate keys
args:
- ed25519-legacy:
short: o
long: legacy
help: Use legacy, outdated Ed25519 cryptography
takes_value: false
- ed25519:
short: e
long: ed25519
@@ -26,15 +21,41 @@ args:
subcommands:
- generate:
about: Generate a random account
- restore:
about: Gets a public key and a SS58 address from the provided seed phrase
- inspect:
about: Gets a public key and a SS58 address from the provided Secret URI
args:
- seed:
- uri:
index: 1
required: true
help: 32 bytes long seed phrase used to restore the public key. If the provided seed is shorter than that, then
it will be right-padded with 0x20 bytes (ASCII space). If the provided seed is longer than
32 bytes then seed will be truncated.
help: A Key URI to be inspected. May be a secret seed, secret URI (with derivation paths and password), SS58 or public URI.
- sign:
about: Sign a message, provided on STDIN, with a given (secret) key
args:
- suri:
index: 1
required: true
help: The secret key URI.
- hex:
short: h
long: hex
help: The message on STDIN is hex-encoded data
takes_value: false
- verify:
about: Verify a signature for a message, provided on STDIN, with a given (public or secret) key
args:
- sig:
index: 1
required: true
help: Signature, hex-encoded.
- uri:
index: 2
required: true
help: The public or secret key URI.
- hex:
short: h
long: hex
help: The message on STDIN is hex-encoded data
takes_value: false
- vanity:
about: Generate a seed that provides a vanity address
args:
@@ -47,9 +68,3 @@ subcommands:
help: Number of keys to generate
takes_value: true
default_value: "1"
- query:
about: Query an account by its seed
args:
- seed:
index: 1
help: The 0x prefixed seed