Skip to content

add test vectors of IETF draft bls signature scheme#630

Open
perturbing wants to merge 1 commit into
masterfrom
perturbing/leios-ietf-test-vectors
Open

add test vectors of IETF draft bls signature scheme#630
perturbing wants to merge 1 commit into
masterfrom
perturbing/leios-ietf-test-vectors

Conversation

@perturbing
Copy link
Copy Markdown
Member

@perturbing perturbing commented Feb 16, 2026

Closes #626

This PR adds test vectors for our BLS signature implementation.

@perturbing perturbing force-pushed the perturbing/leios-ietf-pop-fix branch from 267c662 to a0f1caa Compare April 15, 2026 06:46
@perturbing perturbing force-pushed the perturbing/leios-ietf-pop-fix branch from a0f1caa to 3f78056 Compare May 5, 2026 09:44
@perturbing perturbing force-pushed the perturbing/leios-ietf-test-vectors branch 3 times, most recently from 6ff24de to 472294a Compare May 5, 2026 10:41
@perturbing perturbing marked this pull request as ready for review May 5, 2026 11:23
@perturbing perturbing requested a review from lehins as a code owner May 5, 2026 11:23
@perturbing
Copy link
Copy Markdown
Member Author

This can be merged after #629

@perturbing perturbing force-pushed the perturbing/leios-ietf-pop-fix branch 3 times, most recently from 302e0d5 to 91032d9 Compare May 21, 2026 11:12
@perturbing perturbing force-pushed the perturbing/leios-ietf-test-vectors branch from 472294a to ee6d49d Compare May 21, 2026 11:16
Copy link
Copy Markdown
Collaborator

@lehins lehins left a comment

Choose a reason for hiding this comment

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

Aside from issue with SECP256K1_ENABLED flag this PR looks good

exposed-modules:
Test.Crypto.Vector.Secp256k1DSIGN
Test.Crypto.Vector.StringConstants
Test.Crypto.Vector.Vectors
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.

Moving this module out of this cabal flag will cause it to fail compilation if DSECP256K1_ENABLED is turned off.

I am not quite sure why it was developed behind a cabal flag, but we don't want to break it all of a sudden. I suggest we investigate whether we can remove this flag and make secp256k a permanent feature without ability to opt-out.

Although, that will have to be done in a separate PR.

Comment on lines +108 to +111
let result =
case uncheckedAggregateVerKeysDSIGN vKeys of
Left err -> Left err
Right avk -> verifyDSIGN ctx avk msg sig
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.

Suggested change
let result =
case uncheckedAggregateVerKeysDSIGN vKeys of
Left err -> Left err
Right avk -> verifyDSIGN ctx avk msg sig
let result = do
avk <- uncheckedAggregateVerKeysDSIGN vKeys
verifyDSIGN ctx avk msg sig

BLS12381MinVerKeyDSIGN,
DSIGNAggregatable (PossessionProofDSIGN),
DSIGNAlgorithm (SigDSIGN, SignKeyDSIGN, VerKeyDSIGN),
EcdsaSecp256k1DSIGN,
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.

If we want this module to be always visible, then we need to hide all secp256k functionality behind SECP256K1_ENABLED CPP flag

If we are to preserve this flag we should really have a separate CI build with it disabled

Base automatically changed from perturbing/leios-ietf-pop-fix to master May 21, 2026 12:24
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.

2 participants