Skip to content

Commit

Permalink
naming update
Browse files Browse the repository at this point in the history
  • Loading branch information
SK0M0R0H committed Oct 4, 2020
1 parent 47f89fe commit c6ac2f8
Show file tree
Hide file tree
Showing 6 changed files with 169 additions and 168 deletions.
2 changes: 1 addition & 1 deletion pairing/bls12381/bls_groups_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bls
package bls12381

import (
"bytes"
Expand Down
105 changes: 53 additions & 52 deletions pairing/bls12381/group_g1.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bls
package bls12381

import (
"crypto/cipher"
Expand All @@ -7,112 +7,113 @@ import (

"github.com/corestario/kyber"
"github.com/corestario/kyber/group/mod"
bls12381 "github.com/kilic/bls12-381"
bls "github.com/kilic/bls12-381"
)

// KyberG1 is a kyber.Point holding a G1 point on BLS12-381 curve
type KyberG1 struct {
p *bls12381.PointG1
// pointG1 is a kyber.Point holding a G1 point on BLS12-381 curve
type pointG1 struct {
p *bls.PointG1
}

func NullKyberG1() *KyberG1 {
var p bls12381.PointG1
return newKyberG1(&p)
func newPointG1() *pointG1 {
var p bls.PointG1
return toPointG1(&p)
}
func newKyberG1(p *bls12381.PointG1) *KyberG1 {
return &KyberG1{p: p}

func toPointG1(p *bls.PointG1) *pointG1 {
return &pointG1{p: p}
}

func (k *KyberG1) Equal(k2 kyber.Point) bool {
return bls12381.NewG1().Equal(k.p, k2.(*KyberG1).p)
func (k *pointG1) Equal(k2 kyber.Point) bool {
return bls.NewG1().Equal(k.p, k2.(*pointG1).p)
}

func (k *KyberG1) Null() kyber.Point {
k.Set(newKyberG1(bls12381.NewG1().Zero()))
func (k *pointG1) Null() kyber.Point {
k.Set(toPointG1(bls.NewG1().Zero()))
return k
}

func (k *KyberG1) Base() kyber.Point {
k.Set(newKyberG1(bls12381.NewG1().One()))
func (k *pointG1) Base() kyber.Point {
k.Set(toPointG1(bls.NewG1().One()))
return k
}

func (k *KyberG1) Pick(rand cipher.Stream) kyber.Point {
s := mod.NewInt64(0, bls12381.NewG1().Q()).Pick(rand)
func (k *pointG1) Pick(rand cipher.Stream) kyber.Point {
s := mod.NewInt64(0, bls.NewG1().Q()).Pick(rand)
k.Mul(s, nil)
return k
}

func (k *KyberG1) Set(q kyber.Point) kyber.Point {
k.p.Set(q.(*KyberG1).p)
func (k *pointG1) Set(q kyber.Point) kyber.Point {
k.p.Set(q.(*pointG1).p)
return k
}

func (k *KyberG1) Clone() kyber.Point {
var p bls12381.PointG1
func (k *pointG1) Clone() kyber.Point {
var p bls.PointG1
p.Set(k.p)
return newKyberG1(&p)
return toPointG1(&p)
}

func (k *KyberG1) EmbedLen() int {
func (k *pointG1) EmbedLen() int {
panic("bls12-381: unsupported operation")
}

func (k *KyberG1) Embed(data []byte, rand cipher.Stream) kyber.Point {
func (k *pointG1) Embed(data []byte, rand cipher.Stream) kyber.Point {
panic("bls12-381: unsupported operation")
}

func (k *KyberG1) Data() ([]byte, error) {
func (k *pointG1) Data() ([]byte, error) {
panic("bls12-381: unsupported operation")
}

func (k *KyberG1) Add(a, b kyber.Point) kyber.Point {
aa := a.(*KyberG1)
bb := b.(*KyberG1)
bls12381.NewG1().Add(k.p, aa.p, bb.p)
func (k *pointG1) Add(a, b kyber.Point) kyber.Point {
aa := a.(*pointG1)
bb := b.(*pointG1)
bls.NewG1().Add(k.p, aa.p, bb.p)
return k
}

func (k *KyberG1) Sub(a, b kyber.Point) kyber.Point {
aa := a.(*KyberG1)
bb := b.(*KyberG1)
bls12381.NewG1().Sub(k.p, aa.p, bb.p)
func (k *pointG1) Sub(a, b kyber.Point) kyber.Point {
aa := a.(*pointG1)
bb := b.(*pointG1)
bls.NewG1().Sub(k.p, aa.p, bb.p)
return k
}

func (k *KyberG1) Neg(a kyber.Point) kyber.Point {
aa := a.(*KyberG1)
bls12381.NewG1().Neg(k.p, aa.p)
func (k *pointG1) Neg(a kyber.Point) kyber.Point {
aa := a.(*pointG1)
bls.NewG1().Neg(k.p, aa.p)
return k
}

func (k *KyberG1) Mul(s kyber.Scalar, q kyber.Point) kyber.Point {
func (k *pointG1) Mul(s kyber.Scalar, q kyber.Point) kyber.Point {
if q == nil {
q = NullKyberG1().Base()
q = newPointG1().Base()
}
bls12381.NewG1().MulScalar(k.p, q.(*KyberG1).p, &s.(*mod.Int).V)
bls.NewG1().MulScalar(k.p, q.(*pointG1).p, &s.(*mod.Int).V)
return k
}

func (k *KyberG1) MarshalBinary() ([]byte, error) {
return bls12381.NewG1().ToCompressed(k.p), nil
func (k *pointG1) MarshalBinary() ([]byte, error) {
return bls.NewG1().ToCompressed(k.p), nil
}

func (k *KyberG1) UnmarshalBinary(buff []byte) error {
func (k *pointG1) UnmarshalBinary(buff []byte) error {
var err error
k.p, err = bls12381.NewG1().FromCompressed(buff)
k.p, err = bls.NewG1().FromCompressed(buff)
return err
}

func (k *KyberG1) MarshalTo(w io.Writer) (int, error) {
func (k *pointG1) MarshalTo(w io.Writer) (int, error) {
buf, err := k.MarshalBinary()
if err != nil {
return 0, err
}
return w.Write(buf)
}

func (k *KyberG1) UnmarshalFrom(r io.Reader) (int, error) {
func (k *pointG1) UnmarshalFrom(r io.Reader) (int, error) {
buf := make([]byte, k.MarshalSize())
n, err := io.ReadFull(r, buf)
if err != nil {
Expand All @@ -121,22 +122,22 @@ func (k *KyberG1) UnmarshalFrom(r io.Reader) (int, error) {
return n, k.UnmarshalBinary(buf)
}

func (k *KyberG1) MarshalSize() int {
func (k *pointG1) MarshalSize() int {
return 48
}

func (k *KyberG1) String() string {
func (k *pointG1) String() string {
b, _ := k.MarshalBinary()
return "bls12-381.G1: " + hex.EncodeToString(b)
}

func (k *KyberG1) Hash(m []byte) kyber.Point {
p, _ := bls12381.NewG1().HashToCurve(m, Domain)
func (k *pointG1) Hash(m []byte) kyber.Point {
p, _ := bls.NewG1().HashToCurve(m, Domain)
k.p = p
return k

}

func (k *KyberG1) IsInCorrectGroup() bool {
return bls12381.NewG1().InCorrectSubgroup(k.p)
func (k *pointG1) IsInCorrectGroup() bool {
return bls.NewG1().InCorrectSubgroup(k.p)
}
104 changes: 52 additions & 52 deletions pairing/bls12381/group_g2.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bls
package bls12381

import (
"crypto/cipher"
Expand All @@ -8,117 +8,117 @@ import (

"github.com/corestario/kyber"
"github.com/corestario/kyber/group/mod"
bls12381 "github.com/kilic/bls12-381"
bls "github.com/kilic/bls12-381"
)

// Domain comes from the ciphersuite used by the RFC of this name compatible
// with the paired library > v18
var Domain = []byte("BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_")

// KyberG2 is a kyber.Point holding a G2 point on BLS12-381 curve
type KyberG2 struct {
p *bls12381.PointG2
// pointG2 is a kyber.Point holding a G2 point on BLS12-381 curve
type pointG2 struct {
p *bls.PointG2
}

func NullKyberG2() *KyberG2 {
var p bls12381.PointG2
return newKyberG2(&p)
func newPointG2() *pointG2 {
var p bls.PointG2
return toPointG2(&p)
}

func newKyberG2(p *bls12381.PointG2) *KyberG2 {
return &KyberG2{p: p}
func toPointG2(p *bls.PointG2) *pointG2 {
return &pointG2{p: p}
}

func (k *KyberG2) Equal(k2 kyber.Point) bool {
return bls12381.NewG2().Equal(k.p, k2.(*KyberG2).p)
func (k *pointG2) Equal(k2 kyber.Point) bool {
return bls.NewG2().Equal(k.p, k2.(*pointG2).p)
}

func (k *KyberG2) Null() kyber.Point {
k.Set(newKyberG2(bls12381.NewG2().Zero()))
func (k *pointG2) Null() kyber.Point {
k.Set(toPointG2(bls.NewG2().Zero()))
return k
}

func (k *KyberG2) Base() kyber.Point {
k.Set(newKyberG2(bls12381.NewG2().One()))
func (k *pointG2) Base() kyber.Point {
k.Set(toPointG2(bls.NewG2().One()))
return k
}

func (k *KyberG2) Pick(rand cipher.Stream) kyber.Point {
s := mod.NewInt64(0, bls12381.NewG2().Q()).Pick(rand)
func (k *pointG2) Pick(rand cipher.Stream) kyber.Point {
s := mod.NewInt64(0, bls.NewG2().Q()).Pick(rand)
k.Mul(s, nil)
return k
}

func (k *KyberG2) Set(q kyber.Point) kyber.Point {
k.p.Set(q.(*KyberG2).p)
func (k *pointG2) Set(q kyber.Point) kyber.Point {
k.p.Set(q.(*pointG2).p)
return k
}

func (k *KyberG2) Clone() kyber.Point {
var p bls12381.PointG2
func (k *pointG2) Clone() kyber.Point {
var p bls.PointG2
p.Set(k.p)
return newKyberG2(&p)
return toPointG2(&p)
}

func (k *KyberG2) EmbedLen() int {
func (k *pointG2) EmbedLen() int {
panic("bls12-381: unsupported operation")
}

func (k *KyberG2) Embed(data []byte, rand cipher.Stream) kyber.Point {
func (k *pointG2) Embed(data []byte, rand cipher.Stream) kyber.Point {
panic("bls12-381: unsupported operation")
}

func (k *KyberG2) Data() ([]byte, error) {
func (k *pointG2) Data() ([]byte, error) {
panic("bls12-381: unsupported operation")
}

func (k *KyberG2) Add(a, b kyber.Point) kyber.Point {
aa := a.(*KyberG2)
bb := b.(*KyberG2)
bls12381.NewG2().Add(k.p, aa.p, bb.p)
func (k *pointG2) Add(a, b kyber.Point) kyber.Point {
aa := a.(*pointG2)
bb := b.(*pointG2)
bls.NewG2().Add(k.p, aa.p, bb.p)
return k
}

func (k *KyberG2) Sub(a, b kyber.Point) kyber.Point {
aa := a.(*KyberG2)
bb := b.(*KyberG2)
bls12381.NewG2().Sub(k.p, aa.p, bb.p)
func (k *pointG2) Sub(a, b kyber.Point) kyber.Point {
aa := a.(*pointG2)
bb := b.(*pointG2)
bls.NewG2().Sub(k.p, aa.p, bb.p)
return k
}

func (k *KyberG2) Neg(a kyber.Point) kyber.Point {
aa := a.(*KyberG2)
bls12381.NewG2().Neg(k.p, aa.p)
func (k *pointG2) Neg(a kyber.Point) kyber.Point {
aa := a.(*pointG2)
bls.NewG2().Neg(k.p, aa.p)
return k
}

func (k *KyberG2) Mul(s kyber.Scalar, q kyber.Point) kyber.Point {
func (k *pointG2) Mul(s kyber.Scalar, q kyber.Point) kyber.Point {
if q == nil {
q = NullKyberG2().Base()
q = newPointG2().Base()
}
bls12381.NewG2().MulScalar(k.p, q.(*KyberG2).p, &s.(*mod.Int).V)
bls.NewG2().MulScalar(k.p, q.(*pointG2).p, &s.(*mod.Int).V)
return k
}

func (k *KyberG2) MarshalBinary() ([]byte, error) {
return bls12381.NewG2().ToCompressed(k.p), nil
func (k *pointG2) MarshalBinary() ([]byte, error) {
return bls.NewG2().ToCompressed(k.p), nil
}

func (k *KyberG2) UnmarshalBinary(buff []byte) error {
func (k *pointG2) UnmarshalBinary(buff []byte) error {
var err error
k.p, err = bls12381.NewG2().FromCompressed(buff)
k.p, err = bls.NewG2().FromCompressed(buff)
return err
}

func (k *KyberG2) MarshalTo(w io.Writer) (int, error) {
func (k *pointG2) MarshalTo(w io.Writer) (int, error) {
buf, err := k.MarshalBinary()
if err != nil {
return 0, err
}
return w.Write(buf)
}

func (k *KyberG2) UnmarshalFrom(r io.Reader) (int, error) {
func (k *pointG2) UnmarshalFrom(r io.Reader) (int, error) {
buf := make([]byte, k.MarshalSize())
n, err := io.ReadFull(r, buf)
if err != nil {
Expand All @@ -127,17 +127,17 @@ func (k *KyberG2) UnmarshalFrom(r io.Reader) (int, error) {
return n, k.UnmarshalBinary(buf)
}

func (k *KyberG2) MarshalSize() int {
func (k *pointG2) MarshalSize() int {
return 96
}

func (k *KyberG2) String() string {
func (k *pointG2) String() string {
b, _ := k.MarshalBinary()
return "bls12-381.G1: " + hex.EncodeToString(b)
}

func (k *KyberG2) Hash(m []byte) kyber.Point {
pg2, _ := bls12381.NewG2().HashToCurve(m, Domain)
func (k *pointG2) Hash(m []byte) kyber.Point {
pg2, _ := bls.NewG2().HashToCurve(m, Domain)
k.p = pg2
return k
}
Expand All @@ -148,6 +148,6 @@ func sha256Hash(in []byte) []byte {
return h.Sum(nil)
}

func (k *KyberG2) IsInCorrectGroup() bool {
return bls12381.NewG2().InCorrectSubgroup(k.p)
func (k *pointG2) IsInCorrectGroup() bool {
return bls.NewG2().InCorrectSubgroup(k.p)
}
Loading

0 comments on commit c6ac2f8

Please sign in to comment.