Bump verifiable crate to rev 19b03de - #19
Merged
Merged
Conversation
Moves off the no-point-validation state onto upstream mainline. No JS API surface change; wire formats are unchanged. Behavioral changes pulled in from upstream: - curve-point validation on decode re-enabled for Member, MembersSet, MembersCommitment and StaticChunk - identity point rejected in is_member_valid and commitment construction (previously a wasm trap); regression test added - canonical KZG verifier-key pinning in validate/batch_validate - static verifier/prover caches for the Bandersnatch suite - secret-split (side-channel hardened scalar multiplication) bundled in std Also bumps transitive ark-vrf 0.5.0 -> 0.5.1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Upgrades the
verifiablecrate dependency from revf65b39dto rev19b03de(upstream mainline, merge of paritytech/verifiable#59).No JS API surface change. Proofs, signatures, ring roots, and member encodings remain wire-compatible with the previous rev — all existing cross-validation tests (JS vs Rust proof equality, commitment round-trips) pass unchanged.
What this pulls in from upstream
The previous pin matched the
no-point-validationstate; this moves onto mainline and picks up the hardening work from paritytech/verifiable#56–#59:Member,MembersCommitment(ring root),MembersSet, andStaticChunkbytes are validated (on-curve + correct subgroup) when decoded, so malformed input fails cleanly at decode instead of risking panics in downstream crypto.is_member_validbut made commitment construction panic (a wasm trap). Both paths now reject it with a proper error. A regression test coveringis_member_validandmembers_rootis added in this PR.validate/validate_with_commitment/is_valid/batch_validatereject a ring root whose embedded trusted-setup key is not the canonical Bandersnatch one, closing a membership-forgery vector for attacker-supplied commitments.secret-splitbundled intostd— side-channel resistant secret scalar multiplication now applies to the wasm prover paths (one_shot,sign). Uses the OS RNG via getrandom, which works under wasm through the already-enabledgetrandom/jsfeature.ark-vrfbump 0.5.0 → 0.5.1.Changes
packages/verifiablejs/Cargo.toml/Cargo.lock: rev bump (+ark-vrf0.5.1)packages/verifiablejs/src/lib.rs: newtest_identity_point_member_rejectedregression test.changeset/upgrade-verifiable-19b03de.md: changeset (minor) for the next releaseTesting
cargo check --target wasm32-unknown-unknowncleanpnpm build(both bundler and nodejs wasm-pack targets) cleanpnpm test: all 26 wasm tests pass (25 existing + 1 new regression test)