refactor: moving signature logic from ethlambda-types to ethlambda-crypto by Sahilgill24 · Pull Request #541 · lambdaclass/ethlambda · GitHub
Skip to content

refactor: moving signature logic from ethlambda-types to ethlambda-crypto - #541

Merged
MegaRedHand merged 4 commits into
lambdaclass:mainfrom
Sahilgill24:refactor/signature-logic-port
Jul 29, 2026
Merged

refactor: moving signature logic from ethlambda-types to ethlambda-crypto#541
MegaRedHand merged 4 commits into
lambdaclass:mainfrom
Sahilgill24:refactor/signature-logic-port

Conversation

@Sahilgill24

@Sahilgill24 Sahilgill24 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Description / Motivation

porting the lean-sig based signature logic from types crate to crypto crate as mentioned here

It is first of all a cleaner and more idiomatic approach and secondly ethlambda-types crate builds/compiles for the prover crate(zkVM prover), which also leads to dependency conflicts between leansig dependencies and the zkVM sdk dependencies being used. This port removes all leansig dependencies from the ethlambda-types

What Changed

  • added a new signature.rs file to the crypto crate along with a extension trait ValidatorPublicKeys with the same methods as before, it helps in avoiding cyclic dependencies and the call sites remain the same.
  • removed the older signature.rs from the types crate and moved the SIGNATURE_SIZE directly to the attestation.rs

Verification Checklist

  • Ran make fmt
  • Ran make lint (clippy with -D warnings)
  • Ran cargo test --workspace --release — all passing

@MegaRedHand MegaRedHand left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Left a suggestion

Comment thread crates/common/crypto/src/signature.rs Outdated
@Sahilgill24
Sahilgill24 marked this pull request as ready for review July 29, 2026 00:32
@greptile-apps

greptile-apps Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

@MegaRedHand MegaRedHand left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! Thanks for your contribution!

@MegaRedHand
MegaRedHand merged commit 97485de into lambdaclass:main Jul 29, 2026
8 checks passed
MegaRedHand added a commit that referenced this pull request Jul 29, 2026
Resolves the overlap with #541, which moved the signature primitives out of
`ethlambda-types` and into `ethlambda-crypto` while this branch was rewriting
those same primitives for leanVM's internalized XMSS.

The two wire-size constants cannot follow `signature.rs` into
`ethlambda-crypto`: `types::attestation::XmssSignature` and
`types::state::ValidatorPubkeyBytes` are defined in terms of them, and
`ethlambda-crypto` already depends on `ethlambda-types`. #541 hit the same
constraint and hardcoded `SIGNATURE_SIZE` in `types`. Keep that placement, but
source both from leanVM's xmss crate so they track the scheme parameters:
main's literal 2536 is the old leanSig size and is wrong for leanVM's wire
format.

`ethlambda-types` therefore keeps a narrow `xmss` dependency for the two
constants only, and `ssz`/`postcard` move to `ethlambda-crypto` along with the
signing code that needed them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants