📖 Package Overview

No package documentation available.

Types

type AddEphKeyRequest

type AddEphKeyRequest struct {
	// The list of keys to add the ephemeral key to.
	KeyIDList []string `json:"key_id_list" validate:"required"`
}

type KeygenOpts

type KeygenOpts struct {
	// T is the signature threshold (how many key shares are required to generate signature).
	T uint8 `json:"t" validate:"required,min=2"`

	// N is the number of key shares.
	N uint8 `json:"n" validate:"required"`

	// Metadata is a collection of tagged values to be associated with a key share.
	// All shares will contain the same set of pairs.
	Metadata []types.TaggedValue `json:"metadata,omitempty" validate:"omitempty"`

	// SignAlg is the chosen signature algorithm for key generation.
	SignAlg types.SignatureAlgorithm `json:"signAlg" validate:"required"`
}

type QuorumChangeRequest

type QuorumChangeRequest struct {
	// New threshold
	NewT uint8 `json:"new_t" validate:"required,min=2"`

	// New quorum nodes (new_n). Old quorum nodes (n).
	//
	// (new_n >= n || new_n <= n) && new_n >= new_t
	NewNodes *[]string `json:"new_nodes,omitempty" validate:"omitempty"`

	// ID of the previously generated distributed key, in hex
	KeyID string `json:"key_id" validate:"required"`

	// Public key of the generated key. Affine representation in hex.
	PublicKey string `json:"public_key" validate:"required"`

	// Signature algorithm of the key
	SignAlg types.SignatureAlgorithm `json:"sign_alg" validate:"required"`
}

type RevokeEphKeyRequest

type RevokeEphKeyRequest struct {
	// The associated ephemeral key of this key will be revoked.
	KeyID string `json:"key_id" validate:"required"`
}

type SignOpts

type SignOpts struct {
	/// Signature threshold (how many key shares are required to generate signature)
	T uint8 `json:"t" validate:"required,min=2"`

	/// id of the previously generated distributed key, in hex
	KeyID string `json:"key_id" validate:"required"`

	/// Message to be signed
	/// Structure format: HashMap<TransactionId, Transaction>
	Message string `json:"message" validate:"required"`

	/// Chosen signature algorithm for signing
	SignAlg types.SignatureAlgorithm `json:"signAlg" validate:"required"`
}

type WpRequest

type WpRequest struct {
	Payload WpRequestPayload `json:"payload"`
}

type WpRequestPayload

type WpRequestPayload struct {
	Keygen       *[]KeygenOpts        `json:"-"` // untagged, so no direct JSON field name
	Sign         *SignOpts            `json:"-"`
	AddEphKey    *AddEphKeyRequest    `json:"-"`
	RevokeEphKey *RevokeEphKeyRequest `json:"-"`
	QuorumChange *QuorumChangeRequest `json:"-"`
}