38 lines
719 B
Go
38 lines
719 B
Go
package node
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"log"
|
|
|
|
"golang.org/x/crypto/nacl/box"
|
|
"golang.org/x/crypto/nacl/sign"
|
|
)
|
|
|
|
type testPeer struct {
|
|
IP byte
|
|
PubKey []byte
|
|
PrivKey []byte
|
|
PubSignKey []byte
|
|
PrivSignKey []byte
|
|
}
|
|
|
|
func newTestPeer(ip byte) testPeer {
|
|
encPubKey, encPrivKey, err := box.GenerateKey(rand.Reader)
|
|
if err != nil {
|
|
log.Fatalf("Failed to generate encryption keys: %v", err)
|
|
}
|
|
|
|
signPubKey, signPrivKey, err := sign.GenerateKey(rand.Reader)
|
|
if err != nil {
|
|
log.Fatalf("Failed to generate signing keys: %v", err)
|
|
}
|
|
|
|
return testPeer{
|
|
IP: ip,
|
|
PubKey: encPubKey[:],
|
|
PrivKey: encPrivKey[:],
|
|
PubSignKey: signPubKey[:],
|
|
PrivSignKey: signPrivKey[:],
|
|
}
|
|
}
|