Browse Source

Merge pull request #44 from libp2p/fix/43

avoid duplicate randomly generated keys/peer-ids
pull/1683/head
Steven Allen 5 years ago
committed by GitHub
parent
commit
5dd73827ad
  1. 10
      core/test/crypto.go
  2. 7
      core/test/peer.go

10
core/test/crypto.go

@ -3,20 +3,16 @@ package test
import (
"math/rand"
"sync/atomic"
"time"
ci "github.com/libp2p/go-libp2p-core/crypto"
)
var generatedPairs int64 = 0
var globalSeed int64
func RandTestKeyPair(typ, bits int) (ci.PrivKey, ci.PubKey, error) {
seed := time.Now().UnixNano()
// workaround for low time resolution
seed += atomic.AddInt64(&generatedPairs, 1) << 32
return SeededTestKeyPair(typ, bits, time.Now().UnixNano())
seed := atomic.AddInt64(&globalSeed, 1)
return SeededTestKeyPair(typ, bits, seed)
}
func SeededTestKeyPair(typ, bits int, seed int64) (ci.PrivKey, ci.PubKey, error) {

7
core/test/peer.go

@ -1,10 +1,8 @@
package test
import (
"io"
"math/rand"
"testing"
"time"
"github.com/libp2p/go-libp2p-core/peer"
@ -12,11 +10,8 @@ import (
)
func RandPeerID() (peer.ID, error) {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
buf := make([]byte, 16)
if _, err := io.ReadFull(r, buf); err != nil {
return "", err
}
rand.Read(buf)
h, _ := mh.Sum(buf, mh.SHA2_256, -1)
return peer.ID(h), nil
}

Loading…
Cancel
Save