func validateReconstructInput()

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
}