package dnet import ( "context" "crypto/ecdsa" "net" "koti.casa/numenor-labs/dsfx/shared/dlog" ) // Dial ... func Dial( ctx context.Context, laddr *net.TCPAddr, raddr *net.TCPAddr, clientPrivateKey *ecdsa.PrivateKey, serverPublicKey *ecdsa.PublicKey, ) (*Conn, error) { conn, err := net.DialTCP("tcp", laddr, raddr) if err != nil { return nil, err } sessionKey, err := Handshake(ctx, conn, clientPrivateKey, serverPublicKey) if err != nil { return nil, err } return NewConn(conn, sessionKey, &clientPrivateKey.PublicKey, serverPublicKey), nil } // Listen ... func Listen( ctx context.Context, laddr *net.TCPAddr, identity *ecdsa.PrivateKey, ) (net.Listener, error) { tcpListener, err := net.ListenTCP("tcp", laddr) if err != nil { return nil, err } logger := dlog.FromContext(ctx) return &Listener{logger, tcpListener, identity}, nil }