code: func WrapTransportListener(ctx context.Context, ml transport.Listener, local peer.ID,
  	sk ic.PrivKey) (iconn.Listener, error) {
  	return WrapTransportListenerWithProtector(ctx, ml, local, sk, nil)
  }
docs: // WrapTransportListener wraps a raw transport.Listener in an iconn.Listener.
  // If sk is not provided, transport encryption is disabled.
  //
  // The Listener will accept connections in the background and attempt to
  // negotiate the protocol before making the wrapped connection available to Accept.
  // If the negotiation and handshake take more than AcceptTimeout, the connection
  // is dropped. However, note that once a connection handshake succeeds, it will
  // wait indefinitely for an Accept call to service it (possibly consuming a goroutine).
  //
  // The context covers the listener and its background activities, but not the
  // connections once returned from Accept. Calling Close and canceling the
  // context are equivalent.
  //
  // The returned Listener implements ListenerConnWrapper.