aboutsummaryrefslogtreecommitdiff
path: root/log_parameters.go
diff options
context:
space:
mode:
authorRasmus Dahlberg <rasmus.dahlberg@kau.se>2021-06-07 00:19:40 +0200
committerRasmus Dahlberg <rasmus.dahlberg@kau.se>2021-06-07 00:19:40 +0200
commit932d29fd08c8ff401e471b4f764537493ccbd483 (patch)
treee840a4c62db92e84201fe9ceaa0594d99176792c /log_parameters.go
parentbdf7a53d61cf044e526cc9123ca296615f838288 (diff)
parent345fe658fa8a4306caa74f72a618e499343675c2 (diff)
Merge branch 'design' into main
Diffstat (limited to 'log_parameters.go')
-rw-r--r--log_parameters.go75
1 files changed, 0 insertions, 75 deletions
diff --git a/log_parameters.go b/log_parameters.go
deleted file mode 100644
index a2a2d7a..0000000
--- a/log_parameters.go
+++ /dev/null
@@ -1,75 +0,0 @@
-package stfe
-
-import (
- "crypto"
- "fmt"
- "time"
-
- "github.com/system-transparency/stfe/types"
-)
-
-// LogParameters is a collection of log parameters
-type LogParameters struct {
- LogId *types.Namespace // log identifier
- LogIdBytes []byte // serialized log id
- LogIdStr string // serialized log id (hex)
- TreeId int64 // used internally by Trillian
- Prefix string // e.g., "test" for <base>/test
- MaxRange int64 // max entries per get-entries request
- SubmitterPolicy bool // if we have a submitter policy (true means that namespaces must be registered)
- WitnessPolicy bool // if we have a witness policy (true means that namespaces must be registered)
- Submitters *types.NamespacePool // trusted submitters
- Witnesses *types.NamespacePool // trusted witnesses
- Deadline time.Duration // gRPC deadline
- Interval time.Duration // cosigning sth frequency
- HashType crypto.Hash // hash function used by Trillian
- Signer crypto.Signer // access to Ed25519 private key
-}
-
-// NewLogParameters creates newly initialized log parameters
-func NewLogParameters(signer crypto.Signer, logId *types.Namespace, treeId int64, prefix string, submitters, witnesses *types.NamespacePool, maxRange int64, interval, deadline time.Duration, submitterPolicy, witnessPolicy bool) (*LogParameters, error) {
- logIdBytes, err := types.Marshal(*logId)
- if err != nil {
- return nil, fmt.Errorf("Marshal failed for log identifier: %v", err)
- }
- return &LogParameters{
- LogId: logId,
- LogIdBytes: logIdBytes,
- LogIdStr: fmt.Sprintf("%x", logIdBytes),
- TreeId: treeId,
- Prefix: prefix,
- MaxRange: maxRange,
- SubmitterPolicy: submitterPolicy,
- WitnessPolicy: witnessPolicy,
- Submitters: submitters,
- Witnesses: witnesses,
- Deadline: deadline,
- Interval: interval,
- HashType: crypto.SHA256,
- Signer: signer,
- }, nil
-}
-
-// SignTreeHeadV1 signs a TreeHeadV1 structure
-func (lp *LogParameters) SignTreeHeadV1(th *types.TreeHeadV1) (*types.StItem, error) {
- serialized, err := types.Marshal(*th)
- if err != nil {
- return nil, fmt.Errorf("Marshal failed for TreeHeadV1: %v", err)
- }
- sig, err := lp.Signer.Sign(nil, serialized, crypto.Hash(0))
- if err != nil {
- return nil, fmt.Errorf("Sign failed: %v", err)
- }
- lastSthTimestamp.Set(float64(time.Now().Unix()), lp.LogIdStr)
- lastSthSize.Set(float64(th.TreeSize), lp.LogIdStr)
- return &types.StItem{
- Format: types.StFormatSignedTreeHeadV1,
- SignedTreeHeadV1: &types.SignedTreeHeadV1{
- TreeHead: *th,
- Signature: types.SignatureV1{
- Namespace: *lp.LogId,
- Signature: sig,
- },
- },
- }, nil
-}