ocrkey

package
v2.5.2-mercury-20230925 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2023 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrScalarTooBig = errors.Errorf("can't handle scalars greater than %d", curve25519.PointSize)
)

Functions

This section is empty.

Types

type ConfigPublicKey

type ConfigPublicKey [curve25519.PointSize]byte

ConfigPublicKey represents the public key for the config decryption keypair

func (ConfigPublicKey) MarshalJSON

func (cpk ConfigPublicKey) MarshalJSON() ([]byte, error)

func (ConfigPublicKey) Raw

func (cpk ConfigPublicKey) Raw() string

func (*ConfigPublicKey) Scan

func (cpk *ConfigPublicKey) Scan(value interface{}) error

Scan reads the database value and returns an instance.

func (ConfigPublicKey) String

func (cpk ConfigPublicKey) String() string

func (*ConfigPublicKey) UnmarshalJSON

func (cpk *ConfigPublicKey) UnmarshalJSON(input []byte) error

func (*ConfigPublicKey) UnmarshalText

func (cpk *ConfigPublicKey) UnmarshalText(bs []byte) error

func (ConfigPublicKey) Value

func (cpk ConfigPublicKey) Value() (driver.Value, error)

Value returns this instance serialized for database storage.

type EncryptedKeyBundle

type EncryptedKeyBundle struct {
	ID                    models.Sha256Hash
	OnChainSigningAddress OnChainSigningAddress
	OffChainPublicKey     OffChainPublicKey
	ConfigPublicKey       ConfigPublicKey
	EncryptedPrivateKeys  []byte
	CreatedAt             time.Time
	UpdatedAt             time.Time
	DeletedAt             *time.Time
}

EncryptedKeyBundle holds an encrypted KeyBundle

func (*EncryptedKeyBundle) Decrypt

func (ekb *EncryptedKeyBundle) Decrypt(auth string) (*KeyBundle, error)

Decrypt returns the PrivateKeys in e, decrypted via auth, or an error

func (EncryptedKeyBundle) GetID

func (ekb EncryptedKeyBundle) GetID() string

func (*EncryptedKeyBundle) SetID

func (ekb *EncryptedKeyBundle) SetID(value string) error

type EncryptedOCRKeyExport

type EncryptedOCRKeyExport struct {
	KeyType               string                `json:"keyType"`
	ID                    string                `json:"id"`
	OnChainSigningAddress OnChainSigningAddress `json:"onChainSigningAddress"`
	OffChainPublicKey     OffChainPublicKey     `json:"offChainPublicKey"`
	ConfigPublicKey       ConfigPublicKey       `json:"configPublicKey"`
	Crypto                keystore.CryptoJSON   `json:"crypto"`
}

func (EncryptedOCRKeyExport) GetCrypto

type KeyBundle

type KeyBundle struct {
	ID models.Sha256Hash
	// contains filtered or unexported fields
}

KeyBundle represents the bundle of keys needed for OCR

func New

func New() (*KeyBundle, error)

New makes a new set of OCR key bundles from cryptographically secure entropy

func NewFrom

func NewFrom(onChainSigning io.Reader, offChainSigning io.Reader, offChainEncryption io.Reader) (*KeyBundle, error)

NewFrom makes a new set of OCR key bundles from cryptographically secure entropy

func (*KeyBundle) ConfigDiffieHellman

func (pk *KeyBundle) ConfigDiffieHellman(base *[curve25519.PointSize]byte) (
	sharedPoint *[curve25519.PointSize]byte, err error,
)

ConfigDiffieHellman returns the shared point obtained by multiplying someone's public key by a secret scalar ( in this case, the offChainEncryption key.)

func (*KeyBundle) Encrypt

func (pk *KeyBundle) Encrypt(auth string, scryptParams utils.ScryptParams) (*EncryptedKeyBundle, error)

Encrypt combines the KeyBundle into a single json-serialized bytes array and then encrypts

func (KeyBundle) GoString

func (pk KeyBundle) GoString() string

GoString reduces the risk of accidentally logging the private key

func (*KeyBundle) MarshalJSON

func (pk *KeyBundle) MarshalJSON() ([]byte, error)

MarshalJSON marshals the private keys into json

func (*KeyBundle) PublicKeyAddressOnChain

func (pk *KeyBundle) PublicKeyAddressOnChain() ocrtypes.OnChainSigningAddress

PublicKeyAddressOnChain returns public component of the keypair used in SignOnChain

func (*KeyBundle) PublicKeyConfig

func (pk *KeyBundle) PublicKeyConfig() [curve25519.PointSize]byte

PublicKeyConfig returns the public component of the keypair used in ConfigKeyShare

func (*KeyBundle) PublicKeyOffChain

func (pk *KeyBundle) PublicKeyOffChain() ocrtypes.OffchainPublicKey

PublicKeyOffChain returns the public component of the keypair used in SignOffChain

func (*KeyBundle) SignOffChain

func (pk *KeyBundle) SignOffChain(msg []byte) (signature []byte, err error)

SignOffChain returns an EdDSA-Ed25519 signature on msg.

func (*KeyBundle) SignOnChain

func (pk *KeyBundle) SignOnChain(msg []byte) (signature []byte, err error)

