Documentation
¶
Index ¶
- type E2
- func (e *E2) Add(api frontend.API, e1, e2 E2) *E2
- func (e *E2) Assign(a *bls24315.E2)
- func (e *E2) Conjugate(api frontend.API, e1 E2) *E2
- func (e *E2) Double(api frontend.API, e1 E2) *E2
- func (e *E2) Inverse(api frontend.API, e1 E2, ext Extension) *E2
- func (e *E2) Mul(api frontend.API, e1, e2 E2, ext Extension) *E2
- func (e *E2) MulByFp(api frontend.API, e1 E2, c interface{}) *E2
- func (e *E2) MulByNonResidue(api frontend.API, e1 E2, ext Extension) *E2
- func (e *E2) MustBeEqual(api frontend.API, other E2)
- func (e *E2) Neg(api frontend.API, e1 E2) *E2
- func (e *E2) SetOne(api frontend.API) *E2
- func (e *E2) Square(api frontend.API, x E2, ext Extension) *E2
- func (e *E2) Sub(api frontend.API, e1, e2 E2) *E2
- type E4
- func (e *E4) Add(api frontend.API, e1, e2 E4) *E4
- func (e *E4) Assign(a *bls24315.E4)
- func (e *E4) Conjugate(api frontend.API, e1 E4) *E4
- func (e *E4) Double(api frontend.API, e1 E4) *E4
- func (e *E4) Inverse(api frontend.API, e1 E4, ext Extension) *E4
- func (e *E4) Mul(api frontend.API, e1, e2 E4, ext Extension) *E4
- func (e *E4) MulByFp(api frontend.API, e1 E4, c interface{}) *E4
- func (e *E4) MulByNonResidue(api frontend.API, e1 E4, ext Extension) *E4
- func (e *E4) MustBeEqual(api frontend.API, other E4)
- func (e *E4) Neg(api frontend.API, e1 E4) *E4
- func (e *E4) SetOne(api frontend.API) *E4
- func (e *E4) Square(api frontend.API, x E4, ext Extension) *E4
- func (e *E4) Sub(api frontend.API, e1, e2 E4) *E4
- type E12
- func (e *E12) Add(api frontend.API, e1, e2 E12) *E12
- func (e *E12) Assign(a *bls24315.E12)
- func (e *E12) Inverse(api frontend.API, e1 E12, ext Extension) *E12
- func (e *E12) Mul(api frontend.API, e1, e2 E12, ext Extension) *E12
- func (e *E12) MulBy01(api frontend.API, c0, c1 E4, ext Extension) *E12
- func (e *E12) MulByE4(api frontend.API, e1 E12, e2 E4, ext Extension) *E12
- func (e *E12) MulByFp2(api frontend.API, e1 E12, e2 E4, ext Extension) *E12
- func (e *E12) MulByNonResidue(api frontend.API, e1 E12, ext Extension) *E12
- func (e *E12) MustBeEqual(api frontend.API, other E12)
- func (e *E12) Neg(api frontend.API, e1 E12) *E12
- func (e *E12) Square(api frontend.API, x E12, ext Extension) *E12
- func (e *E12) Sub(api frontend.API, e1, e2 E12) *E12
- type E24
- func (e *E24) Add(api frontend.API, e1, e2 E24) *E24
- func (e *E24) Assign(a *bls24315.E24)
- func (e *E24) Conjugate(api frontend.API, e1 E24) *E24
- func (e *E24) CyclotomicSquare(api frontend.API, x E24, ext Extension) *E24
- func (e *E24) CyclotomicSquareCompressed(api frontend.API, x E24, ext Extension) *E24
- func (e *E24) Decompress(api frontend.API, x E24, ext Extension) *E24
- func (e *E24) Expt(api frontend.API, x E24, exponent uint64, ext Extension) *E24
- func (e *E24) FinalExponentiation(api frontend.API, e1 E24, genT uint64, ext Extension) *E24
- func (e *E24) Frobenius(api frontend.API, x E24, ext Extension) *E24
- func (e *E24) FrobeniusQuad(api frontend.API, x E24, ext Extension) *E24
- func (e *E24) FrobeniusSquare(api frontend.API, x E24, ext Extension) *E24
- func (e *E24) Inverse(api frontend.API, e1 E24, ext Extension) *E24
- func (e *E24) Mul(api frontend.API, e1, e2 E24, ext Extension) *E24
- func (e *E24) MulBy034(api frontend.API, c3, c4 E4, ext Extension) *E24
- func (e *E24) MustBeEqual(api frontend.API, other E24)
- func (e *E24) Neg(api frontend.API, e1 E24) *E24
- func (e *E24) SetOne(api frontend.API) *E24
- func (e *E24) Square(api frontend.API, x E24, ext Extension) *E24
- func (e *E24) Sub(api frontend.API, e1, e2 E24) *E24
- type Extension
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type E2 ¶
E2 element in a quadratic extension
func (*E2) MulByNonResidue ¶
MulByNonResidue multiplies an fp2 elmt by the imaginary elmt ext.uSquare is the square of the imaginary root
func (*E2) MustBeEqual ¶
MustBeEqual constraint self to be equal to other into the given constraint system
type E4 ¶
type E4 struct {
B0, B1 E2
}
E4 element in a quadratic extension
func (*E4) MulByNonResidue ¶
MulByNonResidue multiplies an e4 elmt by the imaginary elmt ext.uSquare is the square of the imaginary root
func (*E4) MustBeEqual ¶
MustBeEqual constraint self to be equal to other into the given constraint system
type E12 ¶
type E12 struct {
C0, C1, C2 E4
}
E12 element in a quadratic extension
func (*E12) MulByFp2 ¶
MulByFp2 creates a fp12elmt from fp elmts icube is the imaginary elmt to the cube
func (*E12) MulByNonResidue ¶
MulByNonResidue multiplies e by the imaginary elmt of Fp12 (noted a+bV+cV where V**3 in F^2)
func (*E12) MustBeEqual ¶
MustBeEqual constraint self to be equal to other into the given constraint system
type E24 ¶
type E24 struct {
D0, D1 E12
}
E24 element in a quadratic extension
func (*E24) CyclotomicSquare ¶
Granger-Scott's cyclotomic square squares a Fp24 elt in the cyclotomic group https://eprint.iacr.org/2009/565.pdf, 3.2
func (*E24) CyclotomicSquareCompressed ¶
Karabina's compressed cyclotomic square https://eprint.iacr.org/2010/542.pdf
func (*E24) Decompress ¶
Decompress Karabina's cyclotomic square result
func (*E24) Expt ¶
Expt compute e1**exponent, where the exponent is hardcoded This function is only used for the final expo of the pairing for bls24315, so the exponent is supposed to be hardcoded and on 32 bits.
func (*E24) FinalExponentiation ¶
FinalExponentiation computes the final expo x**(p**12-1)(p**4+1)(p**8 - p**4 +1)/r
func (*E24) FrobeniusQuad ¶
FrobeniusQuad applies frob**4 to an fp24 elmt
func (*E24) FrobeniusSquare ¶
FrobeniusSquare applies frob**2 to an fp24 elmt
func (*E24) MustBeEqual ¶
MustBeEqual constraint self to be equal to other into the given constraint system
type Extension ¶
type Extension struct {
// contains filtered or unexported fields
}
Extension stores the non residue elmt for an extension of type Fp->Fp2->Fp4->Fp12->Fp24 (Fp2 = Fp(u), Fp4 = Fp2(v), Fp12 = Fp4(w), Fp24 = Fp6(i))
func GetBLS24315ExtensionFp24 ¶
GetBLS24315ExtensionFp24 get extension field parameters for bls24315