blob: 60d2af1d5c1aff8ffbcdcde79af903b7b1b53450 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package state
import (
"context"
"git.sigsum.org/sigsum-go/pkg/merkle"
"git.sigsum.org/sigsum-go/pkg/types"
)
// StateManager coordinates access to a nodes tree heads and (co)signatures.
type StateManager interface {
// ToCosignTreeHead returns the node's to-cosign tree head
ToCosignTreeHead() *types.SignedTreeHead
// CosignedTreeHead returns the node's cosigned tree head
CosignedTreeHead(context.Context) (*types.CosignedTreeHead, error)
// AddCosignature verifies that a cosignature is valid for the to-cosign
// tree head before adding it
AddCosignature(context.Context, *types.PublicKey, *types.Signature) error
// Run peridically rotates the node's to-cosign and cosigned tree heads
Run(context.Context)
}
// event is a verified cosignature request
type event struct {
keyHash *merkle.Hash
cosignature *types.Signature
}
|