kyber: go.dedis.ch/kyber/sign/schnorr Index | Files

package schnorr

import "go.dedis.ch/kyber/sign/schnorr"

Package schnorr implements the vanilla Schnorr signature scheme. See https://en.wikipedia.org/wiki/Schnorr_signature.

The only difference regarding the vanilla reference is the computation of the response. This implementation adds the random component with the challenge times private key while the Wikipedia article substracts them.

The resulting signature is compatible with EdDSA verification algorithm when using the edwards25519 group, and by extension the CoSi verification algorithm.

Index

Package Files

schnorr.go

func Sign Uses

func Sign(s Suite, private kyber.Scalar, msg []byte) ([]byte, error)

Sign creates a Sign signature from a msg and a private key. This signature can be verified with VerifySchnorr. It's also a valid EdDSA signature when using the edwards25519 Group.

func Verify Uses

func Verify(g kyber.Group, public kyber.Point, msg, sig []byte) error

Verify verifies a given Schnorr signature. It returns nil iff the given signature is valid.

type Suite Uses

type Suite interface {
    kyber.Group
    kyber.Random
}

Suite represents the set of functionalities needed by the package schnorr.

Package schnorr imports 5 packages (graph) and is imported by 2 packages. Updated 2019-10-30. Refresh now. Tools for package owners.