keys

package
v0.0.0-...-67407b1 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2020 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const EcdsaSignatureLen = 64

EcdsaSignatureLen is 64 bytes

View Source
const PrivKeyBytesLen = 32

PrivKeyBytesLen are 32-bytes for all supported curvetypes

Variables

This section is empty.

Functions

This section is empty.

Types

type KeyPair

type KeyPair struct {
	PublicKey  *types.PublicKey `json:"public_key"`
	PrivateKey []byte           `json:"private_key"`
}

KeyPair contains a PrivateKey and its associated PublicKey

func GenerateKeypair

func GenerateKeypair(curve types.CurveType) (*KeyPair, error)

GenerateKeypair returns a Keypair of a specified CurveType

func (*KeyPair) IsValid

func (k *KeyPair) IsValid() error

IsValid checks the validity of a keypair

func (*KeyPair) MarshalJSON

func (k *KeyPair) MarshalJSON() ([]byte, error)

MarshalJSON overrides the default JSON marshaler and encodes bytes as hex instead of base64.

func (*KeyPair) Signer

func (k *KeyPair) Signer() (Signer, error)

Signer returns the constructs a Signer for the KeyPair.

func (*KeyPair) UnmarshalJSON

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

UnmarshalJSON overrides the default JSON unmarshaler and decodes bytes from hex instead of base64.

type Signer

type Signer interface {
	PublicKey() *types.PublicKey
	Sign(payload *types.SigningPayload, sigType types.SignatureType) (*types.Signature, error)
	Verify(signature *types.Signature) error
}

Signer is an interface for different curve signers

type SignerEdwards25519

type SignerEdwards25519 struct {
	KeyPair *KeyPair
}

SignerEdwards25519 is initialized from a keypair

func (*SignerEdwards25519) PublicKey

func (s *SignerEdwards25519) PublicKey() *types.PublicKey

PublicKey returns the PublicKey of the signer

func (*SignerEdwards25519) Sign

func (s *SignerEdwards25519) Sign(
	payload *types.SigningPayload,
	sigType types.SignatureType,
) (*types.Signature, error)

Sign arbitrary payloads using a KeyPair

func (*SignerEdwards25519) Verify

func (s *SignerEdwards25519) Verify(signature *types.Signature) error

Verify verifies a Signature, by checking the validity of a Signature, the SigningPayload, and the PublicKey of the Signature.

type SignerSecp256k1

type SignerSecp256k1 struct {
	KeyPair *KeyPair
}

SignerSecp256k1 is initialized from a keypair

func (*SignerSecp256k1) PublicKey

func (s *SignerSecp256k1) PublicKey() *types.PublicKey

PublicKey returns the PublicKey of the signer

func (*SignerSecp256k1) Sign

func (s *SignerSecp256k1) Sign(
	payload *types.SigningPayload,
	sigType types.SignatureType,
) (*types.Signature, error)

Sign arbitrary payloads using a KeyPair

func (*SignerSecp256k1) Verify

func (s *SignerSecp256k1) Verify(signature *types.Signature) error

Verify verifies a Signature, by checking the validity of a Signature, the SigningPayload, and the PublicKey of the Signature.

Jump to

Keyboard shortcuts

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