crypto

package
v0.12.7 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2021 License: GPL-3.0 Imports: 10 Imported by: 36

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BatchVerify added in v0.12.0

func BatchVerify(msg []byte, keys []*Key, sigs []*Signature) bool

func HashScalar added in v0.9.8

func HashScalar(k *edwards25519.Point, outputIndex uint64) *edwards25519.Scalar

func KeyMultPubPriv added in v0.5.0

func KeyMultPubPriv(pub, priv *Key) *edwards25519.Point

Types

type BatchVerifier added in v0.12.1

type BatchVerifier struct {
	// contains filtered or unexported fields
}

BatchVerifier accumulates batch entries with Add, before performing batch verification with Verify.

func NewBatchVerifier added in v0.12.1

func NewBatchVerifier() BatchVerifier

NewBatchVerifier creates an empty BatchVerifier.

func (*BatchVerifier) Add added in v0.12.1

func (v *BatchVerifier) Add(publicKey *Key, message, sig []byte)

Add adds a (public key, message, sig) triple to the current batch.

func (*BatchVerifier) Verify added in v0.12.1

func (v *BatchVerifier) Verify() bool

Verify checks all entries in the current batch, returning true if all entries are valid and false if any one entry is invalid.

If a failure arises it is unknown which entry failed, the caller must verify each entry individually.

Calling Verify on an empty batch returns false.

type CosiSignature added in v0.5.0

type CosiSignature struct {
	Signature Signature
	Mask      uint64
	// contains filtered or unexported fields
}

func CosiAggregateCommitment added in v0.5.0

func CosiAggregateCommitment(randoms map[int]*Key) (*CosiSignature, error)

func (*CosiSignature) AggregatePublicKey added in v0.5.0

func (c *CosiSignature) AggregatePublicKey(publics []*Key) (*Key, error)

func (*CosiSignature) AggregateResponse added in v0.5.0

func (c *CosiSignature) AggregateResponse(publics []*Key, responses map[int]*[32]byte, message []byte, strict bool) error

func (*CosiSignature) Challenge added in v0.5.0

func (c *CosiSignature) Challenge(publics []*Key, message []byte) (*edwards25519.Scalar, error)

func (*CosiSignature) FullVerify added in v0.5.0

func (c *CosiSignature) FullVerify(publics []*Key, threshold int, message []byte) error

func (*CosiSignature) Keys added in v0.5.0

func (c *CosiSignature) Keys() []int

func (*CosiSignature) Mark added in v0.5.0

func (c *CosiSignature) Mark(i int) error

func (CosiSignature) MarshalJSON added in v0.5.0

func (c CosiSignature) MarshalJSON() ([]byte, error)

func (*CosiSignature) Response added in v0.5.0

func (c *CosiSignature) Response(privateKey, random *Key, publics []*Key, message []byte) (*[32]byte, error)

func (CosiSignature) String added in v0.5.0

func (c CosiSignature) String() string

func (*CosiSignature) ThresholdVerify added in v0.5.0

func (c *CosiSignature) ThresholdVerify(threshold int) bool

func (*CosiSignature) UnmarshalJSON added in v0.5.0

func (c *CosiSignature) UnmarshalJSON(b []byte) error

func (*CosiSignature) VerifyResponse added in v0.5.0

func (c *CosiSignature) VerifyResponse(publics []*Key, signer int, s *[32]byte, message []byte) error

type Hash

type Hash [32]byte

func HashFromString

func HashFromString(src string) (Hash, error)

func NewHash

func NewHash(data []byte) Hash

func (Hash) ForNetwork

func (h Hash) ForNetwork(net Hash) Hash

func (Hash) HasValue

func (h Hash) HasValue() bool

func (Hash) MarshalJSON

func (h Hash) MarshalJSON() ([]byte, error)

func (Hash) String

func (h Hash) String() string

func (*Hash) UnmarshalJSON

func (h *Hash) UnmarshalJSON(b []byte) error

type Key

type Key [32]byte

func CosiCommit added in v0.5.0

func CosiCommit(randReader io.Reader) *Key

func DeriveGhostPrivateKey

func DeriveGhostPrivateKey(R, a, b *Key, outputIndex uint64) *Key

func DeriveGhostPublicKey

func DeriveGhostPublicKey(r, A, B *Key, outputIndex uint64) *Key

func KeyFromString added in v0.5.10

func KeyFromString(s string) (Key, error)

func NewKeyFromSeed

func NewKeyFromSeed(seed []byte) Key

func ViewGhostOutputKey

func ViewGhostOutputKey(P, a, R *Key, outputIndex uint64) *Key

func (Key) CheckKey added in v0.6.0

func (k Key) CheckKey() bool

func (Key) DeterministicHashDerive

func (k Key) DeterministicHashDerive() Key

func (Key) HasValue added in v0.2.1

func (k Key) HasValue() bool

func (Key) MarshalJSON

func (k Key) MarshalJSON() ([]byte, error)

func (Key) Public

func (k Key) Public() Key

func (*Key) Sign

func (privateKey *Key) Sign(message []byte) Signature

func (Key) String

func (k Key) String() string

func (*Key) UnmarshalJSON

func (k *Key) UnmarshalJSON(b []byte) error

func (*Key) Verify

func (publicKey *Key) Verify(message []byte, sig Signature) bool

func (*Key) VerifyWithChallenge added in v0.5.0

func (publicKey *Key) VerifyWithChallenge(message []byte, sig Signature, a *edwards25519.Scalar) bool

type Signature

type Signature [64]byte

func (Signature) MarshalJSON

func (s Signature) MarshalJSON() ([]byte, error)

func (*Signature) R

func (s *Signature) R() []byte

func (*Signature) S

func (s *Signature) S() []byte

func (Signature) String

func (s Signature) String() string

func (*Signature) UnmarshalJSON

func (s *Signature) UnmarshalJSON(b []byte) error

Jump to

Keyboard shortcuts

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