-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Perturbing/add msm bls #514
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haven't looked into ffi calls, just at the haskell portion of it.
I'll look into this in more depth once PR is out of draft
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
blsMSM :: forall curve. BLS curve => [Point curve] -> [Scalar] -> Either BLSTError (Point curve) | ||
blsMSM ps ss | ||
| null ps || null ss = Left BLST_UNKNOWN_ERROR | ||
| length ps /= length ss = Left BLST_UNKNOWN_ERROR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Documentation says "The number of points must be equal or smaller than the number of scalars."
| length ps /= length ss = Left BLST_UNKNOWN_ERROR | |
| length ps <= length ss = Left BLST_UNKNOWN_ERROR |
In any case, with my suggestion on the type of function arguments this check could be removed as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are correct that the underlying blst implementation allows for it, but it just doesn't use the excess scalars. CIP-0133 constrains it to be equal size.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In that case the haddock is wrong
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs
Outdated
Show resolved
Hide resolved
Thank you for taking a first look @lehins, much appreciated! The FFI is not working yet, I am getting some segmentation faults that I am trying to debug with valgrind. |
Description
Checklist
CHANGELOG.md
for the affected packages.New section is never added with the code changes. (See RELEASING.md)
.cabal
andCHANGELOG.md
files according to theversioning process.
.cabal
files for all affected packages are updated.If you change the bounds in a cabal file, that package itself must have a version increase. (See RELEASING.md)
.git-blame-ignore-revs