mirror of
https://github.com/status-im/status-go.git
synced 2025-01-10 06:36:32 +00:00
40359f9c1b
* Adding wakunode module * Adding wakuv2 fleet files * Add waku fleets to update-fleet-config script * Adding config items for waku v2 * Conditionally start waku v2 node depending on config * Adapting common code to use go-waku * Setting log level to info * update dependencies * update fleet config to use WakuNodes instead of BootNodes * send and receive messages * use hash returned when publishing a message * add waku store protocol * trigger signal after receiving store messages * exclude linting rule SA1019 to check deprecated packages
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package noise
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
|
|
"github.com/libp2p/go-libp2p-core/crypto"
|
|
"github.com/libp2p/go-libp2p-core/peer"
|
|
"github.com/libp2p/go-libp2p-core/sec"
|
|
)
|
|
|
|
// ID is the protocol ID for noise
|
|
const ID = "/noise"
|
|
|
|
var _ sec.SecureTransport = &Transport{}
|
|
|
|
// Transport implements the interface sec.SecureTransport
|
|
// https://godoc.org/github.com/libp2p/go-libp2p-core/sec#SecureConn
|
|
type Transport struct {
|
|
localID peer.ID
|
|
privateKey crypto.PrivKey
|
|
}
|
|
|
|
// New creates a new Noise transport using the given private key as its
|
|
// libp2p identity key.
|
|
func New(privkey crypto.PrivKey) (*Transport, error) {
|
|
localID, err := peer.IDFromPrivateKey(privkey)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &Transport{
|
|
localID: localID,
|
|
privateKey: privkey,
|
|
}, nil
|
|
}
|
|
|
|
// SecureInbound runs the Noise handshake as the responder.
|
|
func (t *Transport) SecureInbound(ctx context.Context, insecure net.Conn) (sec.SecureConn, error) {
|
|
return newSecureSession(t, ctx, insecure, "", false)
|
|
}
|
|
|
|
// SecureOutbound runs the Noise handshake as the initiator.
|
|
func (t *Transport) SecureOutbound(ctx context.Context, insecure net.Conn, p peer.ID) (sec.SecureConn, error) {
|
|
return newSecureSession(t, ctx, insecure, p, true)
|
|
}
|