diff options
author | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2021-06-07 00:19:40 +0200 |
---|---|---|
committer | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2021-06-07 00:19:40 +0200 |
commit | 932d29fd08c8ff401e471b4f764537493ccbd483 (patch) | |
tree | e840a4c62db92e84201fe9ceaa0594d99176792c /log_parameters.go | |
parent | bdf7a53d61cf044e526cc9123ca296615f838288 (diff) | |
parent | 345fe658fa8a4306caa74f72a618e499343675c2 (diff) |
Merge branch 'design' into main
Diffstat (limited to 'log_parameters.go')
-rw-r--r-- | log_parameters.go | 75 |
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 -} |