in client/internal/secret_sharing/internal/shamirgeneric/shamir_generic.go [216:235]
func validateReconstructInput(splitSecret secrets.Split) error {
if splitSecret.Metadata.Threshold < 2 {
return fmt.Errorf("threshold should be at least 2")
}
if splitSecret.Metadata.NumShares < splitSecret.Metadata.Threshold {
return fmt.Errorf("threshold larger than number of shares")
}
if len(splitSecret.Shares) < splitSecret.Metadata.Threshold {
return fmt.Errorf("not enough shares to reconstruct the secret, need at least %d, got: %d", len(splitSecret.Shares), splitSecret.Metadata.Threshold)
}
for _, s := range splitSecret.Shares {
if s.X == 0 {
return fmt.Errorf("invalid X value")
}
if len(s.Value) == 0 {
return fmt.Errorf("empty secret value")
}
}
return nil
}