go-libp2p-core/test/crypto.go
Steven Allen a182f52659 avoid duplicate randomly generated keys/peer-ids
This implements #4 from #43.

fixes #43
2019-07-22 15:12:08 -07:00

22 lines
491 B
Go

package test
import (
"math/rand"
"sync/atomic"
ci "github.com/libp2p/go-libp2p-core/crypto"
)
var globalSeed int64
func RandTestKeyPair(typ, bits int) (ci.PrivKey, ci.PubKey, error) {
// workaround for low time resolution
seed := atomic.AddInt64(&globalSeed, 1)
return SeededTestKeyPair(typ, bits, seed)
}
func SeededTestKeyPair(typ, bits int, seed int64) (ci.PrivKey, ci.PubKey, error) {
r := rand.New(rand.NewSource(seed))
return ci.GenerateKeyPairWithReader(typ, bits, r)
}