func newSecureSession(ctx context.Context, local peer.ID, key ci.PrivKey, insecure io.ReadWriteCloser) (*secureSession, error) { s := &secureSession{localPeer: local, localKey: key} s.ctx, s.cancel = context.WithCancel(ctx) switch { case s.localPeer == "": return nil, errors.New("no local id provided") case s.localKey == nil: return nil, errors.New("no local private key provided") case !s.localPeer.MatchesPrivateKey(s.localKey): return nil, fmt.Errorf("peer.ID does not match PrivateKey") case insecure == nil: return nil, fmt.Errorf("insecure ReadWriter is nil") } s.ctx = ctx s.insecure = insecure s.insecureM = msgio.NewReadWriter(insecure) return s, nil }
func msgioWrap(c Conn) msgio.ReadWriter { return msgio.NewReadWriter(c) }