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.
Closes #3486
Alternate solution, where we use the exact same Lightning BOLT standard of hashing the point and returning that from
hsmd
.I strongly disagree with this approach:
G
itself is an arbitrary SECP256K1 point (equal to1 * G
i.e. having a "secret" scalar of 1) and public-private cryptography would not be secure in the first place.getsharedsecret
in terms ofgetecdh
(Implementgetecdh
#3486) but not vice versa. Withgetecdh
exposed we can implement using ECIES and the Lightning BOLT (Bitcoin-ish?) ECDH key agreement standards, with onlygetsharedsecret
like this we can only implement the Lightning BOLT key agreement and we would need to implement something else inhsmd
if we want to support ECIES and other EC encryption standards as well (Lightning BOLT seems the only one that does not use X-coordinate-of-ECDH-product). I strongly prefer to keep the interface ofhsmd
small to facilitate fully implementing it in an actual hardware module.