sss_test.go 682 B

1234567891011121314151617181920212223242526272829303132
  1. package sss
  2. import (
  3. "fmt"
  4. )
  5. func Example() {
  6. secret := "well hello there!" // our secret
  7. n := byte(30) // create 30 shares
  8. k := byte(2) // require 2 of them to combine
  9. shares, err := Split(n, k, []byte(secret)) // split into 30 shares
  10. if err != nil {
  11. fmt.Println(err)
  12. return
  13. }
  14. // select a random subset of the total shares
  15. subset := make(map[byte][]byte, k)
  16. for x, y := range shares { // just iterate since maps are randomized
  17. subset[x] = y
  18. if len(subset) == int(k) {
  19. break
  20. }
  21. }
  22. // combine two shares and recover the secret
  23. recovered := string(Combine(subset))
  24. fmt.Println(recovered)
  25. // Output: well hello there!
  26. }