secret.go 419 B

12345678910111213141516171819
  1. package swarm
  2. import (
  3. cryptorand "crypto/rand"
  4. "fmt"
  5. "math/big"
  6. )
  7. func generateRandomSecret() string {
  8. var secretBytes [generatedSecretEntropyBytes]byte
  9. if _, err := cryptorand.Read(secretBytes[:]); err != nil {
  10. panic(fmt.Errorf("failed to read random bytes: %v", err))
  11. }
  12. var nn big.Int
  13. nn.SetBytes(secretBytes[:])
  14. return fmt.Sprintf("%0[1]*s", maxGeneratedSecretLength, nn.Text(generatedSecretBase))
  15. }