Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- type BLS12_381_Scalar = 52435875175126190479447740508185965837690552500527637822603658699938581184513
- type BLS12_381_Base = 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787
- type Fr = Zp BLS12_381_Scalar
- type Fq = Zp BLS12_381_Base
- type IP1 = "IP1"
- type Fq2 = Ext2 Fq IP1
- type IP2 = "IP2"
- type Fq6 = Ext3 Fq2 IP2
- type IP3 = "IP3"
- type Fq12 = Ext2 Fq6 IP3
- data BLS12_381_G1
- data BLS12_381_G2
- newtype BLS12_381_GT = BLS12_381_GT Fq12
- untwist :: Point BLS12_381_G2 -> (Fq12, Fq12)
- doubleEval :: Point BLS12_381_G2 -> Point BLS12_381_G1 -> Fq12
- addEval :: Point BLS12_381_G2 -> Point BLS12_381_G2 -> Point BLS12_381_G1 -> Fq12
- addEval' :: (Fq12, Fq12) -> (Fq12, Fq12) -> Point BLS12_381_G1 -> Fq12
- miller :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> Fq12
- miller' :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> Point BLS12_381_G2 -> [Bool] -> Fq12 -> Fq12
- pairingBLS :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> Fq12
- pow' :: MultiplicativeSemigroup a => a -> Natural -> a -> a
Documentation
type BLS12_381_Scalar = 52435875175126190479447740508185965837690552500527637822603658699938581184513 Source #
type BLS12_381_Base = 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787 Source #
type Fr = Zp BLS12_381_Scalar Source #
type Fq = Zp BLS12_381_Base Source #
data BLS12_381_G1 Source #
Instances
EllipticCurve BLS12_381_G1 Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 type BaseField BLS12_381_G1 Source # type ScalarField BLS12_381_G1 Source # inf :: Point BLS12_381_G1 Source # gen :: Point BLS12_381_G1 Source # add :: Point BLS12_381_G1 -> Point BLS12_381_G1 -> Point BLS12_381_G1 Source # mul :: ScalarField BLS12_381_G1 -> Point BLS12_381_G1 -> Point BLS12_381_G1 Source # | |
Pairing BLS12_381_G1 BLS12_381_G2 BLS12_381_GT Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 pairing :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> BLS12_381_GT Source # | |
type BaseField BLS12_381_G1 Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 | |
type ScalarField BLS12_381_G1 Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 |
data BLS12_381_G2 Source #
Instances
EllipticCurve BLS12_381_G2 Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 type BaseField BLS12_381_G2 Source # type ScalarField BLS12_381_G2 Source # inf :: Point BLS12_381_G2 Source # gen :: Point BLS12_381_G2 Source # add :: Point BLS12_381_G2 -> Point BLS12_381_G2 -> Point BLS12_381_G2 Source # mul :: ScalarField BLS12_381_G2 -> Point BLS12_381_G2 -> Point BLS12_381_G2 Source # | |
Pairing BLS12_381_G1 BLS12_381_G2 BLS12_381_GT Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 pairing :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> BLS12_381_GT Source # | |
type BaseField BLS12_381_G2 Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 | |
type ScalarField BLS12_381_G2 Source # | |
Defined in ZkFold.Base.Algebra.EllipticCurve.BLS12_381 |
newtype BLS12_381_GT Source #
An image of a pairing is a cyclic multiplicative subgroup of
of order Fq12
.BLS12_381_Scalar
Instances
doubleEval :: Point BLS12_381_G2 -> Point BLS12_381_G1 -> Fq12 Source #
addEval :: Point BLS12_381_G2 -> Point BLS12_381_G2 -> Point BLS12_381_G1 -> Fq12 Source #
miller :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> Fq12 Source #
miller' :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> Point BLS12_381_G2 -> [Bool] -> Fq12 -> Fq12 Source #
pairingBLS :: Point BLS12_381_G1 -> Point BLS12_381_G2 -> Fq12 Source #
Pairing calculation for a valid point in G1 and another valid point in G2.
pow' :: MultiplicativeSemigroup a => a -> Natural -> a -> a Source #