Migrate (back) to ed25519-dalek
#991
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We've had many requests to leverage
ed25519-dalek'sExpandedSecretKeyfunctionality in order to support keys exported from YubiHSMs. See #978, #891, and #742.I have been a bit wary of the implementation though, because it has always involved having both
ed25519-consensusanded25519-dalek, often with enums over multiple key types, which seems incredibly overcomplicated just to implement this feature.We originally switched to
ed25519-consensusbecausetendermint-rsdid, and it makes sense there where ZIP-215 provides consensus-critical signature verification rules that don't diverge between implementations. However that's a bit irrelevant for our purposes as this is a signing service, and ZIP-215 allows us to use whatever signing implementation we want.Now that we've vendored
tendermint-p2pastmkms-p2pwe can unilaterally switch the Ed25519 implementation (back) toed25519-dalek, which should make addingExpandedSecretKeysupport much easier and avoid having to worry about two implementations.This additionally switches (back) to upstream
curve25519-dalekso as to support X25519 as part of the SecretConnection protocol.