Documentation ¶
Index ¶
- Variables
- type ConfigPublicKey
- func (cpk ConfigPublicKey) MarshalJSON() ([]byte, error)
- func (cpk ConfigPublicKey) Raw() string
- func (cpk *ConfigPublicKey) Scan(value interface{}) error
- func (cpk ConfigPublicKey) String() string
- func (cpk *ConfigPublicKey) UnmarshalJSON(input []byte) error
- func (cpk *ConfigPublicKey) UnmarshalText(bs []byte) error
- func (cpk ConfigPublicKey) Value() (driver.Value, error)
- type EncryptedKeyBundle
- type EncryptedOCRKeyExport
- type KeyBundle
- func (pk *KeyBundle) ConfigDiffieHellman(base *[curve25519.PointSize]byte) (sharedPoint *[curve25519.PointSize]byte, err error)
- func (pk *KeyBundle) Encrypt(auth string, scryptParams utils.ScryptParams) (*EncryptedKeyBundle, error)
- func (pk KeyBundle) GoStringer() string
- func (pk *KeyBundle) MarshalJSON() ([]byte, error)
- func (pk *KeyBundle) PublicKeyAddressOnChain() ocrtypes.OnChainSigningAddress
- func (pk *KeyBundle) PublicKeyConfig() [curve25519.PointSize]byte
- func (pk *KeyBundle) PublicKeyOffChain() ocrtypes.OffchainPublicKey
- func (pk *KeyBundle) SignOffChain(msg []byte) (signature []byte, err error)
- func (pk *KeyBundle) SignOnChain(msg []byte) (signature []byte, err error)
- func (pk KeyBundle) String() string
- func (pk *KeyBundle) ToEncryptedExport(auth string, scryptParams utils.ScryptParams) (export []byte, err error)
- func (pk *KeyBundle) UnmarshalJSON(b []byte) (err error)
- type OffChainPublicKey
- func (OffChainPublicKey) GormDBDataType(db *gorm.DB, field *schema.Field) string
- func (OffChainPublicKey) GormDataType() string
- func (ocpk OffChainPublicKey) MarshalJSON() ([]byte, error)
- func (ocpk OffChainPublicKey) Raw() string
- func (ocpk *OffChainPublicKey) Scan(value interface{}) error
- func (ocpk OffChainPublicKey) String() string
- func (ocpk *OffChainPublicKey) UnmarshalJSON(input []byte) error
- func (ocpk *OffChainPublicKey) UnmarshalText(bs []byte) error
- func (ocpk OffChainPublicKey) Value() (driver.Value, error)
- type OnChainPublicKey
- type OnChainSigningAddress
- func (ocsa OnChainSigningAddress) MarshalJSON() ([]byte, error)
- func (ocsa *OnChainSigningAddress) Scan(value interface{}) error
- func (ocsa OnChainSigningAddress) String() string
- func (ocsa *OnChainSigningAddress) UnmarshalJSON(input []byte) error
- func (ocsa *OnChainSigningAddress) UnmarshalText(bs []byte) error
- func (ocsa OnChainSigningAddress) Value() (driver.Value, error)
Constants ¶
This section is empty.
Variables ¶
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
type EncryptedKeyBundle ¶
type EncryptedKeyBundle struct { ID models.Sha256Hash `json:"id" gorm:"primary_key"` OnChainSigningAddress OnChainSigningAddress `json:"onChainSigningAddress"` OffChainPublicKey OffChainPublicKey `json:"offChainPublicKey"` ConfigPublicKey ConfigPublicKey `json:"configPublicKey"` EncryptedPrivateKeys []byte `json:"-"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt,omitempty"` DeletedAt gorm.DeletedAt `json:"deletedAt,omitempty"` }
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 ¶
NewKeyBundle makes a new set of OCR key bundles from cryptographically secure entropy
func NewKeyBundleFrom ¶
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 ¶
GoStringer reduces the risk of accidentally logging the private key
func (*KeyBundle) MarshalJSON ¶
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 ¶
SignOffChain returns an EdDSA-Ed25519 signature on msg.
func (*KeyBundle) SignOnChain ¶
SignOnChain returns an ethereum-style ECDSA secp256k1 signature on msg.
func (*KeyBundle) ToEncryptedExport ¶
func (*KeyBundle) UnmarshalJSON ¶
UnmarshalJSON constructs KeyBundle from raw json
type OffChainPublicKey ¶
func (OffChainPublicKey) GormDBDataType ¶
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
type OnChainPublicKey ¶
func (OnChainPublicKey) Address ¶
func (k OnChainPublicKey) Address() OnChainSigningAddress
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