SignOnChain returns an ethereum-style ECDSA secp256k1 signature on msg.

func (KeyBundle) String

func (pk KeyBundle) String() string

String reduces the risk of accidentally logging the private key

func (KeyBundle) ToV2

func (pk KeyBundle) ToV2() KeyV2

GoString reduces the risk of accidentally logging the private key

func (*KeyBundle) UnmarshalJSON

func (pk *KeyBundle) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON constructs KeyBundle from raw json

type KeyV2

type KeyV2 struct {
	OnChainSigning     *onChainPrivateKey
	OffChainSigning    *offChainPrivateKey
	OffChainEncryption *[curve25519.ScalarSize]byte
}

func FromEncryptedJSON

func FromEncryptedJSON(keyJSON []byte, password string) (KeyV2, error)

func MustNewV2XXXTestingOnly

func MustNewV2XXXTestingOnly(k *big.Int) KeyV2

func NewV2

func NewV2() (KeyV2, error)

func (KeyV2) ConfigDiffieHellman

func (key KeyV2) ConfigDiffieHellman(base *[curve25519.PointSize]byte) (
	sharedPoint *[curve25519.PointSize]byte, err error,
)

ConfigDiffieHellman returns the shared point obtained by multiplying someone's public key by a secret scalar ( in this case, the OffChainEncryption key.)

func (KeyV2) GetID

func (key KeyV2) GetID() string

func (KeyV2) GoString

func (key KeyV2) GoString() string

func (KeyV2) ID

func (key KeyV2) ID() string

func (KeyV2) MarshalJSON

func (key KeyV2) MarshalJSON() ([]byte, error)

MarshalJSON marshals the private keys into json

func (KeyV2) PublicKeyAddressOnChain

func (key KeyV2) PublicKeyAddressOnChain() ocrtypes.OnChainSigningAddress

PublicKeyAddressOnChain returns public component of the keypair used in SignOnChain

func (KeyV2) PublicKeyConfig

func (key KeyV2) PublicKeyConfig() [curve25519.PointSize]byte

PublicKeyConfig returns the public component of the keypair used in ConfigKeyShare

func (KeyV2) PublicKeyOffChain

func (key KeyV2) PublicKeyOffChain() ocrtypes.OffchainPublicKey

PublicKeyOffChain returns the public component of the keypair used in SignOffChain

func (KeyV2) Raw

func (key KeyV2) Raw() Raw

func (KeyV2) SignOffChain

func (key KeyV2) SignOffChain(msg []byte) (signature []byte, err error)

SignOffChain returns an EdDSA-Ed25519 signature on msg.

func (KeyV2) SignOnChain

func (key KeyV2) SignOnChain(msg []byte) (signature []byte, err error)

SignOnChain returns an ethereum-style ECDSA secp256k1 signature on msg.

func (KeyV2) String

func (key KeyV2) String() string

func (KeyV2) ToEncryptedJSON

func (key KeyV2) ToEncryptedJSON(password string, scryptParams utils.ScryptParams) (export []byte, err error)

func (*KeyV2) UnmarshalJSON

func (key *KeyV2) UnmarshalJSON(b []byte) (err error)

type OffChainPublicKey

type OffChainPublicKey ed25519.PublicKey

func (OffChainPublicKey) MarshalJSON

func (ocpk OffChainPublicKey) MarshalJSON() ([]byte, error)

func (OffChainPublicKey) Raw

func (ocpk OffChainPublicKey) Raw() string

func (*OffChainPublicKey) Scan

func (ocpk *OffChainPublicKey) Scan(value interface{}) error

func (OffChainPublicKey) String

func (ocpk OffChainPublicKey) String() string

func (*OffChainPublicKey) UnmarshalJSON

func (ocpk *OffChainPublicKey) UnmarshalJSON(input []byte) error

func (*OffChainPublicKey) UnmarshalText

func (ocpk *OffChainPublicKey) UnmarshalText(bs []byte) error

func (OffChainPublicKey) Value

func (ocpk OffChainPublicKey) Value() (driver.Value, error)

type OnChainPublicKey

type OnChainPublicKey ecdsa.PublicKey

func (OnChainPublicKey) Address

type OnChainSigningAddress

type OnChainSigningAddress ocrtypes.OnChainSigningAddress

func (OnChainSigningAddress) MarshalJSON

func (ocsa OnChainSigningAddress) MarshalJSON() ([]byte, error)

func (*OnChainSigningAddress) Scan

func (ocsa *OnChainSigningAddress) Scan(value interface{}) error

func (OnChainSigningAddress) String

func (ocsa OnChainSigningAddress) String() string

func (*OnChainSigningAddress) UnmarshalJSON

func (ocsa *OnChainSigningAddress) UnmarshalJSON(input []byte) error

func (*OnChainSigningAddress) UnmarshalText

func (ocsa *OnChainSigningAddress) UnmarshalText(bs []byte) error

func (OnChainSigningAddress) Value

func (ocsa OnChainSigningAddress) Value() (driver.Value, error)

type Raw

type Raw []byte

func (Raw) GoString

func (raw Raw) GoString() string

func (Raw) Key

func (raw Raw) Key() KeyV2

func (Raw) String

func (raw Raw) String() string

Jump to

Keyboard shortcuts

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