bls

package
v1.0.0-beta.0.rc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2020 License: GPL-3.0 Imports: 4 Imported by: 94

Documentation

Overview

Package bls implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme. This package exposes a public API for verifying and aggregating BLS signatures used by Ethereum 2.0.

Index

Constants

View Source
const CurveOrder = "52435875175126190479447740508185965837690552500527637822603658699938581184513"

CurveOrder for the BLS12-381 curve.

View Source
const DomainByteLength = 4

DomainByteLength length of domain byte array.

Variables

This section is empty.

Functions

func AggregateSignatures

func AggregateSignatures(sigs []iface.Signature) iface.Signature

AggregateSignatures converts a list of signatures into a single, aggregated sig.

func NewAggregateSignature

func NewAggregateSignature() iface.Signature

NewAggregateSignature creates a blank aggregate signature.

func RandKey

func RandKey() iface.SecretKey

RandKey creates a new private key using a random input.

func VerifyCompressed added in v1.0.0

func VerifyCompressed(signature, pub, msg []byte) bool

VerifyCompressed signature.

func VerifyMultipleSignatures added in v1.0.0

func VerifyMultipleSignatures(sigs [][]byte, msgs [][32]byte, pubKeys []iface.PublicKey) (bool, error)

VerifyMultipleSignatures verifies multiple signatures for distinct messages securely.

Types

type PublicKey

type PublicKey = iface.PublicKey

PublicKey represents a BLS public key.

func AggregatePublicKeys added in v1.0.0

func AggregatePublicKeys(pubs [][]byte) (PublicKey, error)

AggregatePublicKeys aggregates the provided raw public keys into a single key.

func PublicKeyFromBytes

func PublicKeyFromBytes(pubKey []byte) (PublicKey, error)

PublicKeyFromBytes creates a BLS public key from a BigEndian byte slice.

type SecretKey

type SecretKey = iface.SecretKey

SecretKey represents a BLS secret or private key.

func SecretKeyFromBytes

func SecretKeyFromBytes(privKey []byte) (SecretKey, error)

SecretKeyFromBytes creates a BLS private key from a BigEndian byte slice.

type Signature

type Signature = iface.Signature

Signature represents a BLS signature.

func SignatureFromBytes

func SignatureFromBytes(sig []byte) (Signature, error)

SignatureFromBytes creates a BLS signature from a LittleEndian byte slice.

type SignatureSet added in v1.0.0

type SignatureSet struct {
	Signatures [][]byte
	PublicKeys []PublicKey
	Messages   [][32]byte
}

SignatureSet refers to the defined set of signatures and its respective public keys and messages required to verify it.

func NewSet added in v1.0.0

func NewSet() *SignatureSet

NewSet constructs an empty signature set object.

func (*SignatureSet) Join added in v1.0.0

func (s *SignatureSet) Join(set *SignatureSet) *SignatureSet

Join merges the provided signature set to out current one.

func (*SignatureSet) Verify added in v1.0.0

func (s *SignatureSet) Verify() (bool, error)

Verify the current signature set using the batch verify algorithm.

Directories

Path Synopsis
Package blst implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme.
Package blst implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme.
Package herumi implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme.
Package herumi implements a go-wrapper around a library implementing the the BLS12-381 curve and signature scheme.
Package iface provides the BLS interfaces that are implemented by the various BLS wrappers.
Package iface provides the BLS interfaces that are implemented by the various BLS wrappers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL