Documentation ¶
Index ¶
- func Keygen(group curve.Curve, receiver bool, selfID, otherID party.ID, pl *pool.Pool) protocol.StartFunc
- func RefreshReceiver(config *ConfigReceiver, selfID, otherID party.ID, pl *pool.Pool) protocol.StartFunc
- func RefreshSender(config *ConfigSender, selfID, otherID party.ID, pl *pool.Pool) protocol.StartFunc
- func SignReceiver(config *ConfigReceiver, selfID, otherID party.ID, hash []byte, pl *pool.Pool) protocol.StartFunc
- func SignSender(config *ConfigSender, selfID, otherID party.ID, hash []byte, pl *pool.Pool) protocol.StartFunc
- type ConfigReceiver
- type ConfigSender
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Keygen ¶
func Keygen(group curve.Curve, receiver bool, selfID, otherID party.ID, pl *pool.Pool) protocol.StartFunc
Keygen initiates the Doerner key generation protocol.
The goal of this protocol is to create a new key-pair, with the private portion shared between two participants.
One of the participants is marked as the "Receiver", and the other is the "Sender". The return type of this protocol depends on the role. The Receiver will get a ConfigReceiver, but the Sender will get a ConfigSender instead.
A pool can be passed to this function, to parallelize certain operations and improve performance.
func RefreshReceiver ¶
func RefreshReceiver(config *ConfigReceiver, selfID, otherID party.ID, pl *pool.Pool) protocol.StartFunc
RefreshReceiver initiates a key-refresh protocol, from the Receiver's perspective.
The goal of this protocol is to refresh the shares of the secret key, and other auxilary secret data, while preserving the shared public key.
This won't change the value of the public key, but it will change the value of the chaining key. If this isn't desirable, then the new chain key can simply be overwritten with the previous value.
func RefreshSender ¶
func RefreshSender(config *ConfigSender, selfID, otherID party.ID, pl *pool.Pool) protocol.StartFunc
RefreshSender initiates a key-refresh protocol, from the Sender's perspective.
See RefreshReceiver.
func SignReceiver ¶
func SignReceiver(config *ConfigReceiver, selfID, otherID party.ID, hash []byte, pl *pool.Pool) protocol.StartFunc
SignReceiver initiates the signing process, given a message hash.
This function has another version, SignSender, which uses the config for the Sender instead.
The result, in both cases, will be an ecdsa.Signature type.
A pool can be passed to this function, to parallelize certain operations and improve performance.
func SignSender ¶
func SignSender(config *ConfigSender, selfID, otherID party.ID, hash []byte, pl *pool.Pool) protocol.StartFunc
SignSender is like SignReceiver, but using the Sender's results from key generation.
See SignReceiver for more information.
Types ¶
type ConfigReceiver ¶
type ConfigReceiver = keygen.ConfigReceiver
func EmptyConfigReceiver ¶
func EmptyConfigReceiver(group curve.Curve) *ConfigReceiver
EmptyConfigReceiver creates a ConfigReceiever that's ready to be unmarshalled.
Because ConfigReceiver contains group dependent data, it needs to be initialized with a concrete group to be unmarshalled correctly.
type ConfigSender ¶
type ConfigSender = keygen.ConfigSender
func EmptyConfigSender ¶
func EmptyConfigSender(group curve.Curve) *ConfigSender
EmptyConfigSender creates a ConfigSender that's ready to be unmarshalled.
Because ConfigSender contains group dependent data, it needs to be initialized with a concrete group to be unmarshalled correctly.