common

package
v0.0.0-...-b9de96a Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2023 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

Package common provides the BLS interfaces that are implemented by the various BLS wrappers.

This package should not be used by downstream consumers. These interfaces are re-exporter by github.com/prysmaticlabs/prysm/shared/bls. This package exists to prevent an import circular dependency.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Implementation

type Implementation interface {
	SecretKeyFromBytes(privKey []byte) (SecretKey, error)
	PublicKeyFromBytes(pubKey []byte) (PublicKey, error)
	SignatureFromBytes(sig []byte) (Signature, error)
	AggregatePublicKeys(pubs [][]byte) (PublicKey, error)
	Aggregate(sigs []Signature) Signature
	AggregateSignatures(sigs []Signature) Signature
	NewAggregateSignature() Signature
	RandKey() (SecretKey, error)
}

Implementation represents a BLS signatures implementation

type PublicKey

type PublicKey interface {
	Marshal() []byte
	Copy() PublicKey
	Aggregate(p2 PublicKey) PublicKey
	Hash() ([20]byte, error)
}

PublicKey represents a BLS public key.

type SecretKey

type SecretKey interface {
	PublicKey() PublicKey
	Sign(msg []byte) Signature
	Marshal() []byte
	IsZero() bool
}

SecretKey represents a BLS secret or private key.

type Signature

type Signature interface {
	Verify(pubKey PublicKey, msg []byte) bool
	AggregateVerify(pubKeys []PublicKey, msgs [][32]byte) bool
	FastAggregateVerify(pubKeys []PublicKey, msg [32]byte) bool
	Marshal() []byte
	Copy() Signature
}

Signature represents a BLS signature.

Jump to

Keyboard shortcuts

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