crypto: Upstream v0.35.x improvements#9255
Conversation
|
Thanks @Yawning. Just to confirm - none of these changes will break downstream users? |
This (like the 0.35.x version) will change sr25519 key derivation because the v0.34.x method of doing so is wacky. I think the consensus at the time was that basically no one is using sr25519. It's in CHANGELOG_PENDING.md. |
05f2304 to
cc1619d
Compare
| gogotypes "github.com/gogo/protobuf/types" | ||
| "github.com/gtank/merlin" | ||
| pool "github.com/libp2p/go-buffer-pool" | ||
| "github.com/oasisprotocol/curve25519-voi/primitives/merlin" |
There was a problem hiding this comment.
This is more performant or?
There was a problem hiding this comment.
The code's nicer (IMO), more full featured and it removes 2 dependencies. IIRC my strobe implementation is more performant for "sensible" message sizes, but the difference shouldn't be significant or noticeable for something like this.
Oh. I forgot to mention this. Switching to ZIP-215 is technically a breaking change as it is possible to produce signatures that will pass or fail verification depending on the nitpicky details things like ZIP-215 was written to address.
Looking at #5632, it appears that some of the sub-projects migrated to using ZIP-215 (for v0.35.x), so they would have to undo the change, or ZIP-215 happens... |
|
ZIP 215 is technically not backwards compatible but practically speaking it is backwards compatible. |
cmwaters
left a comment
There was a problem hiding this comment.
Thanks for porting this change. Do you mind fixing the conflicts and updating the branch and then we can merge.
cc1619d to
f9d41a8
Compare
This switches the ed25519, sr25519 and merlin provider to curve25519-voi and additionally adopts ZIP-215 semantics for ed25519 verification.
This commit adds the batch verification interface, but does not enable it for anything.
f9d41a8 to
f84838a
Compare
This is my stab at #9186. Per discussion in the issue, the order in which things were done is different from how the changes went into v0.35.x for ease of doing the backport. Note that for the sake of expediency I opted to do this manually instead of via git.
PR checklist
CHANGELOG_PENDING.mdupdated, or no changelog entry neededdocs/) and code comments, or nodocumentation updates needed