Newer
Older
package drng
import (
"encoding/base64"
"errors"
"fmt"
"github.com/iotaledger/goshimmer/plugins/config"
"github.com/iotaledger/hive.go/crypto/ed25519"
)
var (
// ErrParsingCommitteeMember is returned for an invalid committee member
ErrParsingCommitteeMember = errors.New("cannot parse committee member")
)
func parseCommitteeMembers() (result []ed25519.PublicKey, err error) {
for _, committeeMember := range config.Node.GetStringSlice(CfgDRNGCommitteeMembers) {
if committeeMember == "" {
continue
}
pubKey, err := base64.StdEncoding.DecodeString(committeeMember)
if err != nil {
return nil, fmt.Errorf("%w: invalid public key: %s", ErrParsingCommitteeMember, err)
}
publicKey, err, _ := ed25519.PublicKeyFromBytes(pubKey)
if err != nil {
return nil, err
}
result = append(result, publicKey)
}
return result, nil
}