Skip to content

Commit 3bc66c2

Browse files
committed
Reduce complexity by factoring out keychecks
1 parent ab52cd3 commit 3bc66c2

File tree

1 file changed

+9
-2
lines changed
  • rolling-shutter/keyper/epochkghandler

1 file changed

+9
-2
lines changed

rolling-shutter/keyper/epochkghandler/key.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/pkg/errors"
1212
"github.com/rs/zerolog/log"
1313

14+
"github.com/shutter-network/shutter/shlib/puredkg"
1415
"github.com/shutter-network/shutter/shlib/shcrypto"
1516

1617
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyper/database"
@@ -74,7 +75,13 @@ func (handler *DecryptionKeyHandler) ValidateMessage(ctx context.Context, msg p2
7475
if len(key.Keys) > int(handler.config.GetMaxNumKeysPerMessage()) {
7576
return pubsub.ValidationReject, errors.Errorf("too many keys in message (%d > %d)", len(key.Keys), handler.config.GetMaxNumKeysPerMessage())
7677
}
77-
for i, k := range key.Keys {
78+
79+
validationResult, err := checkKeysErrors(key.Keys, pureDKGResult)
80+
return validationResult, err
81+
}
82+
83+
func checkKeysErrors(keys []*p2pmsg.Key, pureDKGResult *puredkg.Result) (pubsub.ValidationResult, error) {
84+
for i, k := range keys {
7885
epochSecretKey, err := k.GetEpochSecretKey()
7986
if err != nil {
8087
return pubsub.ValidationReject, err
@@ -87,7 +94,7 @@ func (handler *DecryptionKeyHandler) ValidateMessage(ctx context.Context, msg p2
8794
return pubsub.ValidationReject, errors.Errorf("epoch secret key for identity %x is not valid", k.Identity)
8895
}
8996

90-
if i > 0 && bytes.Compare(k.Identity, key.Keys[i-1].Identity) < 0 {
97+
if i > 0 && bytes.Compare(k.Identity, keys[i-1].Identity) < 0 {
9198
return pubsub.ValidationReject, errors.Errorf("keys not ordered")
9299
}
93100
}

0 commit comments

Comments
 (0)