ocrkey

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Dec 31, 2021 License: MIT Imports: 25 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 `gorm:"primary_key"`
	OnChainSigningAddress OnChainSigningAddress
	OffChainPublicKey     OffChainPublicKey
	ConfigPublicKey       ConfigPublicKey
	EncryptedPrivateKeys  []byte
	CreatedAt             time.Time
	UpdatedAt             time.Time
	DeletedAt             gorm.DeletedAt
}

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

func (EncryptedKeyBundle) TableName

func (EncryptedKeyBundle) TableName() string

type EncryptedOCRKeyExport

type EncryptedOCRKeyExport struct {
	ID                    models.Sha256Hash     `json:"id" gorm:"primary_key"`
	OnChainSigningAddress OnChainSigningAddress `json:"onChainSigningAddress"`
	OffChainPublicKey     OffChainPublicKey     `json:"offChainPublicKey"`
	ConfigPublicKey       ConfigPublicKey       `json:"configPublicKey"`
	Crypto                keystore.CryptoJSON   `json:"crypto"`
}

func (EncryptedOCRKeyExport) DecryptPrivateKey

func (export EncryptedOCRKeyExport) DecryptPrivateKey(auth string) (*KeyBundle, error)

DecryptPrivateKey returns the PrivateKey in export, decrypted via auth, or an error

type KeyBundle

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

KeyBundle represents the bundle of keys needed for OCR

func NewKeyBundle

func NewKeyBundle() (*KeyBundle, error)

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

func NewKeyBundleFrom

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

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) GoStringer

func (pk KeyBundle) GoStringer() string

GoStringer 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 pbulic 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) ToEncryptedExport

func (pk *KeyBundle) ToEncryptedExport(auth string, scryptParams utils.ScryptParams) (export []byte, err error)

func (*KeyBundle) UnmarshalJSON

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

UnmarshalJSON constructs KeyBundle from raw json

type OffChainPublicKey

type OffChainPublicKey ed25519.PublicKey

func (OffChainPublicKey) GormDBDataType

func (OffChainPublicKey) GormDBDataType(db *gorm.DB, field *schema.Field) string

GormDBDataType gorm db data type

func (OffChainPublicKey) GormDataType

func (OffChainPublicKey) GormDataType() string

GormDataType gorm common data type

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)

Jump to

Keyboard shortcuts

